Montage: Mithilfe des Data Segment Register (DS)

Derzeit bin ich in der Mitte des Lernens x86 assembly for fun, ich bin die Liebe mikrocontroller-Programmierung, so bin ich vertraut mit der Montage.

Derzeit ich habe lange gesucht hoch und niedrig für die Antwort auf diese Frage, kann aber nicht scheinen, um es zu finden... der DS anmelden, ich weiß, dass es zeigen soll, den globalen Daten in mein Programm, aber ich weiß nicht, wie es genau funktioniert. Ich verwende NASM, und in den meisten einfachen Programmen, sehe ich Folgendes:

[org 0x7C00] 
[bits 16] 

main: 
mov ax, 0x0000 
mov ds, ax 
mov al, [msg] 
mov ah, 0x0E 
mov bx, 0x0007 
int 0x10 
jmp $ 

msg db 'X' 

times 510-($-$$) db 0 
dw 0xAA55 

und das funktioniert perfekt (auch wenn ich übergehe den Fett gedruckten code), aber wie? Hat die CPU automatisch laden der globalen Variablen ab 0x0000? oder gibt es etwas, das intrinsische, dass ich hier bin fehlt?

InformationsquelleAutor Mykel Stone | 2011-02-04
Schreibe einen Kommentar