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