- 1、本文档共95页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 汇编语言 4.1.1汇编语言语句分类 汇编语言程序的基本组成单位是语句。 在8086宏汇编MASM中使用的语句有三种类型:指令语句、伪指令语句和宏指令语句。其中指令语句和伪指令语句是最常见、最基本的语句。 4.1.1汇编语言语句分类 (1)指令语句 每条指令语句都要产生相应的机器语言目标代码,对应着机器的一种操作。 用于指示汇编语言如何将源程序进行汇编工作,如程序如何分段,有哪些逻辑段,哪些 (2)伪指令语句 逻辑段是当前段以及内存单元如何分配等。伪指令语句的功能在汇编阶段已经全部完成,所 以不产生相应的目标代码。 (3)宏指令语句 宏指令是编程人员按照一定的规则来编写的可供调用的一种指令。一般来讲,一条宏指令可以包括多条指令或伪指令。 4.1.2汇编语言语句格式 汇编语言的语句可以由名字、操作符、操作数和注释4部分组成,一般格式如下: [名字] 操作符 [操作数] [;注释] 各个组成部分之间以空格分隔,它们的含义如下: (1)名字 指令语句的名字是标号,必须以冒号“:”结束。标号是一条指令的符号地址,代表该指令代码的起始字节单元地址。并不是每条指令都需要标号,只有在循环或分支入口语句前面选用标号,以便给循环或转移指令提供转向地址。伪指令语句中的名字可以是变量名、过程名、段名和符号名等,伪指令语句的名字不可以冒号“:”结束。 4.1.2汇编语言语句格式 (2)操作符 操作符就是各种指令助记符。它可以是指令、伪指令或宏指令。 (3)操作数 不同的指令、伪指令所需的操作数个数不尽相同,可能是0个、1个或多个。若需多个操作数,各个操作数之间要用逗号“,”或空格分隔。 (4)注释 注释是以分号“;”开始的任意字符串。可以写在一条语句的后面,也可以独占一行。其功能一般是对指令或程序段的功能和意义等加以解释说明,好的注释可以提高程序的可读性和可维护性。汇编时注释不产生目标代码。 4.2符号定义语句 有时程序中会多次出现同一个表达式,可以用符号定义语句给该表达式定义一个符号,这样既便于引用,又减少了程序修改量,而且还能够提高源程序的可读性。汇编后该符号代表一个确定的值。 4.2.1等值语句 格式:符号名 EQU 表达式 功能:给表达式或表达式的值赋予一个符号名,定义后,程序中可以用该符号名代表该表达式。 说明:表达式可以是常数、数值表达式、另一个符号名或助记符等。用EQU语句定义的符号名在同一个程序中不允许重复定义。 VAL EQU TABLE1 ; VAL代替变量TABLE1 ADDR EQU [BP+SI+100H] ; ADDR代替地址表达式[BP+SI+100H] A EQU AX ; A代替寄存器AX MOVE EQU MOV ; MOVE代替指令助记符MOV 例如: COUNT EQU 50 ; COUNT代替常数50 COUNT EQU 50*25 ; SUM代替数值表达式50*25 4.2.2等号语句 格式:符号名=表达式 功能:与等值语句的功能基本相同,不同之处仅在于等号语句中的表达式只能是常数或数值表达式表达式,等值语句中的表达式可以是常数、数值表达式、另一个符号名或助记符等;另外,在同一个程序中等号语句可以对一个符号重复定义,而等值语句不能对同一个符号重复定义。 例如: COUNT1=50 ; COUNT1代替常数50 COUNT1=100*20 ; 重新定义COUNT1 COUNT2 EQU 100*30 ; 错误,EQU不能对 ;COUNT2重复定义 COUNT2 EQU 100 ; COUNT2代替常数50 4.3数据定义语句 数据定义伪指令为数据项分配存储单元,用一个符号名与这个存储单元相联系且为这个数据提供一个任选的初始值。也可以只给变量分配存储单元,而不赋予特定的值。 常用的数据定义伪指令有DB、DW、DD、DQ和DT等。 数据定义伪指令的一般格式为: 格式:[变量名] 数据定义伪指令 初始化参数表 4.3数据定义语句 说明: (1)如果此处给出了“变量名”,也就定义了一个变量。变量名是该数据区的符号地址。在指令中通常利用变量名来引用内存单元。 (2)数据定义伪指令DB、DW、DD、DQ和DT所分配的内存单元的长度也不同。 4.3数据定义语句 (3)初始化参数表可以包含任意多个初始化参数。如果有多个初始化参数时,相互之间应该用逗号“,”分开。每个参数能够初始化一个内存单元,它们可以是以下5种形式: ①?:仅为变量预留一个存储单元而不对该单元进行初始化。 例如: BUF1 DB ? BUF2 DW 56H, 78H, ? , 3456H 以上伪指令执行后,存储单元分配情况如图4-1(a)所示。 ②数字常量及数值表达式
文档评论(0)