LuvSea

곱셈 - MUL, IMUL 본문

sTudy

곱셈 - MUL, IMUL

사랑海 2009. 8. 10. 15:28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
 
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 = 즉시값(상수)

'sTudy' 카테고리의 다른 글

PUSHA와 POPA  (0) 2009.08.10
데이터 전송 명령어 mov, movzx, movsx  (0) 2009.08.10
에셈블리로하는 나눗셈  (0) 2009.08.10
data 세그먼트와 bss 세그먼트  (0) 2009.08.10
elf32-littlearm.lds 파일 분석  (0) 2009.08.10
Comments