+ -
当前位置:首页 → 问答吧 → 初学:关于段与段内存关系

初学:关于段与段内存关系

时间:2010-11-08

来源:互联网

assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,stack
  mov ss,ax
  mov sp,16
  mov ax,data
  mov ds,ax
  push ds:[0]
  push ds:[2]
  pop ds:[2]
  pop ds:[0]
mov ax,4c00h
int 21h
code ends
end start

程序加载后,通过debug cs=13d1 stack段地址是:13d0 data段地址是:13cf
三者段地址都相差1,这是为什么呢?想知道下其中的过程
另外再问下当编译器编到data或stack或code标记的时候。应该还没有确定他的物理内存地址吧,?

作者: yg23hhxj   发布时间: 2010-11-08

最关键的问题,CPU或编译器是如何来确定data或stack或CODE的物理地址的呢?知道其中过程的朋友说下

作者: yg23hhxj   发布时间: 2010-11-08