当前位置: 代码迷 >> 汇编语言 >> 汇编有关问题
  详细解决方案

汇编有关问题

热度:231   发布时间:2013-02-26 00:00:00.0
汇编问题
assume cs:code,ds:data,ss:stack
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
data segment
  dw 0123H,0456H
data ends
stack segment
  dw 0,0
stack ends
end start
设程序加载后,code段的段地址为X,则data段的段地址为_____,stack段的段地址为_____。
X+3、X+4 原理是什么?怎么能知道code段占的空间是多少?

------解决方案--------------------------------------------------------
u命令可以查看code段占了多少空间
80806默认一个段至少16个字节
code和stack段相差16个字节,所以段地址差了1
------解决方案--------------------------------------------------------
探讨

code段应当是1400:0000~1400:0020,有32个字节,16个字节为1节,
code段的段地址为X,则data段的段地址应当为X+2, stack段的段地址应当为X+3。
可程序加载后,data段的段地址为X+3,stack段的段地址为X+4。
加后的情况
  相关解决方案