- •Основные понятия архитектуры и организации эвм.
- •1. Регистровая адресация
- •2. Непосредственная адресация
- •3. Прямая адресация
- •4. Косвенная адресация
- •5. Адресация по базе
- •6. Косвенная адресация с масштабированием
- •7. Адресация по базе с индексированием и масштабированием
- •4. Сдвиговые команды.
- •5. Команды передачи управления.
- •1. Директивы задания данных
- •2. Директивы сегментации программы
- •3. Директивы группирования.
- •4. Порядок размещения сегментов.
- •5. Директивы ограничения используемых команд.
- •3DNow! от amd
- •Первый способ
- •Второй способ
5. Команды передачи управления.
JMPоперанд;
8086, безусловный переход.
JMP передает управление в другую точку программы. Операндом может быть непосредственный адрес для перехода, а также регистр или переменная, содержащая адрес.
В зависимости от типа перехода различают:
переход типа short(короткий переход) - если адрес перехода находится в пределах от -127 до +128 байт от команды JMP;
переход типа near(ближний переход) - если адрес перехода находится в том же сегменте памяти, что и команда JMP;
переход типа far(дальний переход) - если адрес перехода находится в другом сегменте.
Краткое введение в язык ассемблера.
MASM, TASM.
Ассемблер предназначен для написания программ, эффективных по времени и потреблению ресурсов. Обычно используется для написания относительно коротких программ или фрагментов программ на языках высокого уровня.
Особенностями ассемблера по сравнению с математическим языком являются:
символичные наименования операций и операндов;
отсутствие привязки к конкретным адресам памяти;
возможность специализации программ с помощью макросредств.
Формат оператора ассемблера.
метка: операция операнд(ы); комментарий
Имеем дело с командой, которая выполняется на этапе выполнения команды.
имя директива операнд(ы); комментарий
Директива ассемблера; выполняется на этапе трансляции в objфайл; команд не порождает.
Метка задает адрес данной команды в исполнимом файле.
Процесс обработки ассемблерной программы можно пояснить так:
Текстовый редактор
Исходный файл
Prog.asm
Транслятор
MASM (TASM)
Файл листинга Объектный файл Таблица символов
Prog.lst Prog.obj Sym.tab
Библиотека стандартных Компоновщик Файлы *.obj
процедур и функций Link (Tlink) других модулей
Lib.obj
Карта памяти Исполняемый файл Файл перекрестных
Prog.map Prog.exe (.com) cсылок Prog.crf
Отладчик Загрузчик
AFD, TD
Настройка и выполнение Настройка и выполнение
программы в отладчике программы в АВТ
Сообщение отладчика Рез. корр. иполн. прогр. Run Time Errors
Директивы ассемблера.
1. Директивы задания данных
Директива определения имен
a) имяEQUвыражение
Например
N EQU 100h
TABLE EQU DS:[BP][SI]
MINS_DAY EQU 60*24
b) имя = выражение
Это имя может переопределяться и использоваться только для числовых выражений.
Директива выделения памяти
идентификатор D* список значений
где D* ода из приведенный ниже псевдокоманд:
DB- определить байт;
DW- определить слово;
DD- определить двойное слово;
DQ- определить учетверенное слово;
DT- определить десять байт;
DF- определить шесть байт.
Данная директива позволяет зарезервировать в памяти указанную область и приписать или не приписывать ей определенного значения. Например
text_string db ‘Hello world’
b_max db 255
b_min db -128
rez_w dw ?
rez_tab dw 20dup(?)
b_tab db 4dup(?),8,5,4dup(1)
fl_num dd 5.03E-2