I can't seem to understand what value the segment registers store.I know the general definition that

they are use to store the starting address of the code segment,Data Segment and Stack Segment Respectively

So does the CS register store the most significant 16 bits of the first instruction in the Code Segment?Does the DS and SS Registers do the same for data segment and stack segment?


.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

Assuming that 0x22345671 is the address of the Memory Variable X and code segment instructions range from 0x12345672-0x12345675.What are the values of CS,DS,SS registers?

0 Answers