资源描述:
《算术移位指令.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、算术运算指令算术运算类指令共有24条,可分为加法、带进位加法、带借位减法、加1减1,乘除及BCD码调整指令共6组。它主要完成加、减、乘、除四则运算,以及增量、减量和十进制调整操作。算术/逻辑运算部件(ALU)对8位无符号数可进行直接运算,借助溢出标志,可对带符号数进行2的补码运算;借助进位标志,可进行多字节加减运算,也可以对压缩BCD码进行运算(压缩BCD码是指单字节中存放两位BCD码)。大多数的算术运算指令都对PSW的标志位有影响。1加法指令加法指令共有如下4条指令,操作数助记符为ADD。指令格式功能注释机器码AD
2、DA,#data;(A)←(A)+#data24dataADDA,direct;(A)←(A)+(direct)25directADDA,@Ri;(A)←(A)+((Ri))26~27ADDA,Rn;(A)←(A)+(Rn)28~2F上述指令的目的操作数都是累加器,将立即数、内部RAM单元、工作寄存器和累加器的内容进行加法运算,所得结果存储在累加器中。指令执行将影响标志位AC、CY、OV、P。当加法和的第3位或第7位有进位时,分别将AC,CY标志位置1,否则为0。溢出标志位OV=C6C7(C6和C7是指运算是第六位和
3、第七位是否进位,若有进位,则为1),该标志位只有带符号数运算时才有用。指令格式功能注释机器码ADDCA,#data;(A)←(A)+(CY)+#data34dataADDCA,direct;(A)←(A)+(CY)+(direct)35directADDCA,@Ri;(A)←(A)+(CY)+((Ri))36~37ADDCA,Rn;(A)←(A)+(CY)+(Rn)38~3F2带进位加法指令带进位加法指令有如下4条指令,其助记符为ADDC。例3.11:设(A)=19H,(R0)=57H,(CY)=1执行指令:ADDA
4、,R0后的标志位变化情况。解:结果为:(A)=70H,OV=0,CY=0,AC=1,P=1。3带借位减法带借位减法指令有如下4条指令,其助记符为SUBB。指令格式功能注释机器码SUBBA,#data;(A)←(A)-(CY)-#data94dataSUBBA,direct;(A)←(A)-(CY)-(direct)95directSUBBA,@Ri;(A)←(A)-(CY)-((Ri))96~97SUBBA,Rn;(A)←(A)-(CY)-(Rn)98~9F例3.12:设(A)=66H,(R0)=92H,CY=0,执
5、行指令:SUBBA,R0后结果和标志位变化情况。解:结果为:(A)=0D4H,CY=1,AC=0,OV=1,P=0乘、除法指令为单字节4周期指令,在指令执行周期中是最长的两条指令。指令格式功能注释机器码4乘、除法指令MULAB(B)←((A)×(B))15~8,(A)←((A)×(B))7~0(CY)←0A4DIVAB(B)←(A)÷(B)之余数(A)←(A)÷(B)之商,(CY)←0,(OV)←084例3.13:若(A)=4EH,(B)=5DH执行指令:MULAB结果和标志位变化情况。解:结果为:积为(BA)=1C
6、56H,(A)=56H,(B)=1CH,OV=1,CY=0,P=0。累加器A清零与取反指令有如下2条指令,其助记符分别为CLR和CPL。CLRA;(A)←00H,E4CPLA;(A)←(A),F4【注】:CLR指令的目的操作数只能是累加器,不能是直接寻址方式(Direct),所以若希望将某个片内RAM单元清零,不能使用CLRDirect,可以使用传送类指令MOVDirect,#00H来实现对片内RAM单元清零。累加器A清零与取反指令移位指令有如下循环左移、带进位位循环左移、循环右移和带进位位循环右移4条指令,移位只能
7、对累加器A进行。循环左移RLA;(An+1)←(An),(A0)←(A7),23带进位位循环左移RLCA;(An+1)←(An),(CY)←(A7),(A0)←CY),33循环右移RRA;(An)←(An+1),(A7)←(A0),03带进位位循环右移RRCA;(An)←(An+1),(CY)←(A0),(A7)←(CY),13以上移位指令操作,可用下图表示。移位指令移位指令操作示意图