Как присвоить значения char массиву с помощью прямой адресации - PullRequest
0 голосов
/ 31 января 2019

Сегодня возник вопрос, и я не знал, как к нему подойти.По сути, мы получили наши данные как

           .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 голосов
/ 31 января 2019
          .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'
...