鱼C论坛

 找回密码
 立即注册
查看: 2800|回复: 3

[争议讨论] 《汇编语言》中定义栈段为什么比需要的大?

[复制链接]
发表于 2011-11-4 12:02:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
p128
程序6.3
利用栈,将程序中定义的数据逆序存放。

assume cs:codesg

codesg segment
         dw  0123h,0456h,0789h,0abch,0defh,ocbah,0987h
         dw  0,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: push  cs:[bx]
             add   bx,2  
             loop s
           
             mov  bx,0
             mov  cx,8
     s0:    pop  cs:[bx]
             add   bx,2  
             loop s0
           
             mov ax,4c00h
             int 21h

codesg ends
end  start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-11-4 19:42:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-5 08:18:31 | 显示全部楼层
如果定义小了万一不够就会造成溢出了,如果你非要定义8个也没什么啊,只是使用的时候就不能超过8个了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-5 11:03:10 | 显示全部楼层
我觉得把 ,只要你定义的空间比你存放的数据大就行了,大多少就是你的问题了。一般都是16个字节的倍数,我觉得这样方便我们使用和 分配地址。因为在debug调试的时候  都是一行16个字节  这样显示下去的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-14 04:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表