我正在查看不同的MOV指令,并对其中之一有疑问。 MOV moffs16 / 32,AX 指令。根据英特尔手册:“ moffs8,moffs16,moffs32和moffs64操作数指定相对于段基的简单偏移量,其中8、16、32和64表示数据大小。”该指令的操作码是A3,我想知道的是相对于哪个段寄存器的偏移量?是CS,DS还是ES?
答案 0 :(得分:3)
根据基本体系结构手册中的 3.7.4指定段选择器部分:
段选择器可以隐式或显式指定。 [...] 处理器根据以下条件自动选择一个段: 表3-5中给出的规则。
AuthType Basic AuthName "My Website Name" AuthUserFile /path/to/.htpasswd Require valid-user
任何以ESP或EBP寄存器为基础的内存引用 注册。
SS
所有数据引用,但相对于堆栈或 字符串目标。
问题中的指令仅使用一个常数偏移量,因此没有有效的寄存器地址。因此,除非被前缀覆盖,否则它就是DS
。