本斯勒的章鱼 发表于 2013-7-27 09:53:28

汇编问题,定义字和字节问题,求教。。。。。==!

file:///C:\Users\zy\AppData\Roaming\Tencent\Users\287658003\QQ\WinTemp\RichOle\ASIT_B1227~C

两个分别定义字和字节型的数据
定义字的时候最多能定义2个字符,而且为什么debug中不是分段显示的?如下图


定义字节时候是分段显示的


求大神,各位朋友指点?对于字和字节还是不懂呀,。。。

Dardy 发表于 2013-7-27 11:14:57

数据是连续存放的,不存在什么分段不分段的。第2个代码里你在字符的后面定义了13个空格,以所恰好是“分段”显示的。(3个字符加13个空格,刚好显示为1行)
debug里,左边每行显示的是16个字节,右边每行显示的是把这16个字节作为ASC码,显示其对应的字符,ASC码里没有的显示为一个点。(空格的ASCII码是20h,像00,ech这些不在128个ASCII码内,在右边显示为一个点。)

relaxpeng 发表于 2013-7-27 14:34:41

空格占一个字节

本斯勒的章鱼 发表于 2013-7-29 09:55:10

Dardy 发表于 2013-7-27 11:14 static/image/common/back.gif
数据是连续存放的,不存在什么分段不分段的。第2个代码里你在字符的后面定义了13个空格,以所恰好是“分段” ...

还有个小疑问,就是定义‘字’的时候,应该是占两个字节,比如上面显示的‘biedodav’,对应不是‘62 00 69 00 65 00。。。。这样么,

Dardy 发表于 2013-7-29 10:49:03

不是按照一个字符一个字符的分别存为dw类型。
dw 'e';占两个字节
dw 'abcdefe' ;占8个字节,相当于 dw 'ab' , 'cd' , 'ef' , 'e'
是按照每两个字符从左到右划分。

我的emu8086模拟器和你图里有点不一样,但分两个字节的划分方式是一样的,
dw 'i'    ,存为69 00,你的是00 69
dw 'ib',存为69 62   , 你的是62 69

Dardy 发表于 2013-7-29 10:51:30

书上没细说这些规则,你调试出来的是什么规则就以什么规则为准

阔怀 发表于 2015-8-17 10:30:04

{:1_1:}
页: [1]
查看完整版本: 汇编问题,定义字和字节问题,求教。。。。。==!