当前位置:文档之家› 算术运算指令练习题

算术运算指令练习题


10、程序段如下: ;AH=00H MOV AH, 0 MOV AL, 9 ;AL=09H MOV BL, 8 ;BL=08H ADD AL, BL ;AL=11H,AF=1 AAA AAD调整方法: AAD AH*10+AL=11H,AH=00H DIV BL AAD调整后,AL=11H,AH=00H 08H 02H 01H 结果AL=_________,AH=___________, BL=_________。
⑶ SUB BYTE PTR [BX],8
⑷ MOV AX,[BX][SI] ⑸ MOV CX,5[BX] ⑹ MOV DX,4[BX][SI]
(3) 1000H:0300H单元的数 据变为0AH. (4) AX=7856H (5) CX=CDABH (6) DX=EFCDH
编程时,数据可以用十进制,二进制,或十六进制表 示。但在分析解答问题时,通常需转成十六进制或二 进制。
(1)计算绝对值: 0-96H=6AH, 05H (2)绝对值相乘: 6AH*05H=0212H (3)结果符号位为1, 因为两数符号不同,异或即为1 0000H-0212H=FDEEH
8、若AL=FFH,BL=FFH,则执行IMUL BL 指令后,结果AX=( 0001H )
(1)计算绝对值:0-FFH=01H,0-FFH=01H (2)绝对值相乘:01H*01H=0001H (3)结果符号位为0(两数符号相同,结果符号为0) 结果即为绝对值相乘结果。
算术运算指令练习题
一、读程序,指出结果
1、 MOV AL,0F8H ADD AL,39H 上述指令段运行后,AL的值是( 31H). 1 1 CF=( ),OF=( 0 ),AF=( 0 ) PF=( 0 ),SF=( 0 ),ZF=(
),
2、下面程序段执行后, AL=( 86H ), 标志位CF=( 1 ),OF=( 1 ), 64=40H MOV AL,64 MOV BL,-70 减法:AL-BL SUB AL,BL =40H-BAH
;取W中的数据 ;取X中的数据 ;X+10 ;W-(X+10) ;取RБайду номын сангаас的数据 ;R+8 ; W-(X+10)-(R+8) ;存结果到Z
⑶ Z =(W*X)/(Y+4),余数送R。
(3) MOV AX,W MOV BX,X MUL BX MOV CX,Y ADD CX,4 IDIV CX MOV Z,AX MOV R,DX
AX=FFA6H
步骤: (1)计算绝对值: 0-FB=05H,12H (2)绝对值相乘: 05H*12H=005AH (3)结果符号位为1, 因为两数符号不同,异或即为1.0000H-005AH=FFA6H
7、若AL=96H,BL=05H,则执行IMUL BL 指令后,结果AX=( FDEEH )
-70→8位二进制补码? 方法:+70=46H,00H-46H=BAH BAH即为-70的8位二进制补码。 =86H
3、设DS=1000H,BX=0300H,SI=0002H,DX=0100H,自 1000H:0300H单元开始存有以下数据(用十六进制形式表示):12 34 56 78 90 AB CD EF,试说明下列各条指令执行后目的操作数的 内容。 (1) BX=030CHH ⑴ ADD BX,12 (2) DX=3512H ⑵ MOV DX,[0300H]
AAA的调整方法: AL+06H=17H,AL的高4位清0,AL=07H AH加1,变为AH=01H 也即AX=0107H,若为非压缩BCD码,即表示17.
思路:MUL BL为无符号数乘法指令,将AL和BL直接相乘 (十六进制)即可。
IMUL BL为有符号数乘法指令,计算机做有符号数相乘的步骤如下: (1)计算两个相乘的数的绝对值。若为负数,其绝对值的计算为用0减该 数,即得负数的绝对值;若为正数,其绝对值就为该数。 (2)绝对值相乘。相乘时不考虑符号,只考虑两数的绝对值相乘,得到两 个数的绝对值相乘结果。
9、下面程序段执行后,AX=( 0132H ),BX= ( 0112H )。 MOV AX,92H ;AX=0092H MOV BX,10H ;BX=0010H ;BX=0080H,CF=0 ADD BX,70H ADC AX,BX ;AX=0112H PUSH AX ;(SP+1)_(SP)=0112H MOV AX,20H ;AX=0020H POP BX ;BX=0112H ;AX=0132H ADD AX,BX
(1) MOV AX,Z MOV BX,X SUB AX,BX ADD AX,W MOV Z,AX ;取Z中的数据 ;取X中的数据 ;Z-X ;Z-X+W ;存结果到Z
⑵ Z = W-(X+10)-(R+8)
(2)
MOV AX,W MOV BX,X ADD BX,10 SUB AX,BX MOV CX,R ADD CX,8 SUB AX,CX MOV Z,AX
(3)结果。结果的符号位为相乘的两个数的符号位的异或,即两数符号相 同,结果符号就为0,不同就为1.若结果的符号位为0,说明是正数,两 数绝对值相乘的结果即为最终结果。若结果符号位为1,说明是负数, 就要用0减去上一步中绝对值相乘结果,得到的数即为最终结果。
若AL=FBH,BL=12H, IMUL BL后,结果为?
4. 设AX= C5FFH,BX= 9E00H,试实现 以下要求: ⑴ ADD AX,BX 指令执行后, AX= 63FFH,ZF= 0 , SF= 0 , CF= 1 , OF= 1 , AF= 0 , PF= 1 ,
5、写出执行以下二进制运算的指令序列,其中X、Y、 Z、W、R均为存放16位带符号数内存单元的地址。 ⑴ Z =(Z-X)+ W ⑵ Z = W-(X+10)-(R+8) ⑶ Z =(W*X)/(Y+4),余数送R。
;取W中的数据到AX中 ;取X中的数据到BX中 ;W*X,结果在DX_AX中 ;取Y中的数据到CX中 ;Y+4 ;(W*X)/(Y+4),商在AX中,余数在DX中 ;存商到Z中 ;存余数到R中
6、AL=FBH,BL=12H,则,指令MUL BL执行后, AX= 11A6 H;指令IMUL BL执行后,AX= FFA6 H
相关主题