首页 理论教育 源程序编写时应注意的问题

源程序编写时应注意的问题

时间:2023-02-28 理论教育 版权反馈
【摘要】:大部分指令语句由操作项和操作数项组成,个别语句只有操作项,少部分语句有名字项、操作项、操作数项和注释项。除了指令语句外,源程序中可能还有伪指令语句,汇编语言不会产生机器指令。在程序设计中还有些技巧、规定和方法需要读者在实践中加以总结。LP属于NEAR类型,在指令中可以不写,如果标号是另一段定义的,则一定要加FAR类型,如:JMP FARPTRLP

3.3.2 源程序编写时应注意的问题

每一条指令语句都会使汇编语言产生一条8086/8088机器指令。大部分指令语句由操作项和操作数项组成,个别语句只有操作项,少部分语句有名字项、操作项、操作数项和注释项。除了指令语句外,源程序中可能还有伪指令语句,汇编语言不会产生机器指令。读者要合理使用这些语句。在程序设计中还有些技巧、规定和方法需要读者在实践中加以总结。

1.变量名作为存储单元的地址可以直接寻址

【例3-32】 DATA SEGMENT

BUF DB 12,34,56

DATA ENDS

CODE SEGMENT

MOV AL,BUF ;BUF作为12的地址

ADD AL,BUF+1;BUF+1作为34的地址

CODE ENDS

2.标号名作为转移地址

【例3-33】 JMP LP

LP:…;LP是该条语句的标号

LP属于NEAR类型,在指令中可以不写,如果标号是另一段定义的,则一定要加FAR类型,如:JMP FARPTRLP

3.符号名和段名作为立即数

【例3-34】 DATA SEGMENT

DATA ENDS

CODE SEGMENT

MOV AX,DATA ;DATA作为立即数(段地址)送AX

;寄存器

MOV DS,AX

CODE ENDS

【例3-35】 ABC EQU45

MOV AL,ABC;ABC是一个符号名,这条语句的功能

;是将45送AL寄存器

4.寄存器相对寻址和相对基址变址寻址方式中的偏移量可用变量名或符号名

【例3-36】 DATA SEGMENT

ABC DB 12,13,14

DATA ENDS

CODE SEGMENT

MOV BX,0

MOV AL,ABC[BX] ;偏移量ABC是一个变量名

CODE ENDS

5.存储器操作数的数据类型问题

指令中有两个操作数时,一个操作数的类型是无二义的,则操作数不需要类型说明。

【例3-37】 MOV AL,[BX];BX指的数是一个字节数

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈