- •Лабораторная работа № 4 Команды передачи данных
- •Цель работы
- •2.Основные теоретические сведения
- •Примеры
- •Примеры
- •Примеры
- •Пример
- •3. Порядок выполнения работы
- •3.1. Исследование команд пересылки с непосредственной и регистровой адресацией
- •3.2. Исследование команд пересылки с прямой адресацией
- •3.3. Исследование команд пересылки с косвенной адресацией
- •3.4. Команды пересылки с использованием регистра dptr
- •3.5. Задания для самостоятельной работы
- •4.Содержание отчета
- •Контрольные вопросы
Примеры
MOV A, #64H ; Загрузить в аккумулятор число 64H
MOV A, #0AAH ; Загрузить в аккумулятор число AAH
MOV A, #100 ; Загрузить в аккумулятор число 100 (в десятичном коде)
Обратите внимание на запись непосредственных данных #0AAH. Здесь перед шестнадцатиричным числом AAH поставлен незначащий 0, чтобы отличить его от метки.
При использовании регистровой адресации операнда источника он находится в одном из регистров общего назначения Rn = R0, R1, …,R7 текущего банка, номер которого определяется битами (флагами) RS1, RS0 регистра состояния PSW. Команда имеет однобайтный формат. Номер регистра Rn определяется тремя младшими битами байта кода операции.
Примеры
MOV A, R0 ; Пересылка в аккумулятор содержимого регистра R0
MOV A, R7 ; Пересылка в аккумулятор содержимого регистра R7
При использовании прямой адресации операнд источника находится в памяти данных или в регистре специальных функций. Команды имеют длину 2 байта. 1-й байт предназначен для кода команды, 2-й байт содержит адрес ячейки памяти данных (диапазон 00H…7FH) или адрес регистра специальных функций (диапазон 80H…FFH). Условное обозначение адреса в мнемонике команды – ad.
Примеры
MOV A, ad ; Пересылка в аккумулятор содержимого ячейки памяти с адресом ad
MOV A, 30H ; Пересылка в аккумулятор содержимого ячейки ПД с адресом 30H
MOV A, 80H ; Пересылка в аккумулятор содержимого регистра специальных
функций с адресом 80H – порта P0
MOV A, 0D0H ; Пересылка в аккумулятор содержимого регистра специальных
функций с адресом D0H - регистра PSW
В последних двух командах операнды источника – это регистры специальных функций. Эти регистры расположены по фиксированным адресам и имеют символические имена. Например, регистр по адресу 80H имеет имя P0 – это порт ввода/вывода, а регистр с адресом D0H имеет имя PSW – это регистр состояния PSW. Ассемблер МК51 допускает использование в мнемонике команд символических имен регистров специальных функций вместо их адресов. Это упрощает программирование, облегчает запись и чтение команд. При ассемблировании программа-транслятор подставляет вместо символических имен регистров специальных функций их действительные адреса.
Примеры
MOV A, P0 ; Пересылка в аккумулятор содержимого порта P0
MOV A, PSW ; Пересылка в аккумулятор содержимого регистра PSW
MOV A, B ; Пересылка в аккумулятор содержимого регистра B
MOV A, ACC ; Пересылка в аккумулятор содержимого регистра ACC
Последняя команда фактически не выполняет никаких действий, т.е. является пустой. При ее выполнении программный счетчик просто увеличивает на 2 свое содержимое (PC) (PC) + 2, так как команда занимает в памяти 2 ячейки.
При использовании косвенной адресации команды имеют длину 1 байт. В этом байте расположен код операции. Адрес операнда источника – ячейки памяти данных находится в регистре R0 или R1 текущего банка. Обратите внимание, что в качестве источника адреса операнда могут использоваться только регистры R0 и R1 (общее обозначение Ri), но не могут использоваться регистры R2 – R7. Диапазон адресов ячеек ПД при использовании косвенной адресации 00H…7FH. Обращение к регистрам специальных функций с использованием косвенной адресации невозможно.