网站大量收购独家精品文档,联系QQ:2885784924

微机原理与应用:第十七讲 汇编语言程序设计中的伪指令.ppt

微机原理与应用:第十七讲 汇编语言程序设计中的伪指令.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十七讲 汇编语言程序设计中的 伪指令 * 第四章 51系列汇编语言程序设计 汇编语言是一种面向机器的语言,也就是说这种语言与对应的计算机的特点密切相关。其特点是: 效率高,程序简洁明了。 占用内存少。 运行速度快。 能直接访问接口电路,实现硬件设备的直接控制。 * 源程序、目标程序和汇编程序 源 程 序 汇编 程序 目 标 程 序 * 4.1 伪指令 伪指令是汇编程序为了有效地将源程序转换成目的程序所需要的一些汇编命令。 伪指令是为了确定程序的起始点、数据放在哪里、程序到哪里结束等有关问题所需要的汇编命令。 之所以称其为伪指令,是因为它在源程序中的表现形式与机器指令并无两样,不同的是它在目标程序中不产生机器代码,它只是给汇编程序一个指示而已。 伪指令还有助于提高源程序的可读性。 * 4.1.1 起始指令 起始指令中的ORG表示起点(Origin),也称定位伪指令。指令中的nn表示地址,其功能是确定程序代码和数据代码放在存储器中的起始位置。如: ORG nn; ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV SP,#80H * 4.1.2 结束指令 END 结束指令END的功能似乎象它助记符号那样简单,表示源程序到此结束,指示汇编程序翻译到此为止,即使END后面还有其他语句,汇编程序不再进行翻译。 每一个源程序应该只有一个结束指令END。 * 4.1.3 数据定义类指令 一、定义字节数据 [标号:] DB 项或项表 助记符号DB的含义是定义字节数据(Define Byte)。 每一个数据都是常数,每一个常数的大小范围不能超过8位二进制数能表达的范围。 这些常数存放在程序存储器中,指令中的标号是这些数据存放在存储器中的首地址。 指令中的“项或项表”有以下几层含义: * “项或项表”有以下几层含义 “项或项表”可以是一个数据,也可以是一串数据。每一个数据之间用逗号隔开。 “项或项表”中数据书写的形式可以是二进制数、十进制数、十六进制数等。 “项或项表”也可以表达字符串,表达时用单引号将字符串包括在内,字符串经过汇编以后将生成相应的ASCII码。 * 例4-1 分析下列程序段。 ┇ ORG 0100H LABLE: DB,100,93H,‘ABC’,56H 答:本程序段是一个数据表格。数据从程序存储器0100H起依次存放。 第一项是一个二进制数。 第二项是一个十进制数。 第三项是一个十六进制数。 第四项是一个字符串,第四项的字符串将在程序存储器中生成3个ASCII码,分别是41H、42H、43H。 第五项也是一个十六进制数。 * 例4-1续 程序存储器地址 程序存储器单元内容 0106H 56H 0105H 43H 0104H 42H 0103H 41H 0102H 93H 0101H 64H 0100H 85H * 例4-2 分析下列程序段。 MOV A, #2 MOV DPTR, #LABLE MOVC A, @A+DPTR ┇ ORG 2000H LABLE: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H 答:第三条指令中的源操作数地址为2002H(2000H+2),而2002H单元的内容是32H,因此该指令执行后,累加器的内容为32H。 * 二、定义字数据 [标号:] DW 项或项表 例4-3 ORG 8200H DATW:DW 343,512,729 存储器地址 存储器 8205H D9H 8204H 02H 8203H 00H 8202H 02H 8201H 75H 8200H 01H 343=0175H 512=0200H 729=02D9H 将程序涉及到的一些常数,放在程序存储器中,其中每一项是一个字,即16位二进制数。 * 这三个数分别是数7、8、9的立方。 三、定义字节变量于内部数据存储器 符号名 DATA addr8 这条伪指令的功能是将一个字节型变量定义在内部数据存储器00H~7FH中,指令中符号名用于给变量起名,指令中addr8是内部数据存储器地址,表示变量所在的内存单元。 例4-4:试编制一段程序,完成公式y=7x+8的运算。设y的值域为大于零,小于255。 解:根据题意,程序编制如下: * 例4-4续 x DATA 30H; 定义变量x于内部数据存储器30H单元. y DATA 31H; 定义变量y于内部数据存储器31H单元. MOV A, x; 将变量x的值送入累加器A. MOV B, #7; 将常数7送入寄存器B. MUL AB; 进行7x运算. ADD A, #8; 进行7

文档评论(0)

学习让人进步 + 关注
实名认证
内容提供者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档