《汇编语言》王爽 检测6.1疑问

下面是程序:(我的书是2版)
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0cbah,0987h
dw 0,0,0,0,0,0,0,0,0,0
start: mov ax,___(cs)
mov ss,ax
mov sp,___(24h)
mov ds,ax
mov bx,0
mov cx,9
s:push[bx]
pop ___(cs:[bx])
add bx,2
loop s
mov ax,4c00h
int 21h
codesg ends
end
请问:上面的(0,0,0,0,0,0,0,0,0,0)栈是不是根本装不下0:0~0:15内存里的内容?
还是我理解错了?
题目是:此程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,数据的传送用栈来进行。栈空间设置在程序内。
如图,我得到的结果总不对,而且后面还有一大堆00,远超出了我给的空间啊!

第一你的程序不完整:
c segment
dw 0,0,0,0,0,0,0,0,0,0
c ends
codesg segment
start: mov ax,___(cs)
…………………………
codesg ends

第二d 1445:0查看段有误
应该是 D SS:0
dw 0,0,0,0,0,0,0,0,0,0
这里占了10个字=20节字,范围应该是:D SS:0 14为栈空间范围
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-08
简单的看你的(0,0,0,0,0,0,0,0,0,0)定义的是字单元而内存是字节单元。怎么会装不下呢。总共16个字节的内存单元而你定义了10个字单元。。。。嘿嘿
相似回答