Язык ассемблера микропроцессора 8088. Константы с фиксированной запятой. Определение данных и распределение памяти, страница 3




которых могут быть буквы алфавита как верхнего, так и нижнего регистров, цифры от 0 до 9 включительно и специальные символы: ? (знак вопроса1), знак @,_ (подчеркивание), $ (знак доллара) и « (точка).

Константы с фиксированной запятой

Макроассемблер распознает константы, представленные в форме с фиксированной запятой в двоичной, восьмеричной, десятичной или шестнадцатеричной системах счисления. Константы с фиксированной запятой должны быть целочисленными и умещаться в шестнадцати битах. Таким образом, целочисленная константа может быть любым недробным числом между 0 и 65535. При определении отрицательного числа макроассемблер будет транслировать его в стандартный дополнительный код. Целая константа может также кодироваться в десятичном виде или числом по другому основанию системы счисления. К последней цифре числа добавляют буквы В, Q или Н, которые указывают, что число записано в двоичном, восьмеричном или шестнадцатеричном виде соответственно. Восьмеричные числа могут заканчиваться буквой О вместо буквы Q. В определенных случаях для ясности программы десятичное число может тоже заканчиваться буквой D. Если используется шестнадцатерич-ная запись, первая цифра числа должна быть цифрой в диапазоне от 0 до 9. Примерами констант на языке ассемблера МП 8088 являются константы 109, 1257D, ПОИВ, 77Q, 1670, 4В5Н и 1FFFEH.

Символьные константы

Роль такой константы может выполнять любой символ, включая буквы алфавита, цифры и специальные символы кода ASCII. Символьная строка длиной до 255 символов может быть помещена в одиночные кавычки, что указывает на инициализацию определенной области памяти ЭВМ. Макроассемблер занесет слова кода ASCII, соответствующие каждому знаку в строке, в отведенную область памяти. Когда символьные константы используются как непосредственные

104


операнды, они должны быть однобитовыми или двухбайтовыми соответственно для команд работы с байтами или словами. Например, команда СМР АХ, 'АВ' транслируется в шестнадцатеричную последовательность 3D4241 в машинном языке. Поскольку эта команда 16-битовая, символьная константа должна быть двухбайтовой.

Константы в форме с плавающей запятой

Микропроцессор 8088 не имеет аппаратно-реализо* ванных команд для операций над числами с плавающей запятой. Однако в языке ассемблера МП 8088 числа с плавающей запятой могут быть определены либо в стандартной, либо в экспоненциальной форме. Примеры констант в форме с плавающей запятой: 123.45 и 27.25Е-2. Макроассемблер преобразует эти числа в двоичные для того, чтобы с ними могли работать другие процессоры, такие, как процессор цифровой обработки информации 8087.

Определение данных и распределение памяти

Существует несколько директивных утверждений, которые могут управлять резервированием памяти и занесением в выделенные ячейки констант с фиксированной запятой, символов или чисел с плавающей запятой. Распределение памяти может осуществляться и без занесения каких-либо данных в ячейки. Директивами для определения данных или резервирования области памяти являются: DB (Define Byte — определить байт), DW (Define Word — определить слово), DD (Define Doubleword — определить двойное слово), DQ (Define Quadword — определить четыре слова) и DT (Define Teribyte — определить десять байтов).

Использование этих директив для резервирования и инициализации ячеек памяти в языке ассемблера МП 8088 поясняется на рис. 3.2. Знак вопроса в поле операндов указывает, что ячейка только резервируется; для повторения одних и тех же начальных значений в поле операндов может присутствовать параметр DUP,

105