'imul'에 해당되는 글 1건

  1. 2009.05.08 [어셈블리어] 곱셈 - MUL, IMUL
2009. 5. 8. 15:01

[어셈블리어] 곱셈 - MUL, IMUL

mul source

mul(부호없는 곱셈)
source 자리에는 레지스터나 주소가 올 수 있으며, 즉시값(상수)은 올 수 없다.
source에 1바이트가 오면 AL(1바이트)과 곱해서 AX(2바이트)에 저장된다. source에 2바이트가 오면 AX와 곱해서 DX:AX에 저장한다. source가 4바이트라면, EAX와 곱해서 EDX:EAX에 저장된다.
(1자리의 숫자 두개를 곱하면 최고 2자리의 숫자가 나올 수 있다. 따라서 1바이트를 2개 곱하면 2바이트의 저장공간이 필요하다.)



imul  dest, source1
imul  dest, source1, source2

imul(부호있는 곱셈)
dest
source1
source2
Action

reg/mem8

AX = AL*source1

reg/mem16

DX:AX = AX*source1

reg/mem32

EDX:EAX=EAX*source1
reg16
reg/mem16

dest *= source1
reg32
reg/mem32

dest *= source1
reg16
immed8

dest *= immed8
reg32
immed8

dest *= immed8
reg16 immed16

dest *= immed16
reg32 immed32

dest *= immed32
reg16 reg/mem16
immed8
dest=source1*source2
reg32 reg/mem32 immed8 dest=source1*source2
reg16 reg/mem16 immed16 dest=source1*source2
reg32 reg/mem32 immed32 dest=source1*source2

reg = 레지스터, mem = 메모리 주소내의 값, immed = 즉시값(상수)