鱼C论坛

 找回密码
 立即注册
查看: 3051|回复: 7

大家看看这个代码有问题吗?

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

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

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

x
本帖最后由 583413088 于 2012-2-5 19:04 编辑
assume cs:code
a segment
        dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends

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

code segment

start:   mov ax, b
         mov ss, ax         ; 定义栈段地址
                 mov sp, 16         ; 栈段偏移地址 
                 
                 mov ax, a
                 mov ds, ax         ; 定义数据段地址
         
                 mov bx, 0          ; bX清零
                 mov cx, 8          ; 定义循环次数
        s:   mov ax, [bx]
             push ax
                 inc bx
                 loop s
                 
                 

        mov ax, 4c00h
                int 21h
code ends
end start
我一单步调试 就提示内存出错
帮帮忙啊 大家
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-3 20:56:05 | 显示全部楼层
inc bx得改成   add bx,2    你定义的都是字大小的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-4 13:51:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-4 19:26:30 | 显示全部楼层
大家帮帮忙啊 我总是找不出错啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-4 21:09:50 | 显示全部楼层
不好意思,上次就是扫了一眼。没注意,你定义的栈段(8dw)貌似小于数据段(16dw)的大小,把栈段弄得16字大试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-5 12:53:17 | 显示全部楼层
独立日 发表于 2012-2-4 21:09
不好意思,上次就是扫了一眼。没注意,你定义的栈段(8dw)貌似小于数据段(16dw)的大小,把栈段弄得16字大试试

3Q 好了啊  咋回事 为啥把栈空间 改成16字就没问题了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-6 08:41:33 | 显示全部楼层
我不是说了吗,因为你的数据段大小是16字,所以对应的栈段必须是16字,如果栈8字大小的话放不下,发生溢出。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-9 18:07:04 | 显示全部楼层
因为你入栈的数据长度超出定义栈的长度,所以报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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