DAA tizedes korrekció regiszterben hozzáadása után al

DAA tizedes korrekciós regiszter AL hozzáadása után

DAA parancs kijavítja hozzáadásával eredményt a regisztrációhoz AL két csomagolt BCD (BCD) számok (egy számjegy minden szóval), hogy megkapjuk a helyes pár csomagolt BCD számjegy. Parancs használatos a műtét után hozzáadás csomagolt BCD szám. Ha az eredmény kívül meghaladja a 99, van egy transzfer készlet és zászló CF A csapat dolgozik zászlók SF, ZF, AF, PF és CF


mov AL, 87H; 87 A csomagolt BCD

add AL, 04h; hozzáadása után AL = 8Bh

DAA; AL = 91H, azaz csomagolt BCD 91


mov AL, 87H; 87 A csomagolt BCD
add AL, 11h; hozzáadása után AL = 97h
DAA; AL = 97h, azaz csomagolt
; BCD 97 (ebben az esetben
; DAA parancs nem csinál semmit)

DAS tizedes korrekciós regiszter AL kivonása után


das parancs korrigálja az eredménye kivonás a regisztrációhoz AL két csomagolt BCD (BCD) számok (egy számjegy minden szóval), hogy megkapjuk a helyes pár csomagolt tizedesjegy. Parancs használatos után kivonási művelet csomagolt BCD szám. Ha levonjuk a szükséges hitel, meg a zászló CF A csapat dolgozik zászlók SF, ZF, AF, PF és CF


mov AL, 55H; csomagolt BCD 55

sub AL, 19h; kivonása után AL = 3CH

DAS; AL = 36H, azaz csomagolt BCD 36


mov AL, 55H; csomagolt BCD 55

sub AL, 15H; kivonása után AL = 40H

DAS; AL = 40h, azaz csomagolt

; BCD 40 (ebben az esetben

Das csapat nem csinál semmit)

December Decrement (csökkenés 1)


Command december kivon 1. operandusban lehet határozni, melyik 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. Egy operandus értelmezni, mint egy előjel nélküli egészszám. A csapat dolgozik zászlók, SF, ZF, AF és PF.


mov ax, 0FFFFh
december AX; AX = FFFEh


mov CX, 3500h
december CL; CX = 35FFh


; Ezeken a területeken,
mem Dw 68
; B programot szegmens
december mem mem = 67


mov EAX, 0
december EAX; EAX = FFFFFFFFh

DIV Division előjel nélküli egész számot


Div parancs végrehajtása osztály előjel nélküli egész található regiszterek AX (abban az esetben, osztás byte) vagy DX: AX (abban az esetben, osztás szó) a forrás operandus (előjel nélküli egész szám). A méret a osztalék kétszer akkora az osztó és a fennmaradó.
Mert egyetlen bájt műveletek az osztalék kerül nyilvántartásba AX; elvégzése után egy bizonyos műveletet van írva regiszterbe AL, a maradékot - a regiszter AH.
Kétbájtos művelet kerül az osztalék regiszterek DX: AX (DX - vezető részt, az ACh - fiatalabb); elvégzése után hányados van írva, hogy a nyilvántartás AX, a maradékot - a nyilvántartás DX.
Ahogy operandus osztó div paranccsal megadhatja regiszter (kivéve a szegmens) vagy a memória cella; osztás nem megengedett azonnali értéket. Ha osztó 0, vagy ha a hányados nem fér el a kijelölt regiszter hajtott vektor megszakítás 0. A parancs nincs hatással a processzor zászlókat.
Div paranccsal lehet használni egész osztás kicsomagolt BCD száma regiszterben AX nem kicsomagolt BCD osztója, ha AAD előtt hajtható végre a parancs (lásd. 3. példa).


mov ax, 506; osztalék
mov BL, 50; Divisor
div BL; AL = 0Ah (saját), AH = 06h (maradék)


; Ezeken a területeken,
hosszú dd 65537; osztalék
; A programban szegmensben
mov DX, szó ptr hosszú + 2; DX = 0001h, bodza
A rész az osztalék
mov ax, word ptr hosszú, AX = 0001h, fiatalabb
A rész az osztalék
mov CX, 256; Elválasztó
div CX; AX = 0100h (magán)
; DX = 0001h (maradék)


mov ax, 0807h; kicsomagolt BCD 87
mov DL, 09h; csomagolatlan BCD 9
AAD; AX = 0057h = 87
div DL; AX = 0609h, azaz 9 és 6 a maradékot


mov EAX, 0FFFFFFFh; Younger része osztható
mov EDX 0. Következő osztható rész
mov EBX, 256; Elválasztó
div EBX; Self EAX = 000FFFFFh,
; Maradékanyag a EDX = 000000FFh

386+ ENTER billentyűt létrehozása verem keret eljárás paraméterek


; Hívjon eljárások
hívás subrl
; Rutin subrl
subrl proc
enter2048,0; Helyet a helyi adatokat
. ; Bízza helyi adatokat
hagy
áztat

Kapcsolódó cikkek