Információs portál msevm

Főoldal> assembly> Alkalmazás> MUL szorzás előjel nélküli egészek NEG jel változása, a 2., a NOP Nem üzemképes, NOT inverzió, amellett, hogy 1. A logikai tagadás, OR logikai Engedélyezi vagy OUT kimenet port







MUL szorzás előjel nélküli egész szám

inul parancs végrehajtása szaporodását előjel nélküli egész szám, amely a regiszter AL (abban az esetben a szorzás egy byte) vagy AX (abban az esetben, szorzás a szó) a forrás által operandus (előjel nélküli egész szám). 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). Az előző regiszter tartalma DX felülírja.
Ha a regiszterben AH byte szorzás után vagy DX regiszter tartalma, miután két bájtos szorzásait nem 0, CF és zászlók beállítása 1. Ellenkező esetben a két zászló visszaáll 0-ra.
Ahogy operandus mul faktor 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


mov AL, 5; első tényező
mov BL, 3, a második faktor
mul BL; AX = 000Fh, a munka


mov ax, 256; első tényező
mov BX, 256; második tényező
mul BX; DX = 0001h, AX = 0000h
(DX: AX = 65536, a termék)


Azon a adatmezők
COEF dB 100; első tényező
datal dB 126; második tényező
mov AL, datal; AL = 7EH = 126
mul COEF; AX = 3138h = 12600, a termék


; B adatmezők
együttható dw 5000; Az első tényező
datal dw 1200, második tényező
mov ax, datal; AX = 4BOh = 1200
mul COEF; DX = 005Bh, AX = 8D80h
; Product = BX: AX =
; 5B8D80h = 6000000


mov EAX, 200h, az első tényező
mov ESI, l000000lh; második tényező
mul ESI; termék EDX: EAX
; EDX = 00000020h, EAX = 00000200h

NEG változás jele, a komplement 2








neg parancs kivonja az egész operandust a jele az alapoktól kezdve, fordult pozitív számot a negatív és fordítva. A forrás operandus felülíródik. Ahogy operandus megadhatja regiszter (kivéve a szegmens) vagy a memória cella mérete bájtban, és a padlón. Nem használható, mint egy operandust közvetlen értéket. A csapat dolgozik zászlók, SF, ZF, AF, PF és CF


mov AH, 01 0 0
neg AX; AX = FFFFh = -1


mov BX, -2; BX = FFFEh = -2
neg BX; BX = 0002h


Azon a adatmezők
nmb dw 800lh; Ha egy aláírt szám,
; Aztán -32.767
; A programban szegmensben
neg NMB; NMB = 7FFFh = + 32767


mov ECX, 5
neg ECX; ECX = FFFFFFFBh = -5

NOP Nincs művelet


Szerint a csapat, mert a processzor nem csinál semmit, kivéve emelés 1 tartalmát az utasítás mutató IP (mint egy csapat, akkor kap 1 byte). A csapat néha hibakeresés céljából használjuk, hogy „score” néhány felesleges parancsokat megváltoztatása nélkül a hosszát a terhelés modul, vagy éppen ellenkezőleg, hogy hagyjon helyet a betöltő modul későbbi behelyezése parancsokat. Bizonyos esetekben, a csapat a szövegben szereplő tárgy modul fordító. A parancs paraméterek nélkül, nincs operandusok és nem befolyásolja a processzor zászlókat.

NEM inverzió, kívül és 1 logikai tagadás


Nem parancs végrehajtása inverz operandus bitek helyett 0 1 és fordítva. Ahogy operandus megadhatja regiszter (kivéve a szegmens) vagy a memória cella mérete bájtban, és a padlón. Nem használható, mint egy operandust közvetlen értéket. A parancs nem befolyásolja a processzor zászlókat.

Bit-inverzió szabályok:


Operandus 1-bites 0
Bit 0 Eredmény 1


mov ax, 0FFFFh
Nem AX; AX = 0000h


mov SI, 5551h
Nem SI; SI = AAAEh


mov EAX, 0C00SFF00h
nem EAX; EAX = 3FFC00FFh

VAGY logikai Engedélyezi vagy


vagy parancsot hajt végre egy logikus (bitenkénti) hozzáadásával két operandus. Az eredmény helyettesíti az első operandus (vevő); második operandus (forrás) nem változik. Az első operandus megadhat egy regiszter (kivéve a szegmens), vagy egy memória cella egy második - regiszter (kivéve a szegmens), egy memória sejt vagy egy azonnali értéket, de nem mindkét operandus lehet egyidejűleg meghatározni, mint a memória-sejt. Operandusok csapat vagy lehet bájt vagy szó. Command befolyásolja a zászlók, SF, ZF, PF és a CF, ahol a zászlók CF és OF mindig visszaáll 0.

Bitenkénti szabályok:


Az első operandus bit 0101
A második operandus bit 0011
Bit az eredmény 0111


mov ax, 000Fh
mov BX, 00F0h
vagy AX, BX; AX = 00FFh, BX = 00F0h


mov ax, 000Fh
mov BX, 00F7h
vagy AX, BX; AX = 00FFh, BX = 00F7h


mov ax, 000Fh
vagy AX, 8001h; AX = 800Fh


; Ezeken a területeken,
maszk db 80h
; B programot szegmens
mov CH, 17h
vagy CH, maszk; CH = 97h


Azon a adatmezők
mem dd 80000000h
; A programban szegmensben
vagy MEM, 0C0h; mem = 800000C0h

OUT kimenet port


mov AL, 20h; végéig megszakítás parancsot (EOI)
out 20h, AL; EOI parancs kimenetét port
; 20h megszakítás vezérlő




Kapcsolódó cikkek