939003277 发表于 2011-11-4 12:02:11

《汇编语言》中定义栈段为什么比需要的大?

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

z310394543 发表于 2011-11-4 19:42:15

wangyexin 发表于 2011-11-5 08:18:31

如果定义小了万一不够就会造成溢出了,如果你非要定义8个也没什么啊,只是使用的时候就不能超过8个了

liuribo 发表于 2011-11-5 11:03:10

我觉得把 ,只要你定义的空间比你存放的数据大就行了,大多少就是你的问题了。一般都是16个字节的倍数,我觉得这样方便我们使用和 分配地址。因为在debug调试的时候都是一行16个字节这样显示下去的。
页: [1]
查看完整版本: 《汇编语言》中定义栈段为什么比需要的大?