При выполнении программы в пошаговом режиме были отслежены изменения содержимого программно-доступных регистров A, H, L и ячейки памяти 8600h
В качестве тестового значения по адресу 8500h было помещено число 5Ah. Результатом выполнения программы стало число A5h, расположенное по адресу 8600h.
3. Разработка и исследование программы увеличения на 5 числа, записанного по адресу 8600h, и записи результата по адресу 8601h.
Листинг разработанной программы представлен ниже:
Адрес |
Код |
Мнемокод |
Примечание |
8400h 8401h 8402h 8403h 8404h 8405h 8406h 8407h 8408h |
3Ah 00h 86h C6h 05h 32h 01h 86h E7h |
LDA 00h 86h ADI 05h STA 01h 86h RST 4 |
Запись в аккумулятор числа, расположенного по адресу 8600h Прибавить к содержимому аккумулятора число 05h Запись числа из аккумулятора в ячейку с адресом 8601h Конец и вызов монитора. |
При выполнении программы в пошаговом режиме были отслежены изменения содержимого программно-доступного регистра A и ячейки памяти 8601h
В качестве тестового значения по адресу 8600h было помещено сначала число 05h, а затем AEh. Результатом выполнения программы стало: для 05h число 0Ah, для AEh число B3h расположенное по адресу 8601h.
4. Разработка и исследование программы сложения двух чисел, записанных по адресам 8600h и 86A0h и записи результата по адресу 8601h.
Листинг разработанной программы представлен ниже:
Адрес |
Код |
Мнемокод |
Примечание |
8400h 8401h 8402h 8403h 8404h 8405h 8406h 8407h 8408h 8409h 840Ah |
3Ah 00h 86h 21h A0h 86h 86h 32h 01h 86h E7h |
LDA 00h 86h LXI A0h 86h ADD M STA 01h 86h RST 4 |
Запись в аккумулятор числа, расположенного по адресу 8600h Запись в регистровую пару HL число 86A0h (A)+((HL))=>A Запись числа из аккумулятора в ячейку с адресом 8601h Конец и вызов монитора. |
При выполнении программы в пошаговом режиме были отслежены изменения содержимого программно-доступных регистров A, H, L и ячейки памяти 8601h.
В качестве первого тестового значения по адресу 8600h было помещено число 08h, а по адресу 86A0h - число C0h. Результатом выполнения программы стало число C8h, расположенное по адресу 8601h. В качестве второго тестового значения по адресу 8600h было помещено число 2Eh, а по адресу 86A0h - число A5h. Результатом выполнения программы стало число D3h, расположенное по адресу 8601h.
В случае, если результат сложения превышает значение FFh, устанавливается флаг переноса С на панели УОУ.
5. Разработка и исследование программы сравнения чисел в адресах 8600h и 8601h и записи большего из них в ячейку 8602h.
Листинг разработанной программы представлен ниже:
Адрес |
Код |
Мнемокод |
Примечание |
8400h 8401h 8402h 8403h 8404h 8405h 8406h 8407h 8408h 8409h 840Ah 840Bh 840Ch 840Dh 840Eh |
3Ah 00h 86h 21h 01h 86h BEh F2h 0Bh 84h 7Eh 32h 02h 86h E7h |
LDA 00h 86h LXI 01h 86h CMP M JP 0Bh 84h MOV A,M STA 02h 86h RST 4 |
Запись в аккумулятор числа, расположенного по адресу 8600h Запись в регистровую пару HL число 8601h Сравнение A и [HL] Переход по адресу 840Bh, если A>[HL] Получить число из [HL] в A Запись числа из аккумулятора в ячейку с адресом 8602h Конец и вызов монитора. |
При выполнении программы в пошаговом режиме были отслежены изменения содержимого программно-доступных регистров A, H, L и ячейки памяти 8602h.
В качестве первого тестового значения по адресу 8600h было помещено число 5Ah, а по адресу 8601h - число A5h. Результатом выполнения программы стало число A5h, расположенное по адресу 8602h. В качестве второго тестового значения по адресу 8600h было помещено число 02h, а по адресу 8601h - число 01h. Результатом выполнения программы стало число 02h, расположенное по адресу 8602h.
6. Детальное описание обработки процессом пары команд: LDA 8600h / ADI 05h.
Команда LDA 8600h осуществляет пересылку 1-ого байта информации из ячейки памяти с адресом 8600h в регистр-аккумулятор А. Длина команды: 3 байта. Количество занимаемых машинных циклов: 4 цикла. Количество занимаемых машинных тактов: 13 тактов. Воздействие на флаги: не воздействует.
Выполнение команды по циклам:
1. Извлечение кода команды - цикл M1 (4 такта);
2. Увеличение программного счетчика на 1 и чтение из памяти младшего байта адреса 00h (3 такта);
3. Увеличение программного счетчика на 1 и чтение из памяти старшего байта адреса 86h (3 такта);
4. Чтение байта данных из памяти с адресом 8600h (3 такта.).
Команда ADI 05h осуществляет сложение содержимого регистра-аккумулятора А с непосредственным операндом 05h. Длина команды: 2 байта. Количество занимаемых машинных циклов: 2 цикла. Количество занимаемых машинных тактов: 7 тактов. Воздействие на флаги: воздействует на флаги S, Z, AC, P, CY.
Выполнение команды по циклам:
1. Извлечение кода команды - цикл M1 (4 такта);
2. Увеличение программного счетчика на 1 и чтение из памяти непосредственного операнда 05h (3 такта);
Вывод.
В ходе проведения лабораторной работы было рассмотрено выполнение отдельных команд и простых программ с применением различных методов адресации. Разработаны программы:
- увеличения числа, записанного по адресу 8600h и записи результата по адресу 8601h.
- сложения двух чисел, записанных по адресам 8600h и 86A0h и записи результата по адресу
8601h.
- сравнения чисел в адресах 8600h и 8601h и записи большего из них в ячейку 8602h.
Во время отладки были выявлены и устранены все ошибки, встретившиеся во время выполнения. При выполнении программ в пошаговом режиме были отслежены изменения содержимого программно-доступных регистров и ячеек памяти.
А также детально описана обработка процессом пары команд: LDA 8600h / ADI 05h.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.