目前我正在學習x86彙編以獲得樂趣,我很喜歡單片機編程,所以我對彙編很熟悉。彙編:使用數據段寄存器(DS)
目前我一直在尋找答案這個問題的高和低,但似乎無法找到它... DS註冊,我知道它應該指向我的程序中的全球數據,但我不知道它是如何工作的。我使用NASM,並在最簡單的程序我看到以下內容:
[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
和完美的作品(即使我省略了粗體顯示的代碼),但如何? CPU是否自動加載從0x0000開始的全局變量?或者是否有內在的東西,我錯過了?
可能的重複:http://stackoverflow.com/questions/3819699/what-does-ds40207a-mean-in-assembly,http://stackoverflow.com/questions/4119504/real-mode-memory-addressing -explanation/33581044#33581044 – 2015-11-07 09:19:59