|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Feb 2007
Messaggi: 42
|
[Assembler] 2 Richieste particolari
Ciao sapete dirmi come
1) pulire lo schermo utlizzando una macro 2) stampare una scritta colorata(diversa dal bianco quindi)..ciao |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Innanzitutto immagino che tu stia parlando di assembly a 16 bit per DOS.
Per pulire lo schermo si può usare il servizio AH=06h del INT 10h, vedi <qui>. Naturalmente puoi creare una macro ma forse sarebbe meglio realizzare una piccola subroutine da richiamare con una semplice CALL. Come definire una macro dipende anche dall'assemblatore, quindi specifica quale usi. Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 | ||
Member
Iscritto dal: Feb 2007
Messaggi: 42
|
Quindi
Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#4 | ||
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
CLS MACRO color MOV AX,0600H MOV BH,color MOV CX,0 MOV DX,184FH ; DH=24 (18H) / DL=79 (4FH) INT 10H ENDM CLS 2FH Il colore in BH è nel formato come descritto <qui> (al fondo). Quote:
Innanzitutto mov AL ,'Ciao' non ha senso. Poi con il servizio 09h/INT 10h, puoi solamente stampare 1 unico carattere eventualmente ripetuto più volte in base a quanto specificato in CX. Inoltre il servizio 09h non fa avanzare il cursore. Se ti interessa stampare una stringa con un colore, allora dovresti scrivere tu una piccola subroutine apposita e tenere conto di tutte queste cose (come far avanzare il cursore).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
![]() |
![]() |
![]() |
#5 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Quanto detto da andbin e' corretto, aggiungo solo che se vuoi scrivere una stringa intera e non un carattere alla volta con tanto di attributo colore, puoi utilizzare l'INT 10h Func. 13h.
http://www.ctyme.com/intr/rb-0210.htm |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:53.