汇编内存图验证

Assembly Memory Diagram Verification

鉴于此数据,

  .data
  Alpha WORD 0022h, 45h
  Beta BYTE 56h
  Gamma DWORD 4567h
  Delta BYTE 23h

假设数据段从0x00404000开始,谁能验证这个table有多正确?

Address     Variable    Data
00404000    Alpha       22
00404001    Alpha + 1   00
00404002    Alpha + 2   45
00404003    Beta        56
00404004    Gamma       67
00404005    Gamma+1     45
00404006    Delta       23

如果不知道相关处理器的寻址(以及汇编程序如何查看寻址),则无法回答。尽管如此,您需要一个非常不寻常的系统才能使其正确。

Alpha 被定义为 "word" 类型。您将第一个单词显示为分配两个字节(相当合理),但第二个单词只分配一个字节。这不太合理——一个字可能是一个字节,也可能是两个字节,但它的大小通常至少是一致的。

目前,我们假设一个字是两个字节,一个双字是四个字节。在那种情况下,我希望更像:

Alpha   22h
alpha+1 00h
alpha+2 45h
Alpha+3 00h
Beta    56h
Gamma   67h
Gamma+1 45h
Gamma+2 00h
Gamma+3 00h
Delta   23h