- 1、本文档共71页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 MCS-51单片机指令系统及汇编语言程序设计.ppt
第三章 MCS-51单片机指令系 统及汇编语言程序设计 §3-1 汇编语言与指令系统简介 (3) 操作码是用英文缩写的指令功能助记符。 它确定了本条指令完成什么样的操作功能。 如: ADD表示加法操作。 任何一条指令都必须有该助记符项, 不得省略。 (4) 目的操作数提供操作的对象, 并指出一个目标地址, 表示操作结果存放单元的地址, 它与操作码之间必须以一个或几个空格分隔。 如上例中A表示操作对象是累加器A的内容, 并指出操作结果又回送A存放。 (5) 源操作数指出的是一个源地址(或立即数), 表示操作的对象或操作数来自何处。 它与目的操作数之间要用“,”号隔开。 (6) 注释部分是在编写程序时, 为了增加程序的可读性, 由用户拟写对该条指令或该段程序功能的说明。 它以分号“;”开头, 可以用中文、 英文或某些符号来表示, 显然它不存入计算机, 只出现在源程序中。 相对寻址是以当前程序计数器PC值加上指令规定的偏移量rel , 而构成实际操作数地址的寻址方法。 它用于访问程序存储器, 常出现在相对转移指令中。 在使用相对寻址时要注意以下两点: 第一、当前PC值是指相对转移指令所在地址(一般称为源地址)加上转移指令字节数。 即: 当前PC值 = 源地址 + 转移指令字节数。 例如: JZ rel 是一条累加器A为零就转移的双字节指令。 若该指令地址(源地址)为2050H, 则执行该指令时的当前PC值即为2052H。 第二、偏移量rel是有符号的单字节数, 以补码表示,其相对值的范围是-128~+127(即00H~FFH), 负数表示从当前地址向上转移,正数表示从当前地址向下转移。所以, 相对转移指令满足条件后, 转移的地址(一般称为目的地址)应为: 目的地址 = 当前PC值 + rel = 源地址 + 转移指令字节数 + rel 例如: 指令JZ 08H和JZ 0F4H (-12)表示累加器A为零条件满足后, 从源地址(2050H)分别向下、 向上转移10个单元。 其相对寻址示意如图3―3(a)、 (b)所示。 这两条指令均为双字节指令, 机器代码分别为: 60H 08H和60H F4H。 7. 位寻址 §3-2 数据传送类指令 数据传送类指令共29条, 它是指令系统中最活跃、使用最多的一类指令。一般的操作是把源操作数传送到目的操作数,即指令执行后目的操作数改为源操作数,而源操作数保持不变。若要求在进行数据传送时, 不丢失目的操作数, 则可以用交换型传送指令。 按数据传送类指令的操作方式, 又可把传送类指令分为3种类型: 数据传送、数据交换和堆栈操作,并使用8种助记符: MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH及POP。 一、数据传送类指令的特点 (1)除了用PUSH或MOV指令将数据传送到程序状态字外,数据传送类指令不影响进位标志CY、半进位标志AC和溢出标志OV,但当传送或交换数据后影响累加器A的值时,奇偶标志P的值则按A的值重新设定。 (2)关于寻址方式 对特殊功能寄存器SFR的操作必须使用直接寻址,这也是访问SFR的唯一方式; 源操作数可用寄存器寻址、间接寻址、直接寻址、立即数寻址、变址寻址五种寻址方式; 目的操作数可用寄存器寻址、间接寻址、直接寻址三种寻址方式。 (1) 立即寻址。 这组指令表明, 8位立即数可以直接传送到内部数据区RAM的各个位置, 并且可把16位立即数直接装入数据指针DPTR。 指令的功能及应用举例如下: ① MOV A, #data ; (direct) ← #data, 74 data 该指令的功能是将立即数#data传送到累加器A中, 对应的机器码为74H。它隐含了寄存器寻址累加器A方式, 长一个字节, 占用一个存储单元; 立即数#data紧跟在操作码之后, 成为指令代码的一部分, 长也是一个字节, 占用紧跟在后面的另一个存储单元。故该指令为双字节指令, 其机器码为74H data 。 ② MOV direct, #data ; (direct) ← #data # , 75 direct data 该指令的功能是把立即数传送到内部数据存储器RAM的00H~7FH, 以及特殊功能寄存器SFR的各单元中去, 它为三字节指令。 例如把立即数40H传送到RAM的30H单元和P1口(口地址为90H), 可采用如下指令: MOV 30H, #40H ; (30H) ←#40H, 75 30 40 MOV P1, #40H ; (90H) ←#40H, 75 90 40 ③ MOV
本人在医药行业摸爬滚打10年,做过实验室QC,仪器公司售后技术支持工程师,擅长解答实验室仪器问题,现为一家制药企业仪器管理。
文档评论(0)