'imul'에 해당되는 글 1건
- 2009.05.08 [어셈블리어] 곱셈 - MUL, IMUL
2009. 5. 8. 15:01
[어셈블리어] 곱셈 - MUL, IMUL
2009. 5. 8. 15:01 in 공부합시다/어셈블리어
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
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 = 즉시값(상수)
'공부합시다 > 어셈블리어' 카테고리의 다른 글
[어셈블리어] push와 pop의 구분동작 (0) | 2009.05.14 |
---|---|
[어셈블리어] PUSHA와 POPA (0) | 2009.05.14 |
[어셈블리어] 데이터 전송 명령어 mov, movzx, movsx (0) | 2009.05.11 |
[어셈블리어] 나눗셈 (0) | 2009.05.06 |
[어셈블리어] data 세그먼트와 bss 세그먼트 (0) | 2009.05.06 |