鱼C论坛

 找回密码
 立即注册
查看: 2620|回复: 5

ss:sp问题 sp指向问题!!!

[复制链接]
发表于 2013-1-24 11:59:48 | 显示全部楼层 |阅读模式
30鱼币
assume cs:code,ds:data,ss:stack

data segment
    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends

stack segment
    dw 0,0,0,0,0,0,0,0
stack ends

code segment
start:
    mov ax,stack
    mov ss,ax
    mov sp,16【这里】
    mov ax,data
    mov ds,ax
    push ds:[0]
    push ds:[2]
    pop ds:[0]
   
    mov ax,4c00h
    int 21h
code ends
end start



其中sp指向的为什么不是32? 我觉得应该是32才对!!

最佳答案

查看完整内容

假如你把栈段和数据段合在一起 然后后把data段当栈使用 那么SP就可以是32了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-24 11:59:49 | 显示全部楼层
假如你把栈段和数据段合在一起 然后后把data段当栈使用 那么SP就可以是32了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-1-24 13:49:17 | 显示全部楼层
  mov ax,stack
    mov ss,ax


你在这里把stack段当做了栈段
stack segment
    dw 0,0,0,0,0,0,0,0
stack ends
还有这个是字数据
这段成了栈段以后,第一个数据就占了栈段的0和1位置
同样你这有8个这样的数据 那就是0到15,
然后SP指向底部的下一位就是16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-1-24 15:54:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-1-24 15:56:11 | 显示全部楼层
心碎的梦 发表于 2013-1-24 11:59
假如你把栈段和数据段合在一起 然后后把data段当栈使用 那么SP就可以是32了

非常感谢   和楼下的一结合我就懂啦  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-1-29 09:02:45 | 显示全部楼层
DW是字形数据,DD是双字数据,DB是字节数据,所有你这里定义了8个字形数据,一个内存单元是占8位也就是一个字节数据,一个字形数据又等于2个内存单元也就是2个字节。所有你的栈是0-15,因为栈为空的时候栈顶指针指向栈顶的下一个单元,所以就为16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 02:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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