IMUL szaporodása aláírt egész programozás, útmutatók és példák

Alkalmazás. Intel processzor utasításkészlet

IMUL szaporodása aláírt egészek

IMUL parancs végrehajtása szorzata egész szám jele, a regiszterben AL (abban az esetben a szorzás egy byte) vagy AX (abban az esetben, szorzás a szó) a forrás operandust (integer). termék mérete kétszer akkora tényező.






Az egybájtos műveletek, az egyik tényező kerül regiszterben AL; A terméket a műtét után van írva, hogy a nyilvántartás AX.
Kétbájtos művelet egyik tényező kerül az AH nyilvántartásban; A terméket a műtét után beírjuk a nyilvántartások DX: AX (DX - vezető részén, ACh - fiatalabb).
Ahogy operandus faktor IMUL paranccsal megadhatja regiszter (kivéve a szegmens) vagy a memória cella; Nem hagyjuk, hogy szaporodnak a közvetlen értéket. A csapat dolgozik zászlók és CF Ha AN DX vagy egyszerűen jelentkezzen mellék AH vagy AL, illetőleg (azaz, a jel a szorzás eredménye igaz), OF és CF vannak beállítva, hogy 0; egyébként (aláírt eredmény nem fér el ACh vagy DX: AX) A CF és beállítása 1.


mov AL, 5; első tényező
mov BL, 3, a második faktor
IMUL BL; AX = 000Fh (termék)


mov ax, 256; első tényező
mov BX, 256; második tényező
IMUL BX; DX = 0001h, AX = 0000h
; (Szám 65536)








mov AL, -5; AL = FBH
mov BL, 3; BL = 03h
IMUL BL; AX-'FFF1h (-15)


Egy csapat egy operandust IMUL második tényező kell elhelyezni AL, AX, vagy EAX. A processzor az dimenziója a második tényező, amely a dimenzió az első megadott operandus. 16-, 32- vagy 64-bites előjeles eredmény kerül nyilvántartásba AX, DX: AX vagy EDX: EAX, ill. Ha szorzás után AN-tartalmuk, DX vagy EDX csak a jel kiterjesztése AL, AH vagy EAX, illetve a CF és zászlók visszaáll 0-ra, egyébként 1-be állítjuk.
Egy csapat két operandus IMUL termékük rögzítve az első operandus második operandus nem módosított. Az első operandus működhet 16- vagy 32-bites általános célú regiszterek; mint a második operandus - 16- vagy 32-bites általános célú regiszterek, a 16-bites vagy 32-bites memória sejt vagy egy azonnali értéket. Mindkét operandus kell az azonos méretű. Ha az a szorzás eredményét kerül az első operandus, CF és zászlók visszaáll 0-ra, egyébként 1-be állítjuk.
Egy csapat három operandusa IMUL termék a második és a harmadik operandus írt az első operandust. Az első operandus működhet 16- vagy 32-bites általános célú regiszterek; mint a második operandus - 16- vagy 32-bites általános célú regiszterek, vagy egy 16-os vagy 32-bites memória sejt; mint egy harmadik operandus - csak az azonnali értéket. Az első két operandus kell lennie az azonos méretű. Ha az a szorzás eredményét kerül az első operandus, CF és zászlók visszaáll 0-ra, egyébként 1-be állítjuk.


mov EAX, -1; első tényező
mov ESI, 100000000; második tényező
IMUL ESI; EDX = FFFFFFFFh,
; EAX = FA0AlF00h
; Eredmény = -100,000,000


Azon a adatmezők
OP2 dd 100h; első tényező
; A programban szegmensben
mov EAX, 400000h; második tényező
IMUL EAX, OP2; EAX = 40000000h
3. példa
mov BX, 300h
IMUL AX, BX, 4; AX = 300h * 4 = 0C00h