- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.2 汇编语言程序设计 使用汇编语言编写程序,不仅要掌握6.1节介绍的指令,还要了解汇编语言的语句格式、源程序的分段结构和伪指令语句等其他内容,本节按照模块化程序设计思想,介绍汇编语言程序设计的基本方法。 6.2.1 汇编语言的语句 ????1. 汇编语言语句的种类 汇编语言有两类语句,指令语句和伪指令语句。这两类语句完全不同,在宏汇编语言中还有一种特殊的宏指令语句,它是指令语句的另一种形式。 伪指令语句是指示汇编程序如何汇编,这类语句没有直接相对应的机器指令,如符合的定义,变量的定义等。 宏指令语句可以把一个程序段定义为一宏指令 2.汇编语言语句的格式 指令语句和伪指令语句的格式很相似都是由四项组成: 指令语句格式如下: [标号:] 指令助记符 [操作数[,操作数]] [;注释] 格式中[]表示可选项,指令是否带有操作数取决于指令本身。标号代表该指令在主存中的逻辑地址。注释项主要用来说明指令或指令段的功能,由分号开始至行尾结束。汇编程序汇编时忽略该项。 伪指令语句的格式中下: [名字] 伪指令定义符 [参数1,…,参数n] [;注释] 伪指令定义符规定了伪指令的功能。参数是伪指令操作的对象,其类型和个数取决于伪指令本身。 标号或名字由字母、数字和特殊字符 (?、@、_等)组成,不能以数字开头,标号和名字的有效长度为31,若超出则忽略后面的字符。顺便说一下,汇编程序对标号、名字、助记符、伪指令定义符、寄存器名和其他保留字中出现的字母将不区分大小写。 在一般情况下,一个语句占一行,语句的各项之间要有分隔符,空格、冒号、分号和制表符均是合法的分隔符。 6.2.2 汇编语言的操作数 汇编语言的操作数是指令操作的对象,对于不同的指令,可能是单操作数或双操作数,也可能没有操作数。而伪指令可能带有多个操作数,当操作数不只一个时中间用逗号分隔。 可以作为操作数的有:常数,寄存器,标号,变量和表达式等。 1.? 常数 常数是在程序运行期间其值不变的数,在汇编语言中,常数可以有多种表示方法。 ① 十进制常数由若干个0~9中间的数字组成的有限序列,后面可以加一个后缀字母D或者什么都不加。如1234,1235D。 ② 二进制常数由若干个0、1组成的有限序列,后面必须加一个后缀字母B。如1011B。 ③ 十六进制数由0~9和A~F所组成的有限序列,必须加后缀字母H,为了和变量标号等区别,凡是以字母(A~F)开头的十六进制数要加前导0。如1EEFH,0FFFFH。 ④ 八进制数由若干个0~7中间的数字组成的有限序列,必须加后缀字母Q。如127Q、377Q。 ⑤ 字符串常数是用引号括起来的一个或多个字符组成的有限序列。字符串常数的值是引号中的字符所对应的ASCII码值,如’B’的值是42H,’ab’的值是6162H有时字符串常数和整数可以交替使用。 ⑥ 符号常数由伪指令EQU定义的常数。 2.? 寄存器 8086CPU的寄存器可以作为指令的操作数,它们包括:8位寄存器AH、AL、BH、BL、CH、CL、DH、DL;16位寄存器AX、BX、CX、DX、SI、DI、BP、SP、DS、ES、SS、CS。 3.? 标号 标号可以作为转移指令、子程序调用指令CALL和循环控制指令LOOP等指令的操作数。 标号可以在代码段中定义,也可以用EQU或LABEL伪指令定义,它有三种重要的属性: 段值:标号对应存储单元所在段的段地址; 偏移值:标号对应存储单元所在段的段内偏移地址,是一个16位无符号数; 类型:标号的类型可以是NEAR和FAR,用来指出标号是在本段内引用还是在其它段中引用。 . 4.变量 段属性定义变量的段起始地址,此值必须在一个段寄存器中默认是DS段寄存器,也可以用段超越前缀来指明其他段寄存器。 偏移属性:变量的偏移地址是一个16位无符号数,代表存储单元所在段的段内偏移量。 类型属性:变量的类型属性定义该变量所存放的数据长度,主要有字节(BYTE)、字(WORD)、双字(DWORD)等。 注意 在汇编语言中,同一个标号和变量只能定义一次,否则汇编程序会指示出错。 15.? 数值表达式 汇编语言中表达式也可
文档评论(0)