请教字节定义问题
本帖最后由 loop 于 2011-5-29 23:27 编辑请教论坛里的各位高手。
在汇编书上看到有这样的语句
db '1975', '1976'......
这样不是定义字节型数剧吗,把1975当成字符来定义的话,8位如何存放1975这个字符。
用4个字节存放 回复 china0008 的帖子
呵呵!莫要因为他那两个单引号而误导了你:db 'xxxx','xxxx'和 db1,2,3,4,5,6,7,8 意思不差多少 只是前者是定义了两个字符串(可以这么说)每个字符串由四个字符组成,每个字符占一个字节(因为是用db定义的),而后者也是一样,不一样的是后者是定义的数据(勉强可以这么说)1,2,3,4,5,6,7,8 每个数据占一个字节(因为也是用db所定义) 感谢上楼的确认。
刚一下顿悟过来。
其实用db定义只是用来说明他每个成员存放的类型。还不是说整个字符用字节来存放。
db ‘1975’其实是指
1 9 7 5
01H09H07H05H
是这个意思吗:) db ‘1975’ 等效于 db '1','9','7','5'
内存里面的'1','9','7','5'对应于具体字符的ASCII码。
要特别注意,他们分别被看作ASCII码,已经不是具体的数字了。 本帖最后由 Y.H 于 2011-5-25 00:12 编辑
小唐 发表于 2011-5-24 23:37 static/image/common/back.gif
感谢上楼的确认。
刚一下顿悟过来。
其实用db定义只是用来说明他每个成员存放的类型。还不是说整个字符用 ...
db ‘1975’其实是指
1 9 7 5
01H09H07H05H
我帮你改下用内存单元图直接点:
| 01h |<----0000号内存单元<--------------|
| 09h |<----0001号内存单元 |(因为定义时是用的db对吧,所以01h占一个内存单元,同理……)(楼上说的很对)
| 07h |<----0002号内存单元 | (这个时候不再能用数据表示了,而是ASCII码了)(这里就不改正了,比较懒……)
| 05h |<----0003号内存单元<--------------| 非常感谢前面几位前辈的指教。。
让我明白两个引申出来的东西。。
看来有问题还是得到论坛跟大家学习。。
这样解决的不仅仅是你指的单一问题。。。
可能还有引申出来的新知识;P 看前面的如果是dw(w是word就是字)开头的是字单元 如果是db(b是bit字节)是字节单元如果要定义字符型的话就应该用dw开头然后在后便输入你要的内容;P
页:
[1]