求助: 王爽书第三版P130程序6.4
求助: 程序是这样的,有一个数据段,在汇编指令中将数据段送入数据段段寄存器dsassume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,20h
mov ax,data
mov ds,ax
mov bx,0
mov cx,8
s:push
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop
add bx,2
loop s0
mov ax,4c00h
int 21h
code ends
end start
程序在内存中是这样的
在汇编指令中将数据段送入数据段段寄存器ds,然后我用Debug的d命令查看数据,却看不到数据,这可能是什么问题呢?
照理说数据应该在ds:0的地方,请大家帮忙看看,谢谢。 push 是压栈指令,作用是把数据存入堆栈,要想看到刚存入堆栈的数据,你应该看的是 ss : sp,而不是 ds : 0。完成压栈操作后,应该可以用 d ss:0 看到这些数据。 看了压栈的过程是正确的,但是原先咬压入栈中的数据是不对的。原先要压入栈中的数据是写在数据段data segment中的,看起来不对。 是这样的,0456后面的h漏写了,所以变成01C8,其他部分都没有错了。
页:
[1]