关于内存存储位置的
我觉得应该选b,大家怎么看 这里存放的是是一个字符串,应该是顺序的。如果是放数值才是高位在后吧。 本帖最后由 兰陵月 于 2016-12-16 16:27 编辑
Kotori 发表于 2016-12-16 09:15
这里存放的是是一个字符串,应该是顺序的。
如果是放数值才是高位在后吧。
2楼的回复是否是正确的,我现在还没搞明白~{:10_323:} 本帖最后由 兰陵月 于 2016-12-16 17:11 编辑
NUM1 DW '5D'
不知道这样理解是否正确
' '中间是字符串,既然是字符串,那就顺序存放的,且一个字符就是占用一个字节,这是王爽汇编书上的解释~
我的理解是:
NUM1 DW '5D',
实际上与NUM1 DW 3544H等价,这样不难明白了!
~~可以上机验证一下~编写一个存放数据的空程序
编译好之后,用debug查看数据存储情况~
可以看出,存放的值为3544,所以答案应该是A
附:经过实验,用DW定义字符串时,字符串的长度不能超过一个字的长度~否则编译器将会报错,我想如果用DD定义字符串,是不是一个字符串的长度就不能超过一个双字呢,经过上级调试,确实是的~
既然用DW和DD来定义字符串有这样的规矩,那也从侧面说明当用DW或者DD来定义字符串的时候,是把要定义的字符串当作数字来处理的。因此‘5D’在DW看来,它就是3544H,所以才有上述结果。但DB由于是专门用来定义字符串的,所以它没有相应的限制。这可能编译器的规则问题吧
没学过计算机硬件原理,所以有些东西不知道是不是牵强附会~请批评 本帖最后由 兰陵月 于 2016-12-19 10:26 编辑
来自《80X86汇编语言程序设计教程》(杨季文 等编著钱培德审)
第69页—第70页
其中的解释如下:
我也没搞明白其中的为什么?
但是我想记住这个规则应该很容易,
以后碰到类似的情况直接套用就是了
页:
[1]