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
   166   167   168   169   170   171   172   173   174   175   176