- •Отчет по лабораторной работе
- •3. Система команд микропроцессора к580
- •4. Программа работы
- •5. Вводные программы
- •5.1. Программа 1
- •5.2. Программа 2
- •5.3. Программа 3
- •5.4. Программа 4
- •5.5. Программа 5
- •5.6. Программа 6
- •5.7. Программа 7
- •5.8. Программа 8
- •5.9. Программа 9
- •5.10. Программа 10
- •5.11. Программа 11
- •6. Самостоятельная программа 1
- •7. Самостоятельная программа 2
- •8. Заключение
5.6. Программа 6
Программа позволяет "очистить" (обнулить) заданную область памяти.
На Рис. 3 представлен один из возможных алгоритмов программы "обнуления".

Рис. 2
Перед выполнением программы содержимое ячеек памяти с адресами от Н=000 L=011 до H=000 L=040 ненулевое, поскольку память использовалась в предыдущих программах и не была обнулена.
Текст программы представлен в Таблице 8.
Таблица 8
|
Адреса |
Команды |
Мнемоника |
Комментарии команд |
|
L=000 |
227 |
SUB A |
; Обнуление A |
|
001 |
041 |
LXI H |
; Загрузка начального адреса в указатель памяти |
|
002 |
011 |
B2 |
; мл. байт адреса |
|
003 |
000 |
B3 |
; ст. байт адреса |
|
004 |
167 |
MOV M,A |
; Обнуление ячейки памяти, адресуемой регистровой парой HL |
|
005 |
043 |
INX H |
; Формирование адреса следующей ячейки памяти |
|
006 |
303 |
JMP |
; Безусловный переход по адресу |
|
007 |
004 |
B2 |
; мл. байт адреса |
|
010 |
000 |
B3 |
; ст. байт адреса |
При выполнении программы в автоматическом режиме она начинает обнулять ячейки памяти, начиная с 011, доходит до конца памяти и начинает обнулять ячейки, в которых записано начало программы. Обнулив ячейку 004 (в которой находится команда обнуления), она фактически заменяет ее пустой командой, и обнуление прекращается.
5.7. Программа 7
Псевдопрограмма состоит всего из одной команды, расположенной в произвольной области памяти. С помощью этой программы реализуется работа микроЭВМ при реализации команд, задаваемых с помощью клавиатуры стенда.
Текст программы приведен в Таблице 9.
Таблица 9
|
Адреса |
Команды |
Мнемоника |
Комментарии команд |
|
H=100 L=200 |
166 |
HLT |
; Останов |
При вводе с клавиатуры команды JMP B2,B3 (код команды 303, 200, 100) в режиме отладки происходит запись в счетчик команд адреса 100 200, при выполнении командыHLTв режиме чтения программы из памяти происходит останов программы.
5.8. Программа 8
Программа позволяет проверить действия всех команд условных переходов.
Текст программы представлен в Таблице 10.
Таблица 10
|
Адрес |
Команда |
Мнемоника |
Комментарии |
|
000 |
061 |
LXISP |
; Инициализация указателя стека |
|
001 |
200 |
В2 |
|
|
002 |
000 |
В3 |
|
|
003 |
361 |
POPPSW |
; Извлечение из стека слова состояния программы |
|
004 |
3х2 |
х |
; х=0..7; одна из команд условного перехода |
|
005 |
000 |
В2 |
|
|
006 |
000 |
В3 |
|
|
007 |
166 |
HLT |
; Останов |
Перед выполнением программы в памяти по адресу H=000 L=200 записано число 002, соответствующее нулевому значению всех флагов в регистре признаков, а по адресу H=000 L=004 - число 302, определяющее код команды условного перехода по ненулевому результату JNZ.
При выполнении программы в пошаговом режиме осуществляется её циклическое выполнение, т.к. выполняется условие перехода (нулевое значение флага Zозначает ненулевой результат).
При изменении данных по адресу H=000 L=200 на число 102 регистр признаков содержит ненулевой бит знака, значения всех остальных флагов равны нулю. В результате такого изменения программа будет выполняться циклически, т.к. по прежнему выполняется условие перехода – ненулевой результат.
Если изменить содержимое ячейки с адресом H=000 L=004 на число 312, программа не будет выполняться циклически, поскольку соответствующее команде JZ(код 312) условие перехода по нулевому результату не выполняется.
Были проверены действия команд условных переходов для каждого из четырех контролируемых признаков результата (нуль, перенос, четность и знак). Переход по признаку межтетрадного переноса АС невозможен.
Коды команд условных переходов и варианты содержимого регистра признаков результата представлены в Таблице 11.
Таблица 11
|
Команда |
Данные по адресу L=004 |
Данные по адресу L=200 |
флаги признаков результата |
|
(коды команд условного перехода) |
(содержимое регистра признаков) |
s z ac p cy | |
|
НСУ |
322 |
002 |
0 0 0 0 0 |
|
СУ |
332 |
003 |
0 0 0 0 1 |
|
P0 |
342 |
002 |
0 0 0 0 0 |
|
PE |
352 |
006 |
0 0 0 1 0 |
|
P |
362 |
002 |
0 0 0 0 0 |
|
M |
372 |
202 |
1 0 0 0 0 |
Диаграммы, иллюстрирующие действие команд условного перехода по признаку нулевого и ненулевого результата JZиJNZ, представлены на Рис. 4 и Рис. 5 соответственно.


Рис. 3 Рис. 4
Замещение в программе команд условного перехода, записанных по адресу L=004, командами условного вызова и командами условного возврата возможно, если указывать в команде условного вызова адрес подпрограммы или если программа является подпрограммой программы более высокого уровня.
