鱼C论坛

 找回密码
 立即注册
查看: 3438|回复: 4

[争议讨论] 关于内存存储位置的

[复制链接]
发表于 2016-12-15 18:21:20 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
我觉得应该选b,大家怎么看
IMG_0625.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-16 09:15:17 | 显示全部楼层
这里存放的是是一个字符串,应该是顺序的。
如果是放数值才是高位在后吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-16 09:45:17 | 显示全部楼层
本帖最后由 兰陵月 于 2016-12-16 16:27 编辑
Kotori 发表于 2016-12-16 09:15
这里存放的是是一个字符串,应该是顺序的。
如果是放数值才是高位在后吧。


2楼的回复是否是正确的,我现在还没搞明白~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-16 15:00:41 | 显示全部楼层
本帖最后由 兰陵月 于 2016-12-16 17:11 编辑

NUM1        DW                '5D'


不知道这样理解是否正确
'   '中间是字符串,既然是字符串,那就顺序存放的,且一个字符就是占用一个字节,这是王爽汇编书上的解释~
我的理解是:
NUM1        DW                '5D',
实际上与NUM1        DW                3544H等价,这样不难明白了!

201.jpg

~~可以上机验证一下~编写一个存放数据的空程序
202.jpg

编译好之后,用debug查看数据存储情况~
可以看出,存放的值为3544,所以答案应该是A

203.jpg

附:经过实验,用DW定义字符串时,字符串的长度不能超过一个字的长度~否则编译器将会报错,我想如果用DD定义字符串,是不是一个字符串的长度就不能超过一个双字呢,经过上级调试,确实是的~

204.jpg

既然用DW和DD来定义字符串有这样的规矩,那也从侧面说明当用DW或者DD来定义字符串的时候,是把要定义的字符串当作数字来处理的。因此‘5D’在DW看来,它就是3544H,所以才有上述结果。但DB由于是专门用来定义字符串的,所以它没有相应的限制。这可能编译器的规则问题吧

没学过计算机硬件原理,所以有些东西不知道是不是牵强附会~请批评
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-19 10:24:48 | 显示全部楼层
本帖最后由 兰陵月 于 2016-12-19 10:26 编辑

来自《80X86汇编语言程序设计教程》(杨季文 等编著  钱培德  审)

第69页—第70页


207.jpg

其中的解释如下:
205.jpg

206.jpg

我也没搞明白其中的为什么?
但是我想记住这个规则应该很容易,
以后碰到类似的情况直接套用就是了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 16:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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