鱼C论坛

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

第一帖,汇编,关于栈

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

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

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

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

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

  2. a segment
  3.                 dw 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 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. ymex:        mov ax,b
  10.                 mov ss,ax
  11.                 mov sp,17
  12.                
  13.                 mov ax,a
  14.                 mov ds,ax
  15.                 mov bx,0
  16.                
  17.                 mov cx,8
  18. lp:                push ds:[bx]
  19.                 inc bx
  20.                 inc bx
  21.                 loop lp
  22.                
  23.                 mov ax,4c00h
  24.                 int 21h

  25. code ends
  26.         end ymex
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-11-6 14:11:14 | 显示全部楼层
本帖最后由 api 于 2011-11-6 14:12 编辑

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

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

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

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

再d查看内存

sp改成14 18 20 都是不报错的,只不过栈顶位置不同
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-11-6 21:33:03 | 显示全部楼层
吖谢谢大家 了。 这个你们都做过了吗。。。小甲鱼这个实验好像没 给答案吖。。。
小甲鱼最新课程 -> https://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

小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-11-7 15:07:53 | 显示全部楼层

是实验五的代码吗。我下载不下来。。。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-11-7 15:40:34 | 显示全部楼层
china_ymex 发表于 2011-11-7 15:07
是实验五的代码吗。我下载不下来。。。。

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

本版积分规则

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

GMT+8, 2025-7-4 12:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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