77范文网 - 专业文章范例文档资料分享平台

单片机指令系统(4)

来源:网络收集 时间:2019-01-04 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

例如:(A)=65H,(20H)=0AFH,执行指令ADD A,20H 结果:(A)=14H;CY=1;AC=1;OV=0。

对于加法指令,溢出只能发生在两个加数符号相同的情况。在进行带符号数的加法运算时,溢出标志OV是一个重要的编程标志,利用它可以判断两个带符号数相加,和数是否溢出(即大于127或小于-128)。

2.带进位加法指令 汇编指令格式

ADDC A,Rn ; 0011 (A)←(A)+(Rn)+CY 1rrr

ADDC A,direct

ADDC A,@Ri

ADDC A,#data

; 0011 0100 (A)←(A)+data+CY data ; 0011 (A)←(A)+((Ri))+CY 011i

; 0011 0101 (A)←(A)+(direct)+CY

direct 机器码格式 操 作

这组带进位加法指令的功能是把所指出的字节变量、进位标志与累加器A中的内容相加,结果放在累加器A中。如果位7 有进位,则进位CY置“1”,否则清“0”。如果位3有进位则辅助进位AC置“1”,否则清“0”。如果位6有进位而位7没有或位7有进位而位6没有,则溢出标志OV置位,否则清“0”。源操作数的寻址方式和ADD指令相同。

例如:(A)=85H,(20H)=0A9H,CY=1,执行指令ADDC A,20H 结果:(A)=2FH;CY=1;AC=0;OV=1。

3. 进制调整指令

汇编指令格式 机器码格式 操 作

16

1101 0100 ; 调整累加器A的内容为BCD码

DA A

这条指令跟在ADD或ADDC指令后,将存放在累加器A中的参与BCD码加法运算所获得的8位结果进行十进制调整,使累加器中的内容调整为二位BCD码数,完成十进制加法运算功能。

若(A)3~0>9或AC=1,则(A)+6→(A)。 同时,若(A)7~4>9或CY=1,则(A)+60H→(A)。

本指令是对累加器A中的BCD码加法结果进行调整。两个压缩型BCD码按二进制加法相加后,必须经本指令调整才能得到压缩型BCD码的和的正确值。

例如:(A)=56H,(30H)=67H,执行指令:

ADD A,30H DA A

结果:(A)=23H,CY=1。 例3-2.双字节BCD码数加法运算

加数1和加数2分别放在内部RAM 30H(高位)和31H(低位),32H(高位)和33H(低位)单元,和存放于34H(高位)、35H(低位)和36H(36H用来存放最高位的进位)。

DADD:

MOV A,31H ADD A,33H DA A MOV 35H,A MOV A,30H ADDC A,32H DA A MOV 34H,A CLR A ADDC A,#00H

17

DA A MOV 36H,A RET

二、减法指令(SUBB)与多字节运算举例

汇编指令格式 机器码格式 操 作

1001 1rrr ;

(A)←(A)-(Rn)-CY

SUBB A,Rn

SUBB A,direct ; 1001 0101 (A)←(A)-(direct)-CY

SUBB A,@Ri

SUBB A,#data ; (A)←(A)-data-CY 1001 0100

data ;

(A)←(A)-((Ri))-CY 1001 011i direct 这组带进位减法指令的功能是从累加器A中减去指定的变量和进位标志,结果存放在累加器中。在进行减法操作过程中如果位7需借位,则CY置位,否则CY清“0”;如果位3需借位,则AC置位,否则AC清“0”;如果位6需借位而位7不需借位或者位7需借位而位6不需借位则溢出标志OV置位,否则溢出标志清“0”。在带符号数运算时,只有当符号不相同的两数相减时才会发生溢出。

注意:由于8051指令系统中没有不带借位的减法指令,如需要,可以在执行“SUBB”指令之前用“CLR C”指令将CY清0。

例如:(A)=56H,(23H)=67H,CY=1执行指令:

SUBB A,23H

结果:(A)=0EEH,CY=1,AC=1,OV=0。

18

如果在进行单字节或多字节减法前不知道进位标志CY的值,则应在减法指令前先将CY清0。

例3-3.双字节减法程序。

被减数和减数分别放在内部RAM 30H(高位)和31H(低位),32H(高位)和33H(低位)单元,差存放于34H(高位)、35H(低位)和36H(36H用来存放最高位的借位)。

DSUBB:

CLR C MOV A,31H SUBB A,33H MOV 35H,A MOV A,30H SUBB A,32H MOV 34H,A MOV A,#00H ADDC A,#00H MOV 36H,A RET

三、递增/减指令(INC、DEC) 1.增量指令

汇编指令格式 机器码格式 INC A ; 0000 0100

INC Rn ; 0000 1rrr

0000 0101 INC direct ;

direct

操 作 (A)←(A)+1 (A)←(Rn)+1 (direct)←(direct)+1 19

INC @Ri

(Ri)←((Ri))+1 0000 011i INC DPTR ; (DPTR)←(DPTR)+1 1010 0011

这组增量指令的功能是把所指出的变量加1,若原来为0FFH将溢出为00H,不影响任何标志。操作数有寄存器寻址、直接寻址和寄存器间接寻址方式。注意:当用指令INC direct修改端口Pi(即指令中的direct为端口P0~P3,地址分别为80H、90H、0A0H、0B0H)时,该指令是一条具有读-修改-写功能的指令,其功能是修改输出口的内容。指令执行过程中,读入端口的内容来自端口的锁存器而不是端口的引脚。

例如:(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H, 执行下列指令:

INC A INC R3 INC 30H

;(A)←(A)+1 ;(R3)←(R3)+1

;(30H)←(30H)+1

INC @R0 ;((R0))←((R0))+1

结果:(A)=00H,(R3)=10H,(30H)=0F1H,(40H)=01H,不改变PSW状态。

2. 减1指令

汇编指令格式 机器码格式 操 作 DEC A

0001 1rrr ; (Rn)←(Rn)-1 0001 0100 ; (A)←(A)-1

DEC Rn

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库单片机指令系统(4)在线全文阅读。

单片机指令系统(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/403679.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: