鱼C论坛

 找回密码
 立即注册
查看: 3350|回复: 8

关于书本6.2章例题数据逆序存放SP的设置问题

[复制链接]
发表于 2011-11-5 10:56:23 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 wuyaozi 于 2011-11-5 10:58 编辑

我在学习鱼C6.2章中 "将程序中定义的数据逆序存放"时遇到一个问题
就是书本上面8个数据存放时程序设置栈顶是这样的 MOV SP,30H
而小甲鱼在视频里面设置是这样的MOV SP,32
我不知道哪里是对的 还有加H和不加有区别吗、为什么这里的32不是转化成16进制的数据呢
小甲鱼程序如下:
assume cs:abc
abc segment
    dw 0011h,2233h,4455h,6677h,8899h,9900h,6622h,8866h
    dw 0,0,0,0,0,0,0,0
start: mov ax,cs
    mov ss,ax
    mov sp,32  问题就在这里的32 还是32H 还是课本上的30H 还是32的是16进制数20H
    mov bx,0
    mov cx,8
s:push cs:[bx]
    add bx,2
    loop s
     mov bx,0
    mov cx,8
   s1:pop cs:[bx]
   add bx,2
   loop s1

mov ax,4c00h
int 21h
abc ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-5 11:05:30 | 显示全部楼层
是32,也就是20H。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-5 11:08:05 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-5 12:22:36 | 显示全部楼层
程序没问题吧。。
小甲鱼的代码也没错
只是栈的储存位置不一样。。
sp 30H
sp 32 即 20H  只不过错了10H 正好16个字节而已。。
从结果上来说是一样的。
过程上只是栈顶地址不一样而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-5 12:24:45 | 显示全部楼层
本帖最后由 100531319 于 2011-11-5 12:25 编辑

你怎么没有   abc ends? 0011h到8866H是0~15,15加下面的16字节,在指针加1,也就是32=20H,

你得书跟我又点差别,我是0123,0456, 栈空间是16个0书好像有很多版本一样

还有我刚学, 也不是很懂, 希望我有什么错,请指正
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-5 12:32:11 | 显示全部楼层
本帖最后由 ever.g 于 2011-11-5 12:40 编辑

:L 他都直接弄代码段里了
abc ends 在最后
所以他开始是mov ax,cs 这样可以的

未命名.jpg

这我直接拷贝的你代码,结果确实逆序存放了~
还有程序中 32 就是10进制
后面带H 32H 就是16进制,不要弄混
另外  10101b  带b就是2进制

不区分大小写

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-5 14:06:44 | 显示全部楼层
wuyaozi 发表于 2011-11-5 11:08
关键是照这上面的程序运行,结果不对

可以啊
结果是正确的。。。
QQ截图未命名.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-5 19:48:14 | 显示全部楼层
是32或者20H
dw是定义字型数据,16个字型数据=32个字节型数据
也就是CS:0~19H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-5 20:28:29 | 显示全部楼层
呵呵  在赋值时如果数字后面你不写H,编译器认为你输入的是十进制数字,比如:mov ax,100就和mov ax,64H一模一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 19:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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