-1
我使用這個寫入顯存(%ES = 0xb800):如何獲取寄存器以at&t語法存儲偏移值?
movw $0x074b,%es:(0x0)
但是,如果我想要的偏移在%斧?
我試過%es:%ax
或%es:(%ax)
,但沒有任何工作,並且我不斷收到錯誤。
我在做什麼錯?
我使用這個寫入顯存(%ES = 0xb800):如何獲取寄存器以at&t語法存儲偏移值?
movw $0x074b,%es:(0x0)
但是,如果我想要的偏移在%斧?
我試過%es:%ax
或%es:(%ax)
,但沒有任何工作,並且我不斷收到錯誤。
我在做什麼錯?
在16位模式下,您的可用地址形式受到限制。您無法使用%ax
進行尋址。有效形式有:
bx
或bp
一個,加上si
或di
一個,加上這樣,movw $0x074b, %es:(%di)
將工作,例如。另見表2-1。 16位在官方英特爾®64和IA-32架構軟件開發人員手冊卷2解決與MODR/M字節形式:指令集,A-Z
PS:下一次演出你得到了什麼錯誤。
謝謝,它現在似乎工作。錯誤是「壞內存操作數」。 – francisaugusto
對不起,我想在昨天馬上做,但速度太快,系統不接受它。我現在正在做。 – francisaugusto