Originariamente inviato da FinalFantasy
Dopo una ricerca su google, sn riuscito a trovare un compilatore assembler...ci sn degli esempi, ma non li capisco. Dunque...un programma per stampare una frase intera esegue questo codice
codice:
format MZ ;
;
push cs ; salva in una pila il code segment
pop ds ; tira fuori dalla pila il data segment
;
mov ah,9 ; operazione fatta di default per la scritta a video
mov dx,hello ; dx riceve il contenuto della variabile hello cioè Hello world!
int 21h ; INTerrupt: "chiamata" a una procedura (subroutine) che ti stampa a video la scritta
;
mov ax,4C00h ; queste due istruzioni servono a
int 21h ; passare il controllo da TASM al OS
;
hello db 'Hello world!',24h; dichiarazione di variabile
1) Cosa fa la prima riga?
2) A che servono push e pop?
3) Per stampare a video, non si usa
mov ah, 02h?
4)La riga 7 (contate pure le righe vuote) mette in dx questo 'hello', ma in basso troviamo hello db '',24h, sapete spiegarmi con esattezza che fa questa sinstassi?
Grazie a tutti e buona notte