我用它来写入视频内存(%es = 0xb800):
movw $0x074b,%es:(0x0)
但是,如果我希望偏移量在%ax?
,该怎么办?我尝试了%es:%ax
或%es:(%ax)
,但没有任何效果,而且我一直都会遇到错误。
我做错了什么?
答案 0 :(得分:3)
在16位模式下,您可以使用可用的地址格式。您无法使用%ax
解决问题。有效表格是:
bx
或bp
中的一个,加上si
或di
中的一个,加上因此,movw $0x074b, %es:(%di)
可以起作用。另见表2-1。官方英特尔®64和IA-32架构软件开发人员手册第2卷:指令集参考,A-Z 中带有ModR / M字节的16位寻址表
PS:下次显示你有什么错误。