- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
比较不相等转移指令续一 (3)CJNE Rn, #data, rel 指令功能:如果(Rn)≠data,条件满足转移。 指令代码: 10110 r r r 立即数 rel (4)CJNE @Ri, #data, rel 指令功能:如果((Ri))≠data,条件满足转移。 指令代码: 1011011i 立即数 rel * 比较不相等转移指令续二 这组指令对标志位的影响:主要表现在Cy上。 这组指令在执行时,将二个参加比较的操作数做了一次减法。当第一操作数大于等于第二操作数时,Cy=0,表示无借位;当第一操作数小于第二操作数时,Cy=1,表示有借位。 * 例3-53 若指令CJNE A,#100,NEXT的地址为2104H,该指令的偏移量为53H,指令执行前累加器ACC的内容为64H,问执行完该指令PC的内容是什么?转移地址NEXT是什么?Cy是什么? 解: 由于指令执行前(A)=64H=100, 则该转移指令条件不满足,将不发生转移。 指令执行后(PC)=2104H+3=2107H,(CY)=0 转移地址NEXT=2107H+53H=215AH * 例3-54 在30H和31H二个存储器单元中,分别存放了二个正整数 a1和a2,要求编一段程序比较出两者的较大者,并将较大者存放在32H单元中。 解: MOV A, 30H; CJNE A, 31H, NEXT; NEXT: JNC AST32H; MOV A, 31H; AST32H: MOV 32H, A; HERE: SJMP HERE ; 程序暂停。 * 三、减1不为0转移指令 Rn←(Rn)-1 (Rn) ≠0 执行下一条指令 Y N 发生转移 (1)DJNZ Rn, rel 指令功能:Rn的内容减一后,其内容不为零则转移。 * 减1不为0转移指令续 (2)DJNZ direct, rel 指令功能:某内部数据存储器的内容减一后,其内容不为零则转移。 direct←(direct)-1 (direct) ≠0 Y 发生转移 N 执行下一条指令 * 例3-55 若在以8300H为首地址的外部数据存储器中,连续存放了8个带符号补码的数据,试编制一段程序,计算这些数据中的负数的个数,并把这一个数存放在内部数据存储器40H单元。 解: MOV DPTR, #8300H; MOV R6, #08H; MOV 40H, #00H; LOOP: MOVX A, @DPTR JNB ACC.7, NEXT INC 40H; NEXT: INC DPTR DJNZ R6, LOOP; STOP: SJMP STOP * 3.5.3子程序调用和返回指令 子程序的概念: 在编制一个计算机应用程序中,经常会遇到一个现象,就是某些程序段会反复地被执行。 把这些程序段组成独立的程序,需要的时候就进入这些程序中,执行完了再回到原来的程序中。 这样的程序结构对缩短整个程序长度是非常实用的。 * 子程序名和断点 主程序 ORG 0030H MAIN: 指令1 指令2 指令3 指令4 指令5 指令6 … 子程序名SUBP:它实际上是一个地址,子程序的首地址。 断点是原来程序调用子程序处,它也是一个地址,用于指示程序从子程序返回到原来的程序。 子程序 ORG 1030H SUBP: 指令1 指令2 指令3 指令4 指令5 指令6 返回指令 * 子程序的调用和返回 调用和返回子程序指令也是改变程序执行路线的指令,调用子程序指令是将程序从原来的程序(调用程序)转入某子程序(被调用程序)中。 返回子程序指令是将程序从某子程序转入至原来的程序。 * 一、长调用指令 LCALL addr16; 指令代码:a15 ? ? ? a8 a7 ? ? ? a0 该指令的操作可以看成是以下指令的组合 PUSH PC 0~7; (SP)+1,PC 0~7进栈。 PUSH PC 8~15;(SP)+1,PC 8~15进栈。 LJMP addr16;将转移地址装入PC。 * 例3-56 若指令“LCALL SUB”的地址为8230H,子程序首地址SUB为9820H,该指令执行前(SP)=70H。请问该指令执行后PC值以及堆栈的内容如何? 答:根据该指令功能,程序将转入子程序,所以指令执行后,PC值为9820H。 * 例3-56续 该指令执行前,设堆栈内容如图3-21a所示。 由于断点地址为8230H+3=8233H,所以指令执行后堆栈内容如图3-21b所示。 (71H)=33H,(
您可能关注的文档
- 热力学 统计物理:第三章 单元系的相变.ppt
- 热力学与统计物理:第八章 玻色统计与费米统计.ppt
- 热力学与统计物理:第九章 系综理论.ppt
- 热力学与统计物理:第六章 近独立粒子及其最概然分布.ppt
- 热力学与统计物理:第十章 涨落理论.ppt
- 热力学与统计物理:第四章 多元系的复相平衡和化学平衡.ppt
- 食品化学:第四章 脂类 .ppt
- 食品化学:第一章 绪论 .ppt
- 数据结构:第八章 排序.ppt
- 数据结构:第六章 图.ppt
- 《GB/T 10810.3-2025眼镜镜片 第3部分:透射比试验方法》.pdf
- 中国国家标准 GB/T 45283.2-2025工业控制系统人机接口组态文件交互 第2部分:基础交互描述.pdf
- 《GB/T 45283.2-2025工业控制系统人机接口组态文件交互 第2部分:基础交互描述》.pdf
- GB/T 45283.2-2025工业控制系统人机接口组态文件交互 第2部分:基础交互描述.pdf
- 中国国家标准 GB/T 10810.3-2025眼镜镜片 第3部分:透射比试验方法.pdf
- GB/T 10810.3-2025眼镜镜片 第3部分:透射比试验方法.pdf
- 《GB/T 27995.1-2025半成品镜片毛坯 第1部分:单焦和多焦》.pdf
- GB/T 27995.1-2025半成品镜片毛坯 第1部分:单焦和多焦.pdf
- 中国国家标准 GB/T 27995.1-2025半成品镜片毛坯 第1部分:单焦和多焦.pdf
- 《GB/T 10810.5-2025眼镜镜片 第5部分:表面耐磨试验方法》.pdf
文档评论(0)