- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
献给正为信息化建设事业作出杰出贡献的人们。;;第五章 汇编语言程序设计; 上述汇编语言源程序经汇编后获得机器语言目标代码,如图5-1所示。从图中可以看出源程序中汇编指令与机器语言目标代码(即机器措令)有一一对应关系。;段名1 SEGMET;5.2 汇编语言语句; 语句(statment)乃是汇编语言程序的基本组成单位。一个汇编语言源程序有3种基本语句即指令语句、伪指令语句和宏指令语句(或称宏调用语句)。前两种是最常见最基本的语句。有关宏指令语句将在本章5.9 节中讨沦。;伪指令语句是指示(命令)汇编程序如何汇编源程序,所以这种语句又叫命令语句。; 指令语句和伪指令语句有相同的语句格式,每个语句均由4个字段(Fields)组成:; 2. 操作符字段(Operator Field); 3. 操作数字段(Operand Field); 4.注释字段(Comment Field); 名字字段的名字(如标号、常量名、变量名、段名和过程名等)是由若干字符构成的。组成名字(“名字”有时称谓符号或标识符)的规则是:;5.3 汇编语言数据;通常,(表达式/符号)有如下几种: ; 等值伪指今语句仅在汇编源程序时,作为替代符号用,不产生任何目标代码,也不分配存储单元。; 2.等号伪指令;5.3.2 数据定义语句; 数据定义语句必须出现在某个逻辑段中。SEGMENT/ENDS表示逻辑段的开始/结束(SEGMENT/ENDS伪指令详见5.4.1)。例如:;经过定义的变量,每个变量均有3个属性:; (3)类型属性(TYPE);表达式有如下几种情况:; 一个数据定义语句可以只设置一个字节、字或双字数据,也可以设置多个字节、字或双字数据。; 数据定义语句中表达式可以用二进制、八进制、十进制或十六进制数表示,但存放在存储单元中一定是二进制数。; 2.?表达式; 3. 字符串表达式; 若是两个字符组成,那么前一个字符(如A,C,E)的ASCII码放在高字节中,后一个字符(如B,D,F)的ASCII码存放在低字节中。若仅是一个字符,那么该字符的ASCII码存放在低字节中,高字节以00填充。DW伪指令语句中字符串表达式的存储惰况如图5-2(b)所示。; 4.带DUP表达式; 上面第1个语句表示保留10H个字节单元,每个字节单元可预置任意内容。;5.3.3 数据; 一.常数; 1.数值常数; 2.字符常数; ⑵在指今语句的寻找存储器操作数的各种寻址方式中作位移量。例如:; ⑶在某些伪指令语句的操作数字段中,赋值数据。如数据定义伪指令中,为分配的存储单元预置初值数据,在符号定义伪指令语句的操作数字段中,为定义符号赋值数据。例如:;二.寄存器操作数;三、存储器操作数;那么,几种含有变量名的地址表达式为:; -个地址表达式的值表示了存放操作数的存储单元偏移量。; (2)在用DW或DD的数据定义语句中,;例如,在某数据段有如下数据定义语句:; 2.标号; ; (3)类型属性(TYPE); LABEL伪指令的意义是:指定名字(如标号、变量名)的类型属性。它通常是与指令语句、数据定义语句配合使用,以补充设置类型属性。; 下面分两种情况说明它的使用:; b.LABEL语句与数据定义连用; 5.3.4 运 算 符; 1.算术运算符; 移位运算符与移位指令是完企不同的两回事。; 2.逻辑运算符; 3.关系运算符; 4.数值返回运算符; (2)TYPE运算符;(3)LENGTH运算符和SIZE运算符; 5.属性运算符;P186 例子; 6.运算符优先级;5.4 伪指令语句;其中:; 2.定位类型; 3.组合类型;组合类型; 4.类别名;二、段寻址伪指令(ASSUME伪指令);P189 例子; 一条ASSUME语句不一定设置全部段寄存器、可以只设置1~3个段寄存器。;三、段寄存器的加载;P190 例子; 2.SS的加载; (2)用执行程序的办法加载; 3.CS的加载; (1)用结束伪指令END加载程序的起始地址。; 结束伪指令END有两个作用:;5.4.2 过程定义语句;其中,过程名不能省略,且定义过程的开始(PROC)与结束(ENDP),应使用同一过程名。;5.4.3 定位语句和位置计数器;例如:;5.4.4 偶地址控制语句;5.4.5 程序标题语句;5.5宏指今语句;(2)带参数宏定义:; 2.宏调用; 3.宏展开;5.6 顺序程序
文档评论(0)