PDA

Visualizza la versione completa : [Assembler] Istruzione per pulire lo schermo


Iena87
14-12-2004, 16:30
In DOS basta utilizzare il comando CLS per pulire lo schermo, ma nello scrivere un programma in assembler, quale istruzione devo utilizzare?
Perchè so l'algoritmo per pulire lo schermo, ma è bello lungo, e nn vorrei riscriverlo ogni volta...

cso
14-12-2004, 19:12
prova questo:


MOV AH,00h
MOV AL,03h
INT 10h

dovrebbe funzionare ma come si sa programmare in assembly implica non essere sicuri di niente!!! :nonlodire
oddio, l'ho stracciata un po' troppo!!!
:zizi:

Iena87
14-12-2004, 21:39
Originariamente inviato da cso
prova questo:


MOV AH,00h
MOV AL,03h
INT 10h

dovrebbe funzionare ma come si sa programmare in assembly implica non essere sicuri di niente!!! :nonlodire
oddio, l'ho stracciata un po' troppo!!!
:zizi:

Si è questo il codice...però vedendo una dispensa dice:

Interruzione 10h: servizi video
Funzione 00h: Impostazione modalità video
se AL = 03H la modalità è:
testo a colori 16/8 EGA:64 colori

Che c'entra con la pulitura dello schermo???? mha....

Porco Assembler...mi fa uscire pazzo.... :D

cso
15-12-2004, 15:47
l'ho guardato sulle norton guides che come sempre non servono a niente ma mi sono ricordato alla fine come fare!!! :D


Porco Assembler...mi fa uscire pazzo.... :D

No...non ti fa uscire proprio!!! :zizi:

Delmak_O
15-12-2004, 21:52
questo codice compie la stessa operazione di 'cls', l'ho assemblato con NASM e funziona (ho dovuto aggiungere il posizionamento del cursore perché dopo lo scroll il prompt non so perché mi appariva sempre in basso...)

[BITS 16]
[ORG 0100H]

[SECTION .text]
START:
mov ax,0600h
mov cx,0000h
mov dx,184Fh
mov bh,07
int 10h
mov ah,02
mov bh,00
mov dx,0000h
int 10h
mov ax,04C00h
int 21h

cso
15-12-2004, 22:36
forse conviene più il mio visto che sono 3 istruzioni :D

cmq per passare il comando all'OS ti conviene fare:

MOV AH,4Ch
INT 21h

E' più figo! :fagiano:

Delmak_O
15-12-2004, 23:58
ah ecco...
sinceramente non avevo capito il riferimento delle 3 istruzioni, non riuscivo a trovare le funzioni (=operazioni) dei valori messi in quei registri, per questo mi ero messo a postare quel codice così lungo...

Iena87
16-12-2004, 14:04
E io ne so uno ancora più lungo...in pratica facendo riferimento alla matrice adibita allo schermo, la carico con tutti space e il gioco è fatto...

Iena87
16-12-2004, 14:05
Originariamente inviato da cso
forse conviene più il mio visto che sono 3 istruzioni :D

cmq per passare il comando all'OS ti conviene fare:

MOV AH,4Ch
INT 21h

E' più figo! :fagiano:

Infatti...si so fatti un popò tanto per fare ste funzioni e noi nn le sfruttiamo??? :stordita: :D

Delmak_O
16-12-2004, 14:42
ho un computer da un anno e mezzo, mi sono avvicinato da poco all'Assembler perché mi 'affascina' la possibilità di parlare direttamente con la macchina, impararlo è comunque difficile (una volta su Internet avevo letto che era un linguaggio molto 'facile' - sic!) anche per l'assoluta mancanza di testi - qualcuno in inglese, non sempre di facile lettura...per fortuna c'è Internet e questo forum (e la biblioteca dove recupero vecchi testi anni '80...)
comunque grazie, effettivamente mettere il valore 4C nel registro AH funziona ed è più 'pulito' di tutti quegli 0 ridondanti...

Loading