回到火星 发表于 2013-09-30 11:43

汇编多段执行顺序到底是怎么回事?

我刚加载了这个汇编程序,然后开始跟踪,发现我还没有执行第一条语句mov ax,stack
mov ss,ax这条语句不是吧定义段的地址复制给堆栈段寄存器嘛,为什么还没有执行堆栈段寄存器中就已近有值了, 。。。。。 书上说
assume cs:code,ds:data,ss:stack            //关联特定的断与寄存器
data segment5
   dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h //定义数据
data ends

stack segment   2
   dw 2,2,2,2,2,2,2,2
stack ends

code segment

start:mov ax,stack   //程序入口    1
      mov ss,ax      3
      mov sp,16      4

      mov ax,data
      mov ds,ax      6
      push ds:      7
      push ds:      8
      popds:      9
      popds:      10

      mov ax,4c00h
      int 21h
code ends
end start



这样的执行顺序没得错吧?求讲解 ,方便的话加本人463503788         

EricFisher 发表于 2013-09-30 14:25

没看明白,你是想问,在还没有执行mov ax,stack的时候,为什么栈寄存器中就有内容了,是么?

回到火星 发表于 2013-10-01 13:29

恩是这样的。而且为什么里面的内容 在堆栈寄存器中存储为什么不是以偏移为0开始存储 而是从偏移为17开始存储
页: [1]
查看完整版本: 汇编多段执行顺序到底是怎么回事?