- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理和接口技术-第5章 汇编程序设计_13
主要内容:; ; ;标号:指令所在内存单元的符号地址
有三个属性:
段地址:即标号所在段的段地址;
偏移量:标号所代表存储单元的段内偏移地址;
类 型:NEAR或FAR(默认为NEAR)
NEAR—16位的指令地址,只需要段内的
偏移地址。也叫近地址
FAR—32位的指令地址,同时需要段内
偏移地址与段地址。又叫远地址
标号通常作为转移指令或CALL指令的转移地址。; …
CMP AX,BX
JNE NEXT
…
NEXT: MOV AX,0
…;变量——即内存中的存储单元或数据区。
变量名——是存储单元(数据区)的符号地址或名字。
变量也有三个属性:
段地址(SEG)—变量所在段的起始地址
偏移量(OFFSET)—变量所在单元距离段首地址的字节数
类 型(TYPE)—变量占用的字节数。有BYTE、WORD和DWORD三种。;标号和变量名的使用规则
以字母或者下划线开头,后跟字母、数字、下划线,长度不超过31个字符,并且系统中的保留字(如指令的操作码助记符、运算符、寄存器名称)不能作为标号和变量名。
例如:
正确的:LP1, AGAIN, NEXT, _GO, OK_1
错误的:4M, LOOP, AAA, #HELP, +ONE;表达式是常数、寄存器、标号、变量与运算符的组合。
有数值表达式和地址表达式两种。
汇编时按优先规则对表达式进行计算,计算出具体的数值或地址。运行时不能改变。
表达式中的运算符有6类:算术、逻辑、关系、取地址、属性、杂类。;用于数值表达式,例:
MOV AX,4*1024
汇编后的形式为:
MOV AX,4096
用于地址表达式,例:
LEA SI,TAB+3
若TAB的偏移地址为1000H,则汇编后的形式为:
LEA SI,[1003H] ;SEG:取变量/标号的段地址
OFFSET:取变量/标号的偏移地址
例:VAR DB 12H
……
MOV BX,OFFSET VAR ;VAR的偏移地址
MOV AX,SEG VAR ;VAR的段地址
注意,以下指令的异同:
MOV BX, OFFSET VAR
LEA BX, VAR
OFFSET只能取静态的偏移地址;
LEA指令即可取静态的偏移地址,也可取动态的偏移地址。 ;3. 取值运算符——TYPE、LENGTH、SIZE;格式:
LENGTH 变量名
功能:
对于变量中使用DUP(非嵌套)的情况,计算出分配给该变量的单元数(分配单元可以按字节、字或者双字为单位计算),而对于其他情况则返回值1。
例如:
DATA1 DB 12H, 34H
DATA2 DB 100 DUP(?)
MOV AL, LENGTH DATA1 ;AL=1
MOV AL, LENGTH DATA2 ;AL=100
;格式:
SIZE 变量名
功能:
计算一个存储区域所占用的字节数
SIZE = LENGTH*TYPE
例:
BUFF DB 10 DUP(?) MOV CX, LENGTH BUFF MOV BX, TYPE BUFF MOV CX, SIZE BUFF;主要内容:;5.4 宏指令语句;无参数宏定义
CRLF MACRO ; 光标跳到下一行开头位置
MOV AH,0EH
MOV AL,0DH
INT 10H
MOV AL,0AH
INT 10H
ENDM
在程序中使用无参数宏的方法
MOV AH, 2
MOV DL, A
INT 21H ; 在当前光标位置显示A
CRLF
;含宏语句源程序序列
MOV AH, 2
MOV DL, A
INT 21H ; 在当前光标位置显示A
CRLF
汇编之后的语句序列(带有+号的指令为宏展开后的结果)
MOV AH, 2
MOV DL, A
INT 21H
MOV AH,0EH
MOV AL,0D
文档评论(0)