Больше умножения ассемблера - PullRequest
0 голосов
/ 11 октября 2011

Я не понимаю, как справиться с умножением ассемблера. Я работаю над несколькими проблемами, описанными так:

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) или я обнуляю его для ответа?

Ответы [ 2 ]

3 голосов
/ 11 октября 2011

Пожалуйста, загрузите полную документацию по процессору Intel x86 с здесь .

Подробнее об этой инструкции вы можете прочитать здесь .

0 голосов
/ 11 октября 2011

Почему ты не попробовал? Неважно, я сделал это для тебя:

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>
...