Diversamente dalle altre che ho già "impacchettato", questa procedura necessita della preparazione di alcuni registri prima di essere chiamata.
Ho già fatto in modo che il valore in AL, in cui va messo il carattere da stampare, sia preparato prima, e adesso devo fare in modo che anche BL, in cui va messo il colore, sia trattato nello stesso modo. La rinomino "stampa".
public stampa text segment byte public stampa proc near mov ah,09h mov bh,00h mov cx,1 int 10h ret stampa endp text ends endEseguo il solito "impacchettamento"
c:\Assembly>esegui stampa Microsoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assembling: stampa.asm MASM : fatal error A1000: cannot open file : stampa.asm c:\Assembly>esegui stampa Microsoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assembling: stampa.asm c:\Assembly>lib libreria + stampa Microsoft (R) Library Manager Version 3.40 Copyright (C) Microsoft Corp 1983-1993. All rights reserved. List file: Output library: c:\Assembly> c:\Assembly>lib libreria Microsoft (R) Library Manager Version 3.40 Copyright (C) Microsoft Corp 1983-1993. All rights reserved. Operations: List file: con CANCELLA..........cancella KEYWAIT...........KeyWait STAMPA............stampa X.................proced proced Offset: 00000010H Code and data size: cH X cancella Offset: 00000070H Code and data size: 7H CANCELLA KeyWait Offset: 000000d0H Code and data size: 5H KEYWAIT stampa Offset: 00000130H Code and data size: aH STAMPA c:\Assembly>(esegui è un file BAT che ho costruito per assemblare senza stare a ripetere gli switch ogni volta)
Bene.
Adesso uso il ptogramma principale con queste procedure.
extrn Cancella:near extrn Stampa:near extrn KeyWait:near ;definiamo il segmento text segment public ;inizio del programma start: call Cancella mov al,'A' mov bl,0Ch call Stampa call KeyWait mov ah,4ch int 21H text ends stack segment para stack db 1024 dup(00H) stack ends end startE funziona benissimo!
Nessun commento:
Posta un commento