我对如何处理程序集乘法感到困惑。我正在研究如下所述的一些问题:
Given these hex values for the 8086 registers
AX = E204 BX = 30C2 CX = 5C08 DX = 38F1
What are the hex values in DX and AX after executing this instruction:
mul cl
对于 mul 操作,我们只使用 al 和乘数进行乘法运算吗?例如,这个乘法只是4 * 8 = 32(十进制),结果存储在 ax 中吗?
当使用 imul 时,我们会将 ax 中的整个值与乘数相乘,然后将结果存储在dx:ax,对吗?
对于这个问题,如果我确实以正确的方式接近它, al * cl = 4 * 8 = 32.然后:
al = 20
我保持啊相同(E2)还是将其归零以获得答案?
答案 0 :(得分:3)
答案 1 :(得分:0)
你为什么不试试?没关系,我是为你做的:
Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\db>debug
-a
15AB:0100 mov ax, e204
15AB:0103 mov bx, 30c2
15AB:0106 mov cx, 5c08
15AB:0109 mov dx, 38f1
15AB:010C mul cl
15AB:010E
-g=0100,010e
AX=0020 BX=30C2 CX=5C08 DX=38F1 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15AB ES=15AB SS=15AB CS=15AB IP=010E NV UP EI PL NZ NA PO NC
15AB:010E 0000 ADD [BX+SI],AL DS:30C2=00
-q
C:\DOCUME~1\db>