- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 汇编语言程序格式 一、 汇编语言语句 一)汇编语言语句的分类 分为三类: 1、指令语句:又称机器指令语句,其经汇编后能产生相应的目标码(机器代码),这些代码能被CPU直接识别并执行相应的操作。 2、伪指令语句:它不像机器指令那样是在程序运行期间由计算机来执行的,它是在汇编程序对源程序汇编期间由汇编程序处理的操作,它们可以完成如数据定义、分配存储区、指示程序结束等功能。 一)??汇编语言语句的分类 伪指令语句与指令语句的区别是: (1)伪指令语句经汇编后不产生机器代码,而指令语句经汇编后产生机器代码; (2)伪指令语句指示的操作是在程序汇编时完成的,而指令语句的操作必须在程序运行时才能完成。 3、宏指令语句:是宏的引用,将多次重复使用的程序段称为宏。 二)汇编语言的语句格式 格式: [名字项] 操作项 操作数项 [;注释项] 1、名字项: (1)在指令语句或宏指令语句前,后跟“: ”,称为“标号”,标号在汇编后分配地址; ;标号是一种特殊的标识符,它代表代码段中的某个具体位置,它主要用于表明转移的目标位置。 (2)在伪指令语句前,称“符号名”,可分为变量名、符号常数名、子程序名或段名。 ■名字项的书写规则: 字母:A~Z 数字:0~9 特殊字符:?、?、@、$等。 第一个字符必须是字母或特殊字符,最长32个。 ■名字项的属性: (1)标号:表示指令的符号地址,指示汇编后该指令代码在内存中的位置。它有三种属性: 段属性:段起始地址,该地址在CS段寄存器中。 偏移属性:标号在CS段中的段内偏移地址,是16位或32位的无符号数。 类型属性:NEAR---段内引用 FAR---段间引用。 (2)变量 在编程序时,我们往往要根据程序的需要定义一些内存单元。在高级语言程序中,要给存储单元取一个符号名,然后通过引用该符号名来访问其所对应的存储单元。 而在汇编语言程序中要灵活一些,变量(Variable)字段是可有可无的,它用符号地址表示,其作用与指令语句前的标号相同,但它的后面不跟冒号。它可以给存储单元取符号名,也可以不取符号名。 当给存储单元取符号名时,则可通过该符号名来访问其对应的存储单元;当不给存储单元取符号名时,则可通过存储单元的偏移量(有效地址)来访问它。 在定义变量时,虽然可以不写变量名,但我们建议还是要写,因为不写变量名,就意味着只能用内存单元的偏移量来访问它。这时,一旦内存单元的偏移量发生变化,那么,程序中的所有引用都要修改,这不仅增加了程序维护的工作量,而且也容易因遗漏修改而出错。 定义变量是位给变量分配内存单元,有三种属性: 段属性:变量在段的起始地址,该地址在除CS段的其他寄存器中。 偏移属性:变量在段内的偏移地址(从段的起始地址到变量对应的内存单元之间的字节数),是16位或32位的无符号数 类型属性:变量能存放的数据的长度。BYTE---1个字节长 WORD---2个字节长DWORD---4个字节长 FWORD---6个字长QWORD---8个字节长 TBYTE---10个字节长 2、操作项:语句实现的具体操作 指令语句:汇编程序将其翻译成二进制指令代码 伪指令语句:汇编程序按其意义完成汇编 宏指令语句:汇编程序将其展开(用宏体代替宏指令) 3、操作数项:由一个或多个表达式组成,表达式之间用“,”隔开。 操作数可为:常数、寄存器、标号、变量、表达式 4、注释项:说明一个程序,一段程序或重要的指令功能,增强程序的可读性。以“;”开头,编译程序对“;”后的内容不编译。 二、汇编语言的表达式和运算符 1、算术操作符:+、-、*、/、MOD(除法后的余数) 【例】 P139 2、逻辑与位移操作符:AND、OR、XOR、NOT;SHL、SHR 表达式运算符不是指令,运算符指定的运算是在汇 编时完成的,指令是在执行时完成的。 【例】 MOV AL,NOT 0F0H MOV BH,0F0H AND OFH 等价于: MOV AL,0FH MOV BH,0 3、关系操作符: EQ(相等=) NE(不相等≠) LT(小于) GT(大于) LE(小于或等于≤) GE(大于或等于≥) ;比较结果为真,用全1表示,为假,用0表示。 【例】 MOV AL,5 EQU 3 MOV DH,5 GT 3 等价于: MOV AL,0 MOV DH,0FFH 4、数值回送操作符 对象:变量、标号 格式:〈运算符〉〈变量名或标号〉 1)偏移量属性操作符(OFFSET) 偏移量属性操作符(OFF
文档评论(0)