- 论坛徽章:
- 0
|
我刚加载了这个汇编程序,然后开始跟踪,发现我还没有执行第一条语句mov ax,stack
mov ss,ax 这条语句不是吧定义段的地址复制给堆栈段寄存器嘛,为什么还没有执行堆栈段寄存器中就已近有值了, 。。。。。 书上说
assume cs:code,ds:data,ss:stack //关联特定的断与寄存器
data segment 5
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:[0] 7
push ds:[2] 8
pop ds:[2] 9
pop ds:[0] 10
mov ax,4c00h
int 21h
code ends
end start
这样的执行顺序没得错吧? 求讲解 ,方便的话加本人463503788 |
|