Page 171 - 149
P. 171
MOVX - двонаправлені пересилки із зовнішньої пам’яті даних і акумулятора.
Команда MOV забезпечує двонаправлені пересилки, джерелами та
приймачами яких з одного боку є акумулятор, а з другого - регістри
оперативного призначення Rn (від R0 до R7 відповідного банку регістрів),
комірки внутрішнього ОЗП, адреси яких (операнд ad задається в діапазоні
адрес від 00 H до FF H) прямо задається в команді, комірки резидентної
пам’яті даних (адреси від 00 Н до 7F H) вказується опосередковано через
регістри R0 i R1 відповідного банку. Низка пересилок може виконуватись без
участі акумулятора. Зокрема пересилки з однієї комірки внутрішнього ОЗП в
іншу, адреса приймача (add) і джерела (ads) задається відповідно в другому і
третьому байтах команди MOV, з комірки ОЗП в регістр оперативного
призначення і навпаки. Можлива і опосередкована адресація комірки РПД
через регістри R0 i R1. Основні способи пересилки з використанням команди
MOV показані на таких прикладах:
MOV A,R3 ; Пересилка даних з регістра R3 в акумулятор
MOV P1,A ; Пересилка байта з акумулятора в порт Р1
MOV @R1,P2 ; Пересилка з порту Р2 в комірку РПД, адреса якої в
;регістрі R1
MOV R5,P0 ; Пересилка байта з порту Р0 в регістр R5
MOV@R0,SUBF ; Пересилка прийнятого в послідовному каналі байта в
;РПД
Команди MOVC забезпечують занесення до акумулятора байта з
комірок пам’яті програм, адреса яких утворена сумою поточного вмісту
акумулятора та вказівника даних (MOVC A,@A+DPTR) або сумою вмісту
акумулятора і лічильника команд (MOVC A,@A+PC). Перша команда
дозволяє пересилати байти з комірок, що знаходяться в повному адресному
просторі зовнішньої пам’яті програм об’ємом 64 Кбайти, а друга - в
суміщеному адресному просторі ПП (тобто ЗП складає 64 Кбайтів +256
байтів, що задаються байтом акумулятора). Дані команди зручно
використовувати у тому випадку, коли готові результати розв’язку певної
задачі написані в ПП (наприклад, таблиця sin x для цілих кутів, квадратів
чисел тощо).
В МК51 при використанні команди MOVX @,Ri забезпечується доступ
до 256 байтів ЗПД для виконання пересилок, а також є двосторонній обмін
байтами між акумулятором і розширеною ЗПД, коли для доступу до комірок
пам’яті використовується 16-бітна адреса, що зберігається в регістрі-
покажчику даних DPTR. Команда MOVX @DPTR забезпечує доступ до 65536
байтам ЗПД.
Команди арифметичних операцій
Дану групу утворюють 24 команди (таблиця 8.15), які використовують
команди віднімання, десяткової корекції, інкременту/декременту байтів а
172