我似乎无法理解段寄存器存储的值。我知道
的一般定义。它们用于存储代码段的起始地址,数据 段和堆栈段分别
那么CS寄存器会在代码段中存储第一条指令的最高16位吗?DS和SS寄存器在数据段和堆栈段上是否相同?
.386
.model flat,stdcall
.stack 4090h
.data
.X DWORD 5 ;0x22345671
.code
main proc
mov ESI,offset X ;0x12345672
mov EAX,[ESI] ;0x12345673
mov EBX,1 ;0x12345674
add EAX,EBX ;0x12345675
main endp
end main
假设存储变量X的地址为0x22345671,代码段指令的范围为0x12345672-0x12345675。CS,DS,SS寄存器的值是什么?