二、算术运算指令

二、算术运算指令

ID:65468652

大小:57.00 KB

页数:18页

时间:2022-01-09

二、算术运算指令_第1页
二、算术运算指令_第2页
二、算术运算指令_第3页
二、算术运算指令_第4页
二、算术运算指令_第5页
二、算术运算指令_第6页
二、算术运算指令_第7页
二、算术运算指令_第8页
二、算术运算指令_第9页
二、算术运算指令_第10页
资源描述:

《二、算术运算指令》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、二、算术运算指令包括加、减、乘、除、加1、减1等共24条指令 注:这类指令大都影响标志位。1.加法指令带进位加法指令不带进位加法指令加1指令十进制调整指令⑴不带进位加法指令ADDA,Rn;(A)←(A)+(Rn)ADDA,direct;(A)←(A)+(direct)ADDA,@Ri;(A)←(A)+((Ri))ADDA,#data;(A)←(A)+data对于PSW的影响:执行这组指令将影响标志位Cy、AC、OV、P。当然,溢出标志OV只有带符号数运算才有用。例3-8:设(A)=0C3H,(R0)=0AAH,执行

2、指令“ADDA,R0”结果:所得和为6DH,标志位Cy=1,OV=1,Ac=0。⑵带进位加法指令ADDCA,Rn;(A)←(A)+(Rn)+(Cy)ADDCA,direct;(A)←(A)+(direct)+(Cy)ADDCA,@Ri;(A)←(A)+((Ri))+(Cy)ADDCA,#data;(A)←(A)+data+(Cy)注:主要用于多字节的加法运算。例3-9:设(A)=0C3H,(R0)=0AAH,(Cy)=1执行指令:ADDCA,R0;例3-10:试编写计算6655H+11FFH的程序MOVA,#55H

3、ADDA,#0FFHMOV50H,AMOVA,#66HADDCA,#11HMOV51H,A(3)二-十进制调正指令(BCD码修正指令)DAA;若[(A3~0)>9]或[(AC)=1]则(A3~0)←(A3~0)+06H;若[(A7~4)>9]或[(Cy)=1]则(A7~4)←(A7~4)+60H注:本指令不能单独使用,只能用在加法指令之后本指令不能直接用于十进制数减法的调正本指令不能简单的把累加器A中的16进制数变换成BCD码例3-11:设累加器A内容为压缩BCD码56(即01010110B),寄存器R3的内容为压

4、缩BCD码67(即01100111B),Cy内容为1。执行下列的指令:ADDCA,R3DAA例3-12:设有4个压缩BCD码,分别放在内部数据存储器50H~51HD单元和60H~61H单元中,试编写求出两个数的和的程序,结果存放到40H~41H单元中。MOVA,50H;(A)←(50H)ADDA,60H;(A)←(A)+(60H)DAA;BCD码修正MOV40H,AMOVA,51HADDCA,61HDAAMOV41H,A⑷加1指令INCA;(A)←(A)+1INCRn;(Rn)←(Rn)+1INCdirect;(d

5、irect)←(direct)+1INC@Ri;((Ri))←((Ri))+1INCDPTR;(DPTR)←(DPTR)+1注:执行结果只影响PSW的奇偶校验位P(以A为操作数时)2.减法指令⑴带借位减法指令SUBBA,Rn;(A)←(A)-(Rn)-(Cy)SUBBA,direct;(A)←(A)-(diect)-(Cy)SUBBA,@Ri;(A)←(A)-((Ri))-(Cy)SUBBA,#data;(A)←(A)-data-(Cy)功能是将累加器A内容减去源地址单元内容,再减去进位位Cy的内容,结果放入累加器

6、A中问题:如何应用此指令对两个单字节数相减?主要用于多字节数的减法如果要进行单字节或多字节数低8位数的减法运算,应先清除进位位Cy。对于PSW的影响CY、AC、OV、P例3-13:设累加器A的内容为0C9H,寄存器R2内容为54H,进位标志Cy=1,执行指令:SUBBA,R2例3-14:试编写计算EE33H-A0E0H的程序CLRC;(Cy)←0MOVA,#33H;(A)←33HSUBBA,#0E0H;(A)←(A)-E0HMOV50H,A;(50H)←(A)MOVA,#0EEHSUBBA,#0A0HMOV51H,

7、A⑵减1指令DECA;(A)←(A)-1DECRn;(Rn)←(Rn)-1DECdirect;(direct)←(diect)-1DEC@Ri;((Ri))←((Ri))-1注:执行结果只影响PSW的奇偶校验位P(以A为操作数时)3.乘、除法指令MULAB;(A)←[(A)×(B)]7-0(B)←[(A)×(B)]15-8如果积大于255(FFH),则溢出标志OV置1,否则清0。进位标志位Cy总为0。例3-15:设(A)=50H(80),(B)=0AH(160)执行指令:MULAB;结果乘积为3200H(12800

8、)则(A)=00H,(B)=32H,OV=1,Cy=0⑵除法指令DIVAB;(A)←(A)/(B)的商(B)←(A)/(B)的余数标志位Cy和OV清0(当除数为0时OV置1)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。