- •ПЕРЕЧЕНЬ СОКРАЩЕНИЙ
- •ПРЕДИСЛОВИЕ
- •Регистр флагов
- •Программа вывода строки
- •Примеры резервирования памяти
- •Регистровая адресация
- •Непосредственная адресация
- •Прямая адресация
- •Косвенная регистровая адресация
- •Адресация по базе
- •Пример программы задержки выполнения
- •Сложение, вычитание, умножение, деление
- •Рис. 15.1. Структурная схема ввода данных с клавиатуры
- •Пример программы для ввода с клавиатуры
- •Пример посимвольного ввода
- •Сортировка выбором
- •Сортировка вставками
- •Использование параметров в макрокомандах
- •Библиографический список
- •Приложение 1
- •Перечень команд
- •Приложение 2
mes_len = $-mes
В этом примере константа mes_len получает значение длины строки mes (в данном случае 5 байт), которая вычисляется как разность значения счетчика текущего адреса после определения строки и ее начального адреса mes. Такой способ удобен тем, что при изменении содержимого строки достаточно перетранслировать программу, и та же константа mes_len автоматически получит новое значение.
ПРИМЕРЫ РЕЗЕРВИРОВАНИЯ ПАМЯТИ
count |
dw 1000 |
//помещает значение 1000 по адресу count |
coef dw 5,10,68 //указанными числами заполняются три слова |
||
mask |
db 0FFh //в байт с именем mask записывается FF |
|
mes db ‘смещение’
//байтовая строка с текстом «смещение» начиная с адреса mes adr dw mes
//В слове adr смещение строки первого байта строки mes addr dd myproc
//в двойном слове помещается двухместный адрес процедуры В первом слове – относительный адрес Во втором – сегментный.
20
area dw 128 dup (?) //резервируем 128 слов памяти text db 100 dup (‘#’)
//100 байт массива заполняется кодом решетки array dw 1024 dup(256)
//массив из 1024 слов, в каждом слове 256
kilo equ 1024
//kilo – константа, которой присваивается значение 1024 навсегда. offs = 80-2*12+40*2
//начальное значение offs определено выражением, но в тексте программы ее можно менять
leng = 0FFFFh
//leng – название числа FFFF
mes db ‘ждите’ // позволяет ссылаться на текущую ячейку meslen = $ – mes // meslen = длина строки mes
Использование байта в словных операциях (оператор PTR)
Bits dw F5E9h
mov ax, bits //помещает в аккумулятор число F5E9 mov bh, byte ptr bits
//пересылает в старший байт регистра ВХ младший байт (Е9) переменной
mov cl, byte ptr bits + 1
//пересылка старшего байта (F5) в cl addr dd myproc
// в двойное слово помещается двухсловный адрес процедуры
mov bx, word ptr addr |
//относительный адрес myproc |
|
mov |
es, word ptr addr + 2 //сегментный адрес |
|
5. СИСТЕМА КОМАНД, РЕЖИМЫ АДРЕСАЦИИ
Существует множество вариантов доступа к операндам (режимов адресации). Операнды могут содержаться в регистрах, в самих коман-
дах, в памяти или в портах ввода-вывода. Рассмотрим семь групп режимов адресации:
•регистровая адресация;
•непосредственная адресация;
21
