编辑: hgtbkwd 2016-06-11

9,加6调整 (1)

1110 0100

110 ;

高4位>

9,加60H调整 (1)

0100 0100运算结果为(A)=44H,Cy=1 即十进制的144. * 2. 减法指令 SUBB A,源操作数;

带借位减法指令 SUBB A,Rn SUBB A,direct SUBB A,@Ri SUBB A,#data 影响:Cy、OV、AC、P 例:A= 5AH,R2= 5AH,Cy= 0,执行下列指令SUBB A,R2求:A= 00,Cy=0,OV=0,P=0,AC= 0? * 例:设(A)=0C9H,(R0)=60H,(60H)=54H,Cy=1,执行指令:SUBB A,@R0 结果为 (A)=74H 标志位为Cy=0,0V=1,AC=0,P=0

1110 100 借位

1100 1001 (A)

0101 0100 ((R0)1 Cy

0111 0100 * 3. 增量、减量指令 增量指令:INC 单操作数 INC A INC Rn INC direct INC @Ri INC DPTR 除对A操作影响标志位P以外,不影响标志位状态. * 减量指令:DEC 单操作数 DEC A DEC direct DEC @Ri DEC Rn 除对A操作影响标志位P以外,不影响标志位状态.注意:没有指令 DEC DPTR 可用指令 DEC DPL 代替 * 3.5.2. 乘除指令 MUL AB;

BA←A*B,Cy←0,;

当积高字节B=0,OV←0;

B≠0,则OV←1 DIV AB ;

A÷B,A←商,B←余数,Cy←0,;

当除数B=0,OV←1;

B≠0,则OV←0 例: A= 96(60H), B= 192(0C0H),执行指令 MUL AB 后,求:A= ,B= ,Cy= ,OV= ,P= ? 解:

96 *192 = 18432(4800H) 例:A= 156(F6H),B= 13(0DH),执行指令 DIV AB后求:A= ,B= ,Cy= ,OV= ,P= 解:

156 ÷

13 = 18(12H),余数= 12(0CH). * 3.6 逻辑运算指令

一、单操作数指令(A累加器为操作数)1. A清0指令: CLR A ;

A←02. A取反指令:CPL A ;

A←/A 3. 循环移位指令: 1)8位循环指令: RL A ;

A循环左移一位 RR A ;

A循环右移一位 2)9位循环指令: RLC A;

带Cy循环左移一位 RRC A;

带Cy循环右移一位 * 例:设A= 11000101,Cy= 0,分别执行下列单条指令: CPL A ;

A=Cy= RL A ;

A=Cy= RLC A ;

A=Cy=

00111010 0

10001011 0

10001010 1 * 用9位循环指令实现多字节移位 例:编程将寄存器 R6R5 中的双字节数X左移一位.

0 Cy R6 R5 Cy CLR CMOV A,R5RLC AMOV R5,AMOV A,R6RLC AMOV R6,A ;

Cy=0, 设R6= 55H ,R5= AAH;

R6=01010101,R5=10101010,Cy=0;

R6=01010101,R5=01010100,Cy=1;

R6=10101011,R5=01010100,Cy=0 *

二、双操作数逻辑运算指令(对位逻辑运算):ANL、ORL、XRL 例: A=01******B,*表示随机状态,为1或0,执行 下述一组指令执行后A的值如何? ANL A,#0E7H;

将累加器A的内容D

4、D3清0 ORL A,#03H;

将累加器A的内容D

1、D0置1XRL A,#0C0H;

将累加器A的内容D

7、D6取反 解:执行上述指令后,A=10*00*11B. * 3.6.1 逻辑或指令(6条) ORL A,Rn ;

A∨Rn→AORL A,direct ;

A∨(direct)→AORL A,@Ri ;

A∨(Ri)→AORL A,#data;

A∨data→AORL direct,A;

(direct)∨A→(direct)ORL direct,#data ;

(direct)∨data→(direct) 影响P标志 例:71H和56H相或:01110001 (71H) ∨)

01010110 (56H)

01110111 即77H 后两条指令,若直接地址为I/O端口,则为 读-改写 操作. * 3.6.2 逻辑与指令 (6条) ANL A,Rn ;

A∧Rn→AANL A,direct ;

A∧(direct)→AANL A,@Ri ;

A∧(Ri)→AANL A,#data ;

A∧data→AANL direct,A ;

(direct)∧A→(direct)ANL direct,#data ;

(direct)∧data→(direct) 影响P标志 例:71H和56H相与:01110001 (71H) ∧)01010110 (56H)

01010000 即50H 后两条指令,若直接地址为I/O端口,则为 读-改写 操作. * 例:71H和56H相异或:

01110001 (71H)01010110 (56H) 3.6.3 逻辑异或指令(6条) XRL A,Rn ;

A ?Rn→AXRL A,direct ;

A ?(direct)→AXRL A,@Ri ;

A ?(Ri)→AXRL A,#data ;

A ? data→AXRL direct,A ;

(direct) ?A→(direct)XRL direct,#data ;

(direct) ?data→(direct) 影响P标志

00100111 即27H 后两条指令,若直接地址为I/O端口,则为 读-改写 操作. * 3.6 位操作指令

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题