SEG A
:
Assigns the content held in segment register corresponding to the segment in which A resides to the operand.
我想这意味着如果A
位于数据细分中,则SEG A
与DS
相同。
由于DS
保存数据段的基址,所以
MOV AX, LEA A
MOV DX, SEG A
MOV AX, [AX + DX]
将A
的实际地址复制到AX
?
答案 0 :(得分:1)
我想这意味着如果A位于数据段中,则SEG A与DS相同。
如果DS指向数据段,则更正。
确实
MOV AX,LEA A
MOV DX,SEG A
MOV AX,[AX + DX]
将A的物理地址复制到AX?
最后一条指令无效,在任何x86 CPU中都不存在。因此,此代码根本不起作用。如果有的话,它只是位于.asm文件中等待纠正和组装。
答案 1 :(得分:0)
将AX + DX地址(即A)的内容复制到AX。
MOV AX, LEA A ; Copy A offset to AX
MOV DX, SEG A ; Copy A segment to DX
MOV AX, [AX + DX] ; Copy A to AX
答案 2 :(得分:0)
SEG提供操作数段。如果变量段由无段寄存器引用,则可以使用SEG。但否则你应该使用LEA,LDS。 例如:
.data
var db? 。码 x db?
开始: ...
对于var SEG是DS,对于x SEG是CS,它们的段地址。