文档详情

算术运算指令练习题.pptx

发布:2025-04-24约2.81千字共10页下载文档
文本预览下载声明

算术运算指令练习题

一、读程序,指出结果1、MOVAL,0F8H ADDAL,39H上述指令段运行后,AL的值是().CF=(),OF=(),AF=(),PF=(),SF=(),ZF=()31H101000

2、下面程序段执行后,AL=(),标志位CF=(),OF=(), MOV AL,64 MOV BL,-70 SUB AL,BL86H11-70→8位二进制补码?方法:+70=46H,00H-46H=BAHBAH即为-70的8位二进制补码。64=40H减法:AL-BL =40H-BAH =86H

3、设DS=1000H,BX=0300H,SI=0002H,DX=0100H,自1000H:0300H单元开始存有以下数据(用十六进制形式表示):1234567890ABCDEF,试说明下列各条指令执行后目的操作数的内容。

⑴ADDBX,12 ⑵MOVDX,[0300H]

⑶SUBBYTEPTR[BX],8 ⑷MOVAX,[BX][SI]

⑸MOVCX,5[BX] ⑹MOVDX,4[BX][SI]

编程时,数据可以用十进制,二进制,或十六进制表示。但在分析解答问题时,通常需转成十六进制或二进制。(1)BX=030CHH(2)DX=3512H(3)1000H:0300H单元的数据变为0AH.(4)AX=7856H(5)CX=CDABH(6)DX=EFCDH

4.设AX=C5FFH,BX=9E00H,试实现以下要求:

⑴ADDAX,BX指令执行后, AX=,ZF=,SF=,CF=,OF=,AF=,PF=, 63FFH001101

(1)MOVAX,Z ;取Z中的数据MOVBX,X ;取X中的数据SUBAX,BX ;Z-XADDAX,W ;Z-X+WMOVZ,AX ;存结果到Z写出执行以下二进制运算的指令序列,其中X、Y、Z、W、R均为存放16位带符号数内存单元的地址。

Z=(Z-X)+W

Z=W-(X+10)-(R+8)

Z=(W*X)/(Y+4),余数送R。

⑵Z=W-(X+10)-(R+8)(2)添加标题MOVAX,W ;取W中的数据添加标题MOVBX,X ;取X中的数据添加标题ADDBX,10 ;X+10添加标题SUBAX,BX ;W-(X+10)添加标题MOVCX,R ;取R中的数据添加标题ADDCX,8 ;R+8添加标题SUBAX,CX ;W-(X+10)-(R+8)添加标题MOVZ,AX ;存结果到Z

⑶Z=(W*X)/(Y+4),余数送R。(3)MOVAX,W ;取W中的数据到AX中1MOVBX,X ;取X中的数据到BX中2MULBX ;W*X,结果在DX_AX中3MOVCX,Y ;取Y中的数据到CX中4ADDCX,4 ;Y+45IDIVCX ;(W*X)/(Y+4),商在AX中,余数在DX中6MOVZ,AX ;存商到Z中7MOVR,DX ;存余数到R中8

AL=FBH,BL=12H,则,指令MULBL执行后,AX=H;指令IMULBL执行后,AX=H11A6FFA6思路:MULBL为无符号数乘法指令,将AL和BL直接相乘(十六进制)即可。3214

若AL=FBH,BL=12H,IMULBL后,结果为?AX=FFA6H计算两个相乘的数的绝对值。若为负数,其绝对值的计算为用0减该数,即得负数的绝对值;若为正数,其绝对值就为该数。绝对值相乘。相乘时不考虑符号,只考虑两数的绝对值相乘,得到两个数的绝对值相乘结果。结果。结果的符号位为相乘的两个数的符号位的异或,即两数符号相同,结果符号就为0,不同就为1.若结果的符号位为0,说明是正数,两数绝对值相乘的结果即为最终结果。若结果符号位为1,说明是负数,就要用0减去上一步中绝对值相乘结果,得到的数即为最终结果。IMULBL为有符号数乘法指令,计算机做有符号数相乘的步骤如下:01计算绝对值:0-FB=05H,12H绝对值相乘:05H*12H=005AH结果符号位为1,因为两数符号不同,异或即为1.0000H-005AH=FFA6H步骤:02

FDEEH若AL=96H,BL=

显示全部
相似文档