鱼C论坛

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

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

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

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

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

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

  5. b segment
  6.          dw 0,0,0,0,0,0,0,0
  7. b ends

  8. code segment

  9. start:   mov ax, b
  10.          mov ss, ax         ; 定义栈段地址
  11.                  mov sp, 16         ; 栈段偏移地址
  12.                  
  13.                  mov ax, a
  14.                  mov ds, ax         ; 定义数据段地址
  15.          
  16.                  mov bx, 0          ; bX清零
  17.                  mov cx, 8          ; 定义循环次数
  18.         s:   mov ax, [bx]
  19.              push ax
  20.                  inc bx
  21.                  loop s
  22.                  
  23.                  

  24.         mov ax, 4c00h
  25.                 int 21h
  26. code ends
  27. 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-4-28 16:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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