汇编实验5中的问题 求高手赐教!!!!!!!!!!!!!!!!!!!!
本帖最后由 赵璐 于 2011-12-28 22:00 编辑今天刚学到汇编第六章的实验五
其中有一题代码如下
(程序1)
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0cbah,987h
data ends
stacksegment
dw 0,0,0,0,0,0,0,0
stackends
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
怎么不直接这样
(程序2)
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0cbah,987h
data ends
stacksegment
dw 0,0,0,0,0,0,0,0
stackends
code segment
start: mov sp,16
push ds:
push ds:
pop ds:
pop ds:
mov ax,4c00h
int 21h
code ends
end start
这两种写法有什么区别我试了一下好像在当步执行时程序1和程序2的cs,ds,ss值不一样。为什么,什么造成的
求高手赐教!!!!!!!!!!!!!!!!!!!!
我也新手,不过我感觉你debug一个程序的时候,初始时,ds:0指向的是程序的psp,所以要
mov ax,data
mov ds,ax
这样ds:0就指向第一个数据了。这样就不一样了啊。
ss.cs不一样就不知道了,可能系统分配给你放程序的地址空间不一样吧。
这只是我的理解,我也小菜鸟,望高手来… 原来这样 , 害我纠结了这么多天 ,:D谢了。
页:
[1]