- 1、本文档共71页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]单片机胡汉才班第3章课件
3.2 80C51的寻址方式 3.3 数据传送类指令(29条) 一般不影响标志寄存器PSW的状态。 16位传送(仅1条) 以A为目的 以Rn为目的 以direct为目的 以@Ri为目的 以DPTR内容为基址 读片外RAM 入栈指令PUSH 字节交换指令XCH 半字节交换指令XCHD 3.4.2 十进制调整指令 若(A)3~09或(AC)=1,则(A)3~0←(A)3~0+06H 若(A)7~49或(CY)=1,则(A)7~4←(A)7~4+06H DA A ; 若AC=1,CY=1同时发生,或者高4位虽等于9但低4位修正后有进位,则A应加66H修正。 十进制调整指令是一条对二-十进制的加法进行调整的指令。它是一条单字节指令,机器码为D4H。两个压缩BCD码按二进制相加,必须在加法指令ADD、ADDC后,经过本指令调整后才能得到正确的压缩BCD码和数,实现十进制的加法运算。 例10 对BCD码加法65 + 58→BDH,进行十进制调整。 参考程序如下: MOV A,#65H ;(A)←65 ADD A,#58H ;(A)←(A)+58 DA A ;十进制调整 使用时应注意:DA指令不能对减法进行十进制调整。做减法运算时,可采用十进制补码相加,然后用 DA A指令进行调整。例如 70 - 20 = 70 + [20]补 = 70 +(100 - 20)= 70 + 80 = 1 50 机内十进制补码可采用:[x]补 = 9AH -∣x∣。 例11 设片内RAM 30H,31H单元中分别存放着两位BCD码表示的被减数和减数,两数相减的差仍以BCD码的形式存放在32H单元中。可用下面的程序实现: CLR C MOV A,#9AH SUBB A,31H ;求减数的十进制补码 ADD A,30H ;作十进制补码加法 DA A ;进行BCD调整 MOV 32H,A ;将BCD码的差送存32H单元 3.4.3 乘、除法指令 MUL AB; (B)←((A)×(B))15~8(A)←((A)×(B))7~0 CY←0 机器码:A4H 乘法指令的功能是把累加器A和寄存器B中的两个8位无符号数相乘,将乘积16位数中的低8位存放在A中,高8位存放在B中。若乘积大于FFH(255),则溢出标志OV置1,否则OV清零。乘法指令执行后进位标志CY总是零,即CY=0。 2.除法指令 DIV AB; ?(A)←(A)÷(B)之商,(B)←(A)÷(B)之余数 ?(CY)←0,(OV)←0 机器码:84H 除法指令的功能是把累加器A中的8位无符号整数除以寄存器B中的8位无符号整数,所得商存于累加器A中,余数存于寄存器B中,进位标志位CY和溢出标志位OV均被清零。若B中的内容为0时,溢出标志OV被置1,即OV=1,而CY仍为0。` 3.5 逻辑运算及移位指令 图3.5 逻辑指令形式结构图 与加、减法指令寻址方式相同的逻辑指令; (b) 与加、减法指令寻址方式不同的逻辑指令 表3.3 逻辑操作指令表 表3.3 逻辑操作指令表 例12 (P1)=C5H,屏蔽P1口高4位而保留低4位。 执行指令:ANL P1,#0FH 结果为:(P1)=05H。 逻辑“或”指令常用来使字节中某些位置“1”,其它位保持不变。则欲置位的位用1与该位相或,保留不变的位用0 与该位相或。 例13 若(A)=C0H,(R0)=3FH,(3FH)=0FH, 执行指令:XRL A,@R0 结果为:(A)=CFH。 逻辑异或指令常用来使字节中某些位进行取反操作,其它位保持不变。欲某位取反该位与1相异或;欲某位保留则该位与0 相异或。还可利用异或指令对某单元自身异或,以实现清零操作。 例14 若(A)=B5H,执行下列操作: XRL A,#0F0H ; A的高4位取反,低4位保留, (A)=45H MOV 30H,A ;(30H)=45H XR
文档评论(0)