《汇编语言》中定义栈段为什么比需要的大?
p128程序6.3
利用栈,将程序中定义的数据逆序存放。
assume cs:codesg
codesg segment
dw0123h,0456h,0789h,0abch,0defh,ocbah,0987h
dw0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;为什么这里定义16个字型数据?8个不就够了吗?
;或者这样写有什么有点啊?
start:mov ax,cs
mov ss,ax
mov sp,30h
mov bx,0
mov cx,8
s: pushcs:
add bx,2
loop s
movbx,0
movcx,8
s0: popcs:
add bx,2
loop s0
mov ax,4c00h
int 21h
codesg ends
endstart
如果定义小了万一不够就会造成溢出了,如果你非要定义8个也没什么啊,只是使用的时候就不能超过8个了 我觉得把 ,只要你定义的空间比你存放的数据大就行了,大多少就是你的问题了。一般都是16个字节的倍数,我觉得这样方便我们使用和 分配地址。因为在debug调试的时候都是一行16个字节这样显示下去的。
页:
[1]