Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

Volevo capirci qualcosa....
(Questo messaggio è stato modificato l'ultima volta il: 22/09/2012, 23:32 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
beh hai preso un sorgente davvero vecchio, fatto per macchine a 16bit, un sorgente cosi ti complica solo la vita e non ti fa capire molto.
Perchè? perchè ai tempi dei 16 bit non riuscivi ad indirizzare tutta la memoria disponibile usando semplicemente un registro (come invece avviene oggi con i 32 e 64 bits) allora si erano inventati la "segmentazione" quindi il registro indirizzava una pezzo di memoria all'interno di una "finestra" data dal "segmento".
Quindi, considerando che dx e ax sono 2 registri dell CPU, le 2 righe che dici tu:

Codice:
mov dx,OFFSET Message     
mov ax,SEG Message     
mov ds,ax

altro non fanno che caricare nel registro DX l'offset della variabile (area di memoria) chiamata "Message" all'interno del segmento, che invece viene messo in DS (data segment) passando da AX
Perchè questo?
perchè ai tempi il modo in cui chiamavi le routine di sistema era tramite chiamate a "interrupts" e prima della chiamata dovevi caricare i registri con i parametri necessari.
Nel caso del tuo esempio, il sorgente serve a visualizzare a video (parliamo del DOS) la stringa Hello World
La funzione di sistema per stampare a video usata è la 9 (da caricare nel registro AH) dell'interrupt 21h

Questa funzione si aspetta in input che i registri DSHappywideX (segmento:offset) puntino al messaggio da printare

Questo è il motivo di quel codice che hai visto.

Comunque come ti dicevo ti consiglio di lasciar perdere sti source di asm vecchi di anni ti depistano e basta, cercati qualcosa di piu recente Wink


digger
22/09/2012, 23:29
#2
Cerca


Messaggi in questa discussione
Volevo capirci qualcosa.... - da Pocciox - 22/09/2012, 23:12
[Nessun oggetto] - da digger - 22/09/2012, 23:29
[Nessun oggetto] - da Pocciox - 23/09/2012, 0:21
[Nessun oggetto] - da digger - 23/09/2012, 11:33
[Nessun oggetto] - da Pocciox - 23/09/2012, 12:07
[Nessun oggetto] - da digger - 23/09/2012, 12:58
[Nessun oggetto] - da Pocciox - 23/09/2012, 13:11
[Nessun oggetto] - da digger - 23/09/2012, 13:43



Utenti che stanno guardando questa discussione: 1 Ospite(i)