- •7 Регистры состояния и управления. Флаги
- •9 Формирование физического адреса в реальном режиме
- •10 Жизненный цикл программы на Ассемблере.
- •13 Структура машинной команды. Способы задания операндов.
- •14 Функциональная классификация машинных команд
- •15 Стандартные и упрощенные директивы
- •18 Команды обмена данными с сопроцессором (ldc,stc)
- •19 Ввод - вывод в порт
- •21 Безусловные переход
- •22 Условный переход
- •23 Работа с адресами и указателями памяти
- •24 Преобразование данных
- •25 Организация стека. Команды работы со стеком.
- •27 Сложение двоичных чисел без знака.
- •28 Сложение двоичных чисел со знаком. Вычитание двоичных чисел со знаком.
- •29 Умножение двоичных чисел без знака. Деление двоичных чисел без знака.
- •29 Умножение двоичных чисел со знаком. Деление двоичных чисел со знаком
- •31 32 Сложение вычитание и деление и сложение упакованных bcd чисел
18 Команды обмена данными с сопроцессором (ldc,stc)
Эти команды будут выполнены, если условие истинно. Команды этого класса используются для чтения (LDC) или записи (STC) регистров сопроцессоров непосредственно из/в память. Ядро ARM7TDMI передает сопроцессору адрес ячейки памяти, а сопроцессор в свою очередь возвращает ядру данные и их количество в словах.
Пример:
LDC p1,c2,table ; Загрузить регистр с2 сопроцессора #1 из ячейки
; памяти по адресу "table",
; используя адрес, относительно содержимого PC.
STCEQL p2,c3,[R5,#24]! ; Условно записать содержимое c3 сопроцессора #2
; в ячейку памяти по адресу R5+24.
; После чего записать в R5 значение R5+24
; и применить длинную передачу
; (возможно, блочную запись данных).
19 Ввод - вывод в порт
Ввод-вывод через порты (англ. I/O ports) — схемотехническое решение, организующее взаимодействие процессора и устройств ввода-вывода. Противоположность вводу-выводу через память.
Во многих моделях процессоров ввод-вывод организуется теми же функциями, что и чтение-запись в память — так называемый «ввод-вывод через память». Соответственно, схемотехнически устройства ввода-вывода располагаются на шине памяти, и часть адресов памяти направляются на ввод-вывод. В процессорах Intel, микроконтроллерах AVR и некоторых других существуют отдельные команды для ввода-вывода — IN и OUT — и, соответственно, отдельное адресное пространство: в процессорах Intel — от 000016 до FFFF16.
Порты ввода/вывода создаются в системном оборудовании, которое циклически декодирует управляющие, адресные и контакты данных процессора. Затем порты настраиваются для обеспечения связи с периферийными устройствами ввода-вывода.
Одни порты используются для передачи данных (например, приём данных от клавиатуры или чтение времени системных часов), другие — для управления периферийными устройствами (команда чтения данных с диска). Исходя из этого порт ввода/вывода может быть портом только для ввода, только вывода, а также двунаправленным портом.
Ввод-вывод через память никак не связан с прямым доступом к памяти; ПДП — отдельное схемное решение, связывающее шину ввода-вывода с контроллером памяти и разгружающее процессор на крупных операциях ввода-вывода.
21 Безусловные переход
Безусловный переход — это переход, который выполняется всегда. Безусловный переход осуществляется с помощью команды JMP. У этой команды один операнд, который может быть непосредственным адресом (меткой), регистром или ячейкой памяти, содержащей адрес. Существует два вида команд безусловной передачи управления - команды переходов и вызовов.
jmp метка – безусловный переход на метку. Например: jmp @exit; Используется очень часто. По сути выполняет то же самое действие, что и goto в Паскале
jmp metka ;Переход на метку
jmp bx ;Переход по адресу в BX
jmp word[bx] ;Переход по адресу, содержащемуся в памяти по адресу в BX
