Декларация программирования на ассемблере - PullRequest
0 голосов
/ 13 апреля 2020

Что пытаются сказать следующие строки:

Hello:
     DB this
     DB 2

Пожалуйста, объясните, я в замешательстве. Что мы должны сказать «Привет». Метка или что-то еще. Когда мы будем использовать «:» и когда это не понадобится.

1 Ответ

1 голос
/ 13 апреля 2020

В этом примере кода Hello: - это метка, которая может находиться в сегменте данных или сегменте кода (или любом другом сегменте, например, сегменте стека - что было бы необычно). Он обозначает начальный адрес следующих директив DB.

  • DB this указывает значение BYTE this, которое может быть строковым эквивалентом (TEXTEQU), эквивалентом (EQU) или даже адресом байтового размера.
  • DB 2 просто указывает непосредственное значение BYTE 2

Таким образом, значение в позиции Hello может быть 16-разрядным младшим порядковым числом или массивом из 8-разрядных значения с длиной два или неоконченная строка с длиной два.

Опять, пожалуйста, поймите, что эти коды могут также встречаться в сегменте кода, где они будут реализовывать инструкцию.

Например, если this определяется как this EQU 0Fh (а второе значение BYTE равно 02h), инструкция на метке Hello равна 0F 02 /r = LAR с аргумент регистра (/r).

...