- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第二章汇编语言与汇编程序
宏汇编语言及编程
汇编语言:一种面向机器的程序设计语言,是一种用符号表示的低级程序设计语言(机器语言的符号化描述)。
宏汇编语言:增加伪、宏指令语句构成汇编语言程序设计语言。
汇编:汇编语言编写的程序不能由机器直接执行,必须经汇编程序翻译成机器语言程序。
检查源程序的语法错误,并给出出错信息。
产生目标文件(.OBJ);列表文件;(.LST)和交叉索引文件(.CRF文件)。
展开宏指令。
汇编过程
列表文件(.LST文件);
同时列出汇编语言源程序和机器语言目标程序的文件。
交叉索引文件(.CRF文件)
列出程序中使用的符号、变量和标号以及引用情况。
汇编过程
汇编与连接
EXAM.ASM
ASCII
源程序
EXAM.OBJ
可选
EXAM.LST
EXAM.CRF
机器码目标程序
MASM.EXE
汇编
汇编程序
EXAM.EXE
EXAM.COM
LINK.EXE
连接
连接程序
可执行程序
宏汇编语句的基本格式
指令性语句——由指令构成
[标号:] 操作码 操作数 [;注释]
如: START: MOV AX,DATA
指示性语句——由命令(伪指令)构成
[名字/变量] 命令 参数 [;注释]
如: DATA SEGMENTAT 2000H
(代码段不能如此指定段地址)
常量、变量和标号
常量
汇编源程序翻译成机器码目标程序期间已经有确定数值的量。分为数字常量和符号常量两类。
2.1符号指令中的表达式
数字常量:直接用数字进行表示的常量。
二进制、
十进制:12356D
十六进制:12ABH、0F56AH
(字母打头必须前面补0,否则将出现汇编语法错误。)
如:
MOV AX,100D
MOV BL,0FAH
MOV CL,10101000B
常量和数值表达式
常量
2.1符号指令中的表达式
符号常量:用标识符(常量名)表示的常量。
命名规则:
1)ASCII码字符
2)由A~Z、a~z、0~9、?、@、$及下划线构成。
3)?不能单独作为标识符。
4)不能为保留字及运算符。
合法标识符:
STA_124$
MOV_?
@103
非法标识符:
STA+124$
MOV
?
符号常量定义
常量名 EQU(=) 数值或字母
例如: AA EQU 30
BB = 1000H
CC EQU
QQ = ‘ABC’
MOV AX,AA
MOV AL,AA
MOV BX,BB
改善程序的可读性,程序的修改调试方便。
“=”可重复定义
EQU不可重复定义
常量不占有内存单元
2.1符号指令中的表达式
01
变量是存储器中的数据或数据区的符号表示。
变量名即是数据的地址或数据区的首地址。
02
地址表达式是由变量、常量、寄存器(SI、DI、BX、BP)的内容和运算符组成的有意义的式子。
03
变量或地址表达式可给出指令中的存储器的地址。由于存储器是分段使用的,因此变量或地址表达式都具有3重属性:段地址、偏移地址和类型。
2.变量和地址表达式
例如:变量W的段地址和偏移地址分别表示为SEGW和OFFSETW。
变量的段地址是指变量所在段的段首地址除以10H之商;
变量的偏移地址是指变量所在段的段首址到该变量的字节距离;
变量的段地址和偏移地址分别用SEG或OFFSET两个算符来指定。
[变量名]数据定义伪指令表达式[,……]
01
变量名:数据的地址或数据区的首地址
02
数据定义伪指令:DB(定义字节)、DW(定义字)、DD(定义双字)、DQ(定义4字)、DT(定义10字节)
03
表达式:数值表达式、ASCII码字符串、地址表达式、?及nDUP(表达式)
04
变量的定义
例如,在数据段DATAl中定义的变量如下:
WlDWB3;
B1DBAB$’;
W2DW-5,1994H;
B2DB4DUP(?);
DDDEB;
B3DB2DUP(—1)
DBlDUP(10,’E’)
DB’13’,1,3
在附加数据段DATA2中定义的变量如下:
EBDB8DUP(?)
EWDW’AB’,’CD’
标号的定义方式有两种:
3.标号
用“:”定义,直接写在指令助记符前。
如CYCLE:MOVAL,[S1]
用PROC和ENDP伪
文档评论(0)