练习
算术运算与逻辑移位指令
1、若AX=0ABCDH,BX=7F8FH,CF=1。
分别执行0886 CPU指令
(1)ADD AX,BX (2)ADC AX,BX
(3)SBB AX,BX (3)NEG AX
(5)AND AX,BX (6)OR AX,BX
(7)XOR AX,BX (8)IMUL BL
后,AX寄存器中的内容,并指出标志寄存器SF、ZF、AF、PF、CF及OF的状态。
2、若CX=6700H,DX=78FFH,CF=1,求分别执行指令
(1)ADD CX,DX (2)ADC CX,DX
(3)SUB CX,DX (4)SBB CX,DX
(5)AND CX,DX (6)OR CX,DX
(7)XOR CX,DX
后,CX和DX中的内容。
并指出标志寄存器SF、ZF、AF、PF、CF和OF的状态。
3、X,Y分别为下列各组数,当它们分别进行加、减、AND、OR、XOR运算后,其标志位,SF、OF、CF、PF、ZF的状态如何?
(1)X=21H;Y=43H (2)X=9AH;Y=0BCH
(3)X=48H;Y=8DH (2)X=54H;Y=54H
4、若AX=98ABH,BX=A8BCH,求执行指令ADD AX,BX后,AX与BX中的内容,并指出SF、ZF、AF、PF、CF和OF的状态。
5、针对下列各条指令执行后的结果,填入目的操作数的值及标志位的状态。
6、若AX=FFF8H,BX=FFFAH,求执行IMUL BX后,DX与AX中的内容,并指出标
志位OF与CF的状态。
7、若AX=FFFEH,BX=FFFDH,求执行指令IMUL BX后,DX与AX中的内容。
指出标志位OF与CF的状态。
8、设AL=85H,BL=2AH,均为带符号数,求指令 IMUL BL的执行结果。
9、若AL=78H,BL=87H,
(1)求执行指令
ADD AL,BL
DAA
之后,AL=?标志位AF=?CF=?并说明BCD码调整情况。
(2)若执行指令SUB AL,BL与DAS后,情况又如何?
10、若AL=75H,BL=48,
(1)求执行指令
ADD AL,BL
DAA
之后,AL=?标志位AF=?CF=?并说明BCD码调整情况。
(2)若执行指令SUB AL,BL与DAS后,情况又如何?
11、若有一个4字节数,放在寄存器BX间址的内存中(低地址对应低字节),要求这个4字节整数整个左移一位如何实现?右移一位又如何实现?
12、若有一个四字节数,放在寄存器DX与AX中(DX放高16位),要求这个四字节数整个左移一位如何实现?右移一位又如何实现?
13、分别编写一程序使
(1)AX寄存器高3位清0;
(2)BX寄存器高3位置1;
(3)CX寄存器高4位取反;
(4)DX寄存器高3位不变,其余位清0。