Группа: ИУ4-73 Студенты: Антохин, Антохина, Однокольцев, Тихомиров Отчет по лабораторной работе МПК589 1. Разработать программу 2.1, обеспечивающую запись во внутренние регистры ЦПЭ R0…R7 последовательности чисел 0…7 и запись в регистр-аккумулятор АС числа 8. Эту и последующие программы оформить в виде таблицы. 2. разработать программу 2.2, обеспечивающую запись содержимого регистров R0…R7 в ячейки памяти соответственно по адресам 40h…48h. Программу разместить в памяти таким образом, чтобы было возможно самостоятельное последовательное выполнение программ 2.1 и 2.2. Пользуясь командой условного перехода, объединить программы 2.1 и 2.2; Адрес 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 Код BF B8 CF 5B CF 5C CF 5D CF 5E CF 5F CF 60 CF 61 CF Мнемоника CLR AC CLR R0 INR AC MOV R1, AC INR AC MOV R2, AC INR AC MOV R3, AC INR AC MOV R4, AC INR AC MOV R5, AC INR AC MOV R6, AC INR AC MOV R7, AC INR AC Комментарий ;Обнуление аккумулятора АС ;Обнуление R0 ;Увеличение на единицу значения AC ;Запись в R1 данных из аккумулятора AC ;Увеличение на единицу значения AC ;Запись в R2 данных из аккумулятора AC ;Увеличение на единицу значения AC ;Запись в R3 данных из аккумулятора AC ;Увеличение на единицу значения AC ;Запись в R4 данных из аккумулятора AC ;Увеличение на единицу значения AC ;Запись в R5 данных из аккумулятора AC ;Увеличение на единицу значения AC ;Запись в R6 данных из аккумулятора AC ;Увеличение на единицу значения AC ;Запись в R7 данных из аккумулятора AC ;Увеличение на единицу значения AC 21 22 23 8E 50 A0 TZ R0 ;Переход по адресу 50 если R0=0 END ;Конец программы 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 A8 9F 40 A9 9F 41 AA 9F 42 AB 9F 43 AC 9F 44 AD 9F MOV AC, R0 MOVI MN, AC ;Запись значения R0 в AC ;Запись значения аккумулятора AC в ОЗУ по адресу 40 MOV AC, R1 MOVI MN, AC ;Запись значения R1 в AC ;Запись значения аккумулятора AC в ОЗУ по адресу 41 MOV AC, R2 MOVI MN, AC ;Запись значения R2 в AC ;Запись значения аккумулятора AC в ОЗУ по адресу 42 MOV AC, R3 MOVI MN, AC ;Запись значения R3 в AC ;Запись значения аккумулятора AC в ОЗУ по адресу 43 MOV AC, R4 MOVI MN, AC ;Запись значения R4 в AC ;Запись значения аккумулятора AC в ОЗУ по адресу 44 MOV AC, R5 MOVI MN, AC ;Запись значения R5 в AC ;Запись значения аккумулятора AC в ОЗУ по адресу 45 61 62 63 64 65 66 67 68 45 AE 9F 46 AF 9F 47 AO MOV AC, R6 MOVI MN, AC ;Запись значения R6 в AC ;Запись значения аккумулятора AC в ОЗУ по адресу 46 MOV AC, R7 MOVI MN, AC ;Запись значения R7 в AC ;Запись значения аккумулятора AC в ОЗУ по адресу 47 END ;Конец программы 3. составить программу 2.4, которая обеспечивает формирование кода 0FFh в аккумуляторе АС, кода 0FEh в R7, 0FDh в R6 и запись содержимого этих регистров в память соответственно по адресам 30h, 31h, 32h; Адрес 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 Код 73 9F 30 6E 61 9F 31 6E 60 9F 32 A0 Мнемоника STC MOVI MN, AC Комментарий ;Установка аккумулятора в 0FFh ;Запись значения аккумулятора AC в ОЗУ по адресу 30 DCR AC MOV R7, AC MOVI MN, AC ;Уменьшение значения АС на 1 ;Запись значения АС в R7 ;Запись значения аккумулятора AC в ОЗУ по адресу 31 DCR AC MOV R6, AC MOVI MN, AC ;Уменьшение значения АС на 1 ;Запись значения АС в R6 ;Запись значения аккумулятора AC в ОЗУ по адресу 32 END ;Конец программы 4.составить программу 2.5, обеспечивающую запись в ОЗУ, начиная с адреса 30h последовательности чисел с 5 до 15. Адрес 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A1 A2 A3 A4 A5 A6 A7 Код 4E 07 9F 30 CF 9F 31 CF 9F 32 CF 9F 33 CF 9F 34 CF 9F 35 CF 9F 36 CF 9F 37 CF 9F 38 CF 9F 39 CF 9F 40 CF 9F 41 CF 9F 42 CF 9F 43 CF 9F 44 CF 9F 45 A0 Мнемоника IN 7 Комментарий ;Ввод "5" в AC с устройства 7 MOVI MN, AC ;Запись значения AC в ОЗУ по адресу 30 INR AC MOVI MN, AC ;Инкремент значения в AC ;Запись значения AC в ОЗУ по адресу 31 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 32 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 33 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 34 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 35 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 36 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 37 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 38 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 39 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 40 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 41 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 42 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 43 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 44 INR AC MOVI MN, AC ;Увеличение значения АС на 1 ;Запись значения AC в ОЗУ по адресу 45 END ;Конец программы Коды команд микро-ЭВМ МП-589. 0 0 1 2 3 4 5 6 7 8 9 A B C D E F 1 2 3 4 5 6 7 8 9 A B C D E F GOTO N SRA1 ALR0 ALR1 ALR2 ALR3 ALR4 ALR6 ALR7 JFF N MOV MOV R6,AC R7,AC CALL N CMC ALR5 STC DCR R0 MUSIC DCR R1 ADD R0 DCR R2 ADD R1 DCR R3 ADD R2 ALA MOV MOV MOV MOV MOV MOV R0,AC R1,AC R2,AC R3,AC R4,AC R5,AC DCR DCR DCR DCR DCR R4 R5 R6 R7 AC ADD ADD ADD ADD ADD ADD R3 R4 R5 R6 R7 AC TZR0 TZR6 TZR7 TZA END SRA0 IN N TZR1 TZR2 TZR3 TZR4 TZR5 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOVI MOVI JFS M0,AC M1,AC M2,AC M3,AC M4,AC M5,AC M6,AC M7,AC MA,AC AC,MN MN,AC MOV MOV MOV MOV MOV MOV MOV MOV OUT N RET AC,R0 AC,R1 AC,R2 AC,R3 AC,R4 AC,R5 AC,R6 AC,R7 CLR CLR CLR CLR CLR CLR CLR CLR R0 R1 R2 R3 R4 R5 R6 R7 INR INR INR INR INR INR INR INR R0 R1 R2 R3 R4 R5 R6 R7 MOV MOV MOV MOV MOV MOV MOV MOV AC,M0 AC,M1 AC,M2 AC,M3 AC,M4 AC,M5 AC,M6 AC,M7 0 1 2 3 4 5 6 7 8 9 A B C D E F Система команд микро-ЭВМ МП-589. Мнемоника команды Выполняемая Число операция и ее байт формат CLR RN INR RN DCR RN MOV AC,RN 1 1 1 1 0 RN RN+1 RN RN-1 RN RN AC MOV RN,AC 1 AC RN ADD RN 1 RN+ACRN,AC CMC STC ALRN 1 1 3 Not AC AC 0FFh AC RN+ACACXX If C0=0A1PC If C0=1A2PC ALA 3 AC+ACACXX If C0=0A1PC If C0=1A2PC GO TO N 2 TZRN 3 Переход XX N PC Усл.переход XX If RN=0A1PC Комментарии Обнуление регистра RN ЦПЭ Увеличение на 1 регистра RN Уменьшение на 1 регистра RN Пересылка значения регистра RN в аккумулятор АС Пересылка значения аккумулятора АС в регистр RN Арифметическое сложение регистра RN с аккумулятором и помещение результата в пару рег. Инвертирование аккумулятора Установка аккумулятора в 0FFh Арифметическое сложение регистра RN с аккумулятором и переход по адресу во втором байте, если перенос равен 0, иначе переход по адресу в третьем байте Умножение аккумулятора на 2 и переход по адресу во втором байте, если перенос равен 0, иначе переход по адресу в третьем байте Безусловный переход по адресу, указанному во втором байте Условный переход по адресу во втором байте, если регистр RN равен 0, иначе Мнемоника команды Выполняемая Число операция и ее байт формат If RN0A2PC AC.0 C XX If C0=0A1PC If C0=1A2PC AC.0 C XX If C0=0A1PC If C0=1A2PC Усл.переход XX If упр0=0 A1PC If упр0=1 A2PC Усл.переход XX УВВN упр1 If упр1=0 A1PC If упр1=1 A2PC Конец SRA0 3 SRA1 3 JFS 3 JFFN 4 END 1 MOV MN,AC 1 MOV AC,MN 1 MOVI MN,AC 2 MOVI AC,MN 2 OUT N 2 IN N 2 УВВN ACXX Адр. УВВ N * Music F T F T … кон. табл. Переход N PC MUSIC CALL N 2 RET 1 AC M[RN] XX Номер рег. N M[RN] ACXX Номер рег. N AC M[N] XX Адр. ОЗУ N M[N] AC XX Адр. ОЗУ N AC УВВNXX Адр. УВВ N XX F1 T1 F2 T2 00 XX N Комментарии переход по адресу в третьем байте Сдвиг аккумулятора АС вправо. Младший бит переносится в перенос С0, в старший записывается 0 для SRA0 и 1 для SRA1. Переход по адресу во втором байте, если перенос равен 0, иначе переход по адресу в третьем байте Переход по ответному сигналу упр0 платы звука. При генерации звука (упр0 = 1) переход по адресу в третьем байте и по адресу во втором байте (упр0=0) – в режиме молчания. Переход по признаку состояния (упр1) внешнего устройства с адресом N, указанным во втором байте. Конец работы программы и переход к ожиданию команд с клавиатуры. Запись аккумулятора АС в ОЗУ по адресу в регистре RN. Запись ячейки ОЗУ с адресом, указанным в регистре в RN, в аккумулятор АС. Запись аккумулятора АС в ОЗУ по адресу, указанному во втором байте. Запись ячейки ОЗУ с адресом, указанным во втором байте, в аккумулятор АС. Запись значения аккумулятора АС во внешнее устройство с адресом N, указанным во втором байте. Запись значения из внешнего устройства с адресом N, указанным во втором байте, в аккумулятор АС. Вывод музыкального текста. 1ый байт – код команды, 2ой байт – код 1ой ноты, 3ий байт – ее длительность, 4ый байт – код 2ой ноты, 5ый байт – длительность 2ой ноты и т.д. до конца таблицы. Признак конца таблицы – нулевой байт. Вызов подпрограммы с адресом N, указанным во втором байте, адрес текущей команды помещается а стек. Возврат на адр. Возврат из подпрограммы с из стека восстановлением адреса из стека.