鱼C论坛

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

[争议讨论] 《汇编语言》- 检测点6.1 小鱼老师可不可以解释下

[复制链接]
发表于 2012-3-26 20:43:27 | 显示全部楼层 |阅读模式

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

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

x
原题目
assume cs:codesg
codesg segment
    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
    dw 0,0,0,0,0,0,0,0,0,0                                    
start:
    mov ax,cs     ;cs为所填第一空
    mov ss,ax
    mov sp,24h    ;此条指令为所填第二空
    mov ax,0
    mov ds,ax
    mov bx,0
    mov cx,8
s:
    push [bx]
    pop cs:[bx]    ;此条指令为所填第三空
    add bx,2
    loop s
   
    mov ax,4c00h
    int 21h
codesg ends
end start

我不太明白的是SP的变化一直都保持在24H,22H之间.那它为什么还要开僻十个字单元的栈空间??
本来它们的值压入SS:SP(24H)中,然后再POP取出,SP+2.不管怎么循环,SP的值依旧保持在24H~22H之间.既然如此那么,开僻十个字单元的栈空间有何意义?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-26 23:57:07 | 显示全部楼层
本帖最后由 wAterLoo 于 2012-3-26 23:59 编辑

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2012-3-27 14:20:24 | 显示全部楼层
当多个段在一段内存中表示的时候    要注意各段之间内存数据的变化以免影响程序运行
也就是说一旦你修改栈中数据内容的时候有可能同时也修改了数据段或者代码段的内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2012-8-25 00:58:32 | 显示全部楼层

我说的么,百思不解,怎么调试都不对,是不是定义这样的字段的好处就是代码随意运行,我试着改变他的字节,如果改到8个dw型也可以运行,没有出错,再少就出错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-1 08:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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