Системы жесткого реального времени. Князев В.Н - 20 стр.

UptoLike

Составители: 

20
В результате трансляции должна быть получена карта памяти про-
грамм, где каждой ячейке памяти поставлен в соответствие хранящийся в
ней код.
В соответствии с форматом команд для представления их объектных
кодов отводятся одна, две или три ячейки памяти программ. В первой
ячейке всегда располагается код операции, во второй (а для МК
51 и в
третьей) – непосредственный операнд, адрес прямоадресуемого операнда,
адрес перехода внутри страницы памяти программ (для команд передачи
управления MK48) или смещение (для команд передачи управления
MK51). Для команд LСАLL. и LJMP во втором и третьем байтах объект-
ного кода указывается адрес передачи управления (во второмстаршая
часть, в третьеммладшая) .
Пример программы
на языке ассемблера приведен на рисунке 2.3.
EN I ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ
JMP START
NOP ;АДРЕС 0003(ОБРАБОТКА ПРЕРЫВАНИЯ)
RETR ;ЗАВЕРШЕНИЕ ОБРАБОТКИ ПРЕРЫВАНИЯ
START: MOV A,#100B ;ПОДГОТОВКА ПОРТА Р4
ORLD P4,A ;К ВВОДУ (2-Й БИТ)
MOVD A,P4 ;ВВОД ИЗ ПОРТА Р4
JB2 START ;ПЕРЕХОД, ЕСЛИ ВО 2-М БИТЕ ЕДИНИЦА
MOV A,#7
MOVD P5,A ;ВЫВОД В ПОРТ Р5
ORL P1,#0FFH ;ПОДГ. ПОРТА Р1 К ВВОДУ
(ВСЕ БИТЫ)
IN A,P1 ;ВВОД ИЗ ПОРТА Р1
CALL PP
JMP MET
PP: INS A,BUS ;ВВОД ИЗ ПОРТА Р0
OUTL P1,A ;ВЫВОД В ПОРТ Р1
RET
MET: NOP
JMP START
Рис. 2.3
1.2.3 Кросс-ассемблер
Входным файлом для кросс-ассемблера является исходный текст
программы на языке ассемблера однокристальной микроЭВМ серии
К1816ВЕ48, записанный на диск в виде файла любым редактором текста
      В результате трансляции должна быть получена карта памяти про-
грамм, где каждой ячейке памяти поставлен в соответствие хранящийся в
ней код.
      В соответствии с форматом команд для представления их объектных
кодов отводятся одна, две или три ячейки памяти программ. В первой
ячейке всегда располагается код операции, во второй (а для МК51 и в
третьей) – непосредственный операнд, адрес прямоадресуемого операнда,
адрес перехода внутри страницы памяти программ (для команд передачи
управления MK48) или смещение (для команд передачи управления
MK51). Для команд LСАLL. и LJMP во втором и третьем байтах объект-
ного кода указывается адрес передачи управления (во втором – старшая
часть, в третьем – младшая) .
   Пример программы на языке ассемблера приведен на рисунке 2.3.

       EN I    ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ
       JMP START
       NOP      ;АДРЕС 0003(ОБРАБОТКА ПРЕРЫВАНИЯ)
       RETR      ;ЗАВЕРШЕНИЕ ОБРАБОТКИ ПРЕРЫВАНИЯ
START: MOV A,#100B ;ПОДГОТОВКА ПОРТА Р4
      ORLD P4,A ;К ВВОДУ (2-Й БИТ)
      MOVD A,P4 ;ВВОД ИЗ ПОРТА Р4
       JB2 START ;ПЕРЕХОД, ЕСЛИ ВО 2-М БИТЕ ЕДИНИЦА
       MOV A,#7
       MOVD P5,A ;ВЫВОД В ПОРТ Р5
       ORL P1,#0FFH ;ПОДГ. ПОРТА Р1 К ВВОДУ(ВСЕ БИТЫ)
       IN A,P1 ;ВВОД ИЗ ПОРТА Р1
       CALL PP
       JMP MET
PP:    INS A,BUS ;ВВОД ИЗ ПОРТА Р0
       OUTL P1,A ;ВЫВОД В ПОРТ Р1
       RET
MET: NOP
       JMP START

                               Рис. 2.3

     1.2.3 Кросс-ассемблер
     Входным файлом для кросс-ассемблера является исходный текст
программы на языке ассемблера однокристальной микроЭВМ серии
К1816ВЕ48, записанный на диск в виде файла любым редактором текста


                                 20