Jee, kerrankin onnistuin tekemään jotain HIENOA assemblerilla ;). Eli pieni, nopea ruudun tyhjennys assemblerilla. QB ohjelmoijat voivat helposti muuntaa tuon .qlb kirjastoksi, muutttaa ton CLS: rivin PROC cls:ksi, tai jotenkin sinne päin... tsekatkaa fawkzin vinkki. Mut kuitenkin, tässäpä se koodi pitemmittä löpinöittä on!
dosseg .MODEL TINY .stack 10h .CODE mov ax, 0B800h mov es, ax xor di, di mov cx, 7D0h mov ax, 0h rep stosw mov aH, 4Ch ;Lopetetaan ohjelma int 21h end
No voi hitsi, tuolta välistä unohtu rivi; mov di, 0 mutta toimii tuo koodi ilman sitäkin, se vain on, jos di rekisteriin on jäänyt jotain muuta, kuin 0...
Mä jo vähä ihmettelin, miten tuo koodi niin kummalliselta näytti(edellinen kommentti) mutta olin laittanut vanhan version koodistani, mikä on täysin toimimaton, ja korjattunakin olisi ollut hidas. Tässäpä sitten OIKEA koodi:
dosseg
.MODEL TINY
.stack 10h
.CODE
mov ax, 0B800h
mov es, ax
xor di, di
mov cx, 7D0h
mov ax, 0h
rep stosw
mov aH, 4Ch ;Lopetetaan ohjelma
int 21h
end
Antti voipi sitten vaihtaa tämän koodin tuon tilalle, jos vain jaksaa.
Nyt koodin pitäisi olla oikein. Ja hienoa, Assembly-alue avattu!
NASM versio:
Poista:
dosseg .MODEL TINY .stack 10h .CODE
Tilalle:
[BITS 32] [SECTION .text]
tuli viimeksi pieni virhe, oikea korjaus on tälläinen
[BITS 16] [ORG 0x100] [SECTION .text]
Juu mistä sen nasmin saa?
Käänsin debugilla.
mov ax, 0B80 mov es, ax xor di, di mov cx, 7D0 mov ax, 0 rep stosw mov aH, 4C int 21
Edit: Yritin yhdistää yhteen ohjelmaan ja se kyllä toimii mutta sitte näytölle ei tulostu mitää.
Aihe on jo aika vanha, joten et voi enää vastata siihen.