По этим директивам под переменные ВиС отводится по слову памяти и в эти ячейки записываются указанные числа, которые становятся начальными значениями этих переменных.
Как и в случае директивы DB, неотрицательные числа записываются в память как числа без знака, а отрицательные числа - в дополнительном коде.
Поэтому числа, которые могут быть заданы как операнды директивы DW, должны принадлежать
отрезку [-215, 216-1].
Но здесь имеется и отличиеот директивы DB.
Напомним, что в ПКчисла размером в слово хранятся в памяти в "перевернутом" виде.
Так вот, на ЯА такие числа записываются в нормальном, неперевернутом виде, а "переворачиванием" их занимается самассемблер, поэтому по нашим двум директивам память заполнится следующим образом:
С учетом этого при программированиина ЯА можно в общем-то забыть о "перевернутом" представлении чисел в памяти ПК.
Частным случаем рассматриваемого вида операнда директивыDWможет быть строка из одного или двухсимволов, например:
S1 DW '01'
S2 DW '1'
Если указана строкаиз двухсимволов, тогда ассемблер берет кодыуказанных символов
(в нашем случае - 30h(код '0') и
31h (код '1'))
и образует из них число-слово (3031h), которое и считается начальным значением описываемой переменной (S1).
Но как и любое число размером в слово, данное значение будет записано в память в "перевернутом" виде.
Если же в правой части директивы DW указан одинсимвол, тогда к нему слева приписывается символ с кодом 0 и дальнейшие действия ассемблера будут такими же, как и в случае двухсимвольной строки.
Поэтому по нашим двумдирективам память будет заполнена следующим образом:
В связи с тем, что операнды-строки записываются в память в "перевернутом" виде, что в общем-то не характерно для строк, то подобные операнды редкоуказываются в директиве DW.
В качестве операндадирективы DWможет быть указано адресноевыражение, т. е. выражение, значением которого является адрес.
Как записываются такие выражения, мы еще рассмотрим, а пока лишь отметим, что основнойслучай адресного выражения - это имя переменной или метка. Поэтому допустим такой пример: