puppylove 发表于 2014-5-25 22:05:30

王爽汇编语言第六章的实验五


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:
        push ds:
        pop ds:
        pop ds:
       
        mov ax,4c00h
        int 21h
code ends
end start

设程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1

请问为什么data段的段地址为X-2,stack段的段地址为X-1

xiaosawanjava 发表于 2014-5-25 23:43:40

data在最前面 stack 在data后面 code 在stack后面假如 data为1stack 就为1+1 code就为 1+1+1

puppylove 发表于 2014-5-26 00:08:11

xiaosawanjava 发表于 2014-5-25 23:43
data在最前面 stack 在data后面 code 在stack后面假如 data为1stack 就为1+1 code就为 1+1+1

为什么是+1呢

xiaosawanjava 发表于 2014-5-26 08:45:59

1就是代表一个段地址加1就可以形成了一个新的段地址,一个段的大小最多有64kb,至于为什么要加1不加2 我不知道。
页: [1]
查看完整版本: 王爽汇编语言第六章的实验五