Assembly 不正确的x8086汇编语言

Assembly 不正确的x8086汇编语言,assembly,Assembly,我对以下数据段有一个问题: data segment s dw 7,5,2 x db $ .... data ends. 我必须知道x的值是多少。我在一本书中找到了6,但我不知道为什么。 如果用db,dw代替,那么现在x的值是多少?dw是定义单词的汇编指令。现在一个字的长度可能因机器而异,但在本例中是2字节。您正在存储其中的三个字(7、5和2),因此它们将占用6个字节 db是define byte的汇编指令,$表示当前偏移量。当您在该命令出现的偏移量6处时,x的值为6 使用db存储当前偏移量很

我对以下数据段有一个问题:

data segment
s dw 7,5,2
x db $
....
data ends.
我必须知道x的值是多少。我在一本书中找到了6,但我不知道为什么。
如果用db,dw代替,那么现在x的值是多少?

dw
定义单词的汇编指令。现在一个字的长度可能因机器而异,但在本例中是2字节。您正在存储其中的三个字(7、5和2),因此它们将占用6个字节

db
define byte
的汇编指令,
$
表示当前偏移量。当您在该命令出现的偏移量6处时,
x
的值为6


使用
db
存储当前偏移量很可能是危险的,因为如果偏移量大于255,它将无法给出正确答案,如果扩展程序并添加数据,很容易得到正确答案
dw
对于8086应该没问题(我现在记不起来了,但我认为偏移量限制在16位以内)。

你知道
dw
的实际含义吗?(如果没有,你需要修改你的课堂讲稿。)是的,我知道。它的意思是。。在本例中,单词
表示多少字节?(很抱歉把它从你这里拖出来。)嗯,我没有写多少字节。我只是说了x的值是多少。我错在哪里了?这个数据段是我在一本书中找到的。所以它是一个错误x db$,应该是x dw$?我没有得到“单词长度(..)的部分但在这种情况下,它是2字节。为什么我们知道它是2字节?从哪里?看看。在中,您可以看到Intel 8086(1978年)的字大小为16位,或2字节。