如何使用直接寻址将char值分配给数组

时间:2019-01-31 06:33:21

标签: assembly masm

今天出现了一个问题,我不确定该如何解决。基本上,我们得到的数据为

           .data
 alphabet   byte       0,0,0

我们需要将零换成'A','B','C'

            .data
  alphabet  byte    0,0,0

            .code
  Main proc

  mov alphabet, 'A'
  mov alphabet[1], 'B'
  mov alphabet[2], 'C'

  Main endp
  end

调试时,字母为十六进制值0x41'A' 如何查看调试器中的[1]和[2]?

1 个答案:

答案 0 :(得分:1)

          .data
alphabet   byte       0,0,0

在不了解调试器的情况下,您始终可以通过以下方式更改数据布局:

          .data
alphabet   byte       0
EXTRA1     byte       0
EXTRA2     byte       0

现在查看EXTRA1和EXTRA2的内容,看看它们得到的是'B'和'C'。

说明

mov alphabet, 'A'
mov alphabet[1], 'B'
mov alphabet[2], 'C'

仍然有效([1][2]只是ALPHABET的偏移量)

mov alphabet, 'A'
mov EXTRA1, 'B'
mov EXTRA2, 'C'