-80- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
第5章 子过程和串处理 本想开始讨论有关视频的内容,但后来又觉得还缺少一些必要的知识,因此插入了这样一章,目的是为了将有关8086/88处理机的知识补充完整,同时多学一些指令,为后面的内容作些准备工作。我们先来讨论关于子过程设计的一些问题。 |
|||||||||||||||||||||
5.1 子过程参数的传送 | |||||||||||||||||||||
主过程往往要给子过程传送过去一些数据,这些数据可能要由子过程处理,也可能是一些命令码控制子过程完成对应的工作;而子过程有时也要将处理结果返回给主过程。在这一节里我们将主要讨论这些信息是通过何种途径在过程间传递的。 | |||||||||||||||||||||
5.1.1 通过寄存器传送数据 | |||||||||||||||||||||
这是最常用的参数传递方式,当程序通过INT 21H指令调用DOS API时,传送的参数均在寄存器中,而DOS也会将一些返回值通过寄存器送回。这种技术在编制子过程时也可应用。请看下面的程序,这个程序用于查询键盘上各个键的代码: | |||||||||||||||||||||
TESTKEY.ASM ESCKEY CR LF data ascii data code main getkey: |
equ equ equ segment assume db ends segment assume proc mov mov mov mov int |
1bh 0dh 0ah ds:data '0123456789ABCDEF' cs:code far ax,data ds,ax bx,offset ascii ah,0 16h |
;ESC键对应的ASCII码 ;回车键对应的ASCII码 ;换行键对应的ASCII码 ;十六进制数所需的字符 ;设置DS寄存器 ;BX寄存器指向ASCII表 ;等待键盘输入 |
||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |