- 1、本文档共89页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 8051汇编指令
* 3)减1不为0转移指令 DJNZ ?Rn, rel? ; (Rn)-1→(Rn),(Rn)≠0,(PC)+ 2 + rel→(PC) DJNZ ? direct, rel? ; (direct )-1→(direct),(direct)≠0,(PC)+ 2 + rel→(PC) 控制转移指令 * 习题:分析下面程序的功能。 DELAY: MOV R7,#250 D1: MOV R6,#248 DJNZ R6,$ DJNZ R7,D1 * 习题:编写程序,要求将数据区 30H~50H 中的内容清零。 MAIN: mov r2,#21h ;地址数 mov r0,#30h ;首地址 xh: mov @r0,#0 inc r0 djnz r2,xh END * ??[3].?子程序调用及返回指令(4条) ACALL ?addr11?; 短调用指令,可在2kB空间调用子程序。 执行过程: 1) (PC)+ 2→(PC) 2) PUSH PC7-0 3) PUSH PC15-8 4) addr11→(PC10-0) 控制转移指令 * LCALL ?addr16?; 长调用指令,可在64kB空间调用子程序。 执行过程: 1)(PC)+ 3→(PC) 2) PUSH PC7-0 3) PUSH PC15-8 4) addr16→(PC) 控制转移指令 * ? RET ?; 子程序返回指令。 执行过程: 1) pop PC15-8 2) pop PC7-0 ?RETI ?; 中断返回指令,除具有RET功能外,还有清除内部中断状态标志。 控制转移指令 * 例题:编写子程序,要求完成A+B-C=D JS: MOV A,R0 ADD A,R1 SUBB A,R2 ;D RET MAIN: MOV R0,#20H ;A MOV R1,#15H ;B MOV R2,#10H ;C ACALL JS MOV R3,A ………. AJMP MAIN 子程序 主程序 * [4].?空操作指令(1条) NOP ???? 这条指令除了使PC加1,消耗一个机器周期外,没有执行任何操作。可用于短时间的延时。 控制转移指令 * 3.3.5 位操作指令 [1].?位传送指令(2条) ??MOV ?C,bit ???????;bit→CY,某位数据送CY ?????MOV ?bit,C ???????;CY→bit,CY数据送某位 * ?[2].?位置位、复位指令(4条) 这些指令对CY及可寻址位进行置位或复位操作。???????? CLR ?C?????????? ?; 0→CY,清CY????????CLR ?bit?????????? ; 0→bit,清某一位????????SETB ?C?????????? ; 1→CY,置位CY????????SETB ?bit?????????; 1→bit,置位某一位 位操作指令 * [3].?位运算指令(6条) 位运算都是逻辑运算,有与、或、非三种指令。????????ANL ?C,bit????????;(CY)∧(bit)→CY????????ANL ?C,/bit????????;(CY)∧( )→CY ????????ORL ?C,bit????????;(CY)∨(bit)→CY?? ORL ?C,/bit????????;(CY)∧( )→CY ????????CPL ?C???????????;( )→CY????????CPL ?bit??????????;( )→bir 位操作指令 * [4].?位控制转移指令(5) JC ?rel??????; (CY)=1转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC ??JNC ?rel?????; (CY)=0转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。 位操作指令 * ???? J
文档评论(0)