鱼C论坛

 找回密码
 立即注册
查看: 3297|回复: 12

第一帖,汇编,关于栈

[复制链接]
发表于 2011-11-6 13:44:19 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 china_ymex 于 2011-12-17 22:18 编辑

能给看看不,在debug 中调 不过去吖。。。。指点一下。。。
assume cs:code, ss:b, ds:a

a segment
                dw 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0ah, 0bh, 0ch, 0dh, 0eh, 0fh, 0ffh
a ends

b segment
                dw 0, 0,  0, 0, 0, 0, 0, 0
b ends

code segment

ymex:        mov ax,b
                mov ss,ax
                mov sp,17
                
                mov ax,a
                mov ds,ax
                mov bx,0
                
                mov cx,8
lp:                push ds:[bx]
                inc bx
                inc bx
                loop lp
                
                mov ax,4c00h
                int 21h

code ends
        end ymex

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-6 14:11:14 | 显示全部楼层
本帖最后由 api 于 2011-11-6 14:12 编辑

你把sp的值设为16就能过原因我也一知半解,可能是栈溢出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-6 15:15:14 | 显示全部楼层
看过了,应该是栈的原因
DW 字 8个字*2=16个字节   栈空间0-F 所以偏移地址应该是16  要不就有问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-6 15:46:09 | 显示全部楼层
我也碰到过类似问题,比如我只需要弹压两个字型数据,所以就把栈sp指针设置为4,debug死活过不去,所以以后栈一般就让sp指向16或10h
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-6 15:47:08 | 显示全部楼层
sp应该为16,8个字为16字节,从0到15,所以sp应为16而不是17
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-6 16:12:16 | 显示全部楼层
加油把  我也刚学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-6 17:13:04 | 显示全部楼层
这个问题嘛。。不懂

sp是偶数没事 是奇数一定debug不过

记得书上也有一题目让你思考运行结果
不要debug去T  T不过的

可以u 看mov ax,4c00h
然后直接g ip

再d查看内存

sp改成14 18 20 都是不报错的,只不过栈顶位置不同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-6 21:33:03 | 显示全部楼层
吖谢谢大家 了。 这个你们都做过了吗。。。小甲鱼这个实验好像没 给答案吖。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-6 22:05:12 | 显示全部楼层
本帖最后由 guanyu 于 2011-11-6 22:20 编辑


我把这个程序 sp改成16   debug  t命令运行的时候  loop循环到  t到bx=000A
下来再用 t运行 应该是 inc bx  电脑就直接报错

qqq.rar

48.66 KB, 下载次数: 5

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-7 15:07:53 | 显示全部楼层

是实验五的代码吗。我下载不下来。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-7 15:40:34 | 显示全部楼层
china_ymex 发表于 2011-11-7 15:07
是实验五的代码吗。我下载不下来。。。。

不是代码 是你发的程序 debug 调试过程中抱错的图片
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-7 20:20:23 | 显示全部楼层
mov sp,16 ;指向栈底
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-8 13:01:59 | 显示全部楼层
手下SP要指向栈底,所以SP是16,申请8个DW字符的数据,所以栈底指向16.
还有为什么SP要是偶数,因为栈是字型数据,占用2个字节。所以必须是偶数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 10:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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