|
1鱼币
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 ,0 ,0 1。 为什么程序加载完后(执行到 mov sp ,14h),ds段的 前20个字节不全是0?
stack ends
2.不是说程序的物理地址是SA+10H:0吗?也就是说CS==SA+10H,而SA==DS,那么用debug的R命令查看时,为什么CS不等于DS+10H,而是等于DS+12H,倒是SS==DS+10H?
code segment
start: mov ax ,stack
mov ss ,ax
mov sp ,14h
mov ax ,data
mov ds ,ax
mov bx ,0
mov cx ,8
s: push [bx]
add bx ,2
loop s
mov bx ,0
mov cx ,8
s0: pop [bx]
add bx ,2
loop s0
mov ax ,4c00H
int 21H
code ends
end start
|
|