В предыдущих примерах мы размещали
определения областей памяти. В предыдущих примерах мы размещали в
памяти определенные значения. Это может быть поисковая таблица или
информация для перекодировки чисел. Мы составим несколько
примеров, в которых используется определенная подобным образом
информация. Кроме того встречаются ситуации, когда программе
требуется место в памяти для сохранения данных в процессе
исполнения. Во время ассемблирования программы содержимое этого
участка памяти неизвестно: собственно, это содержимое будет
переменным во время исполнения программы. Инструкция
DB ?
сообщает ассемблеру о необходимости выделить один байт памяти, не
изменяя его содержимое. В Этом байте может оказаться любое
случайное число, которое будет там оставаться пока какая-либо
команда не поместит в него определенное значение.
Нам может потребоваться выделить и большое количество байтов,
например, чтобы оставить область памяти для массива. Мы можем это
сделать так:
DB 25 DUP(?)
Этой инструкцией выделяется 25 байт памяти. Ключевое слово DUP в
этой псевдокоманде означает повторить (duplicate). Число 25
указывает, сколько раз ассемблер повторит определение байта в
памяти. Значение или значения в скобках ассемблер использует для
инициализации этой области памяти. В данном случае это значение
неизвестно. Для инициализации области с одним и тем же значением
выражение, например,
DB 17 DUP(31)
создает 17 байт со значением 31 каждый. Наконец,
DB 30 DUP(1,2,3,4,5)
выделяет 30 байт со значениями от 1 до 5 в первых пяти байтах. Сле-
дующие пять байт тоже имеют значения от 1 до 5 и т.д. Ассемблер
повторяет значения в скобках пока не будут заполнены все 30 байт.
Иногда нам хочется обратиться к набору бит меньшему чем байт.
Принят размер 4 бит. В 4 битах мы можем представить все 10
десятичных цифр. Для значений такого размера мы будем
Содержание Назад Вперед