Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет№7(asm).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
126.5 Кб
Скачать

Описание блоков программы:

  • БЛОК №1 (строки 25-27)

Запись регистров DS и AX в стек.

  • БЛОК №2 (строки 29-30)

Настройка сегментного регистра данных DS.

  • БЛОК №3 (строки 32-34)

Вывод на экран сообщения MES1 по функции 09H прерывания 21H (регистр DX – адрес выводимой строки с символом '$' на конце).

  • БЛОК №4 (строки 36-38)

Вывод на экран сообщения MES2 по функции 09H прерывания 21H (регистр DX – адрес выводимой строки с символом '$' на конце).

  • БЛОК №5 (строки 40-42)

Ввод с клавиатуры строки tabs из 20 символов (10 слов) по функции 0AH прерывания 21H. Регистр DX – буфер для вводимой строки, содержащий следующие байты:

1-й байт – размер буфера для ввода (формирует пользователь);

2-й байт – число фактически введенных символов (без учета символа 0DH);

3-й байт и далее – введенная строка с символом 0DH на конце.

  • БЛОК №6 (строки 44-46)

Вывод на экран сообщения MES3 по функции 09H прерывания 21H (DX – адрес выводимой строки с символом '$' на конце).

  • БЛОК №7 (строки 48-50)

Ввод с клавиатуры строки FAM из 20 символов (10 слов) по функции 0AH прерывания 21H.

  • БЛОК №8 (строки 52-54)

Подготовка регистров к проведению цикла сравнения строк FAM и TABS (сравнение ASCII-кодов символов) и записи результата в строку DIM.

  • БЛОК №9 (строки 56-66)

Проведение цикла сравнения строк FAM и TABS: строки сравниваются по словам (по 2 символа) и в случае совпадения ASCII-коды этих символов записываются в строку DIM. Если пары символов отличаются, то в строку DIM записывается 3030H (30H – код нуля).

  • БЛОК №10 (строки 68-75)

Очистка экрана путем его прокрутки вверх по функции 06H прерывания 10H

(CX=0000 – левый верхний угол экрана, DX=2580 – правый нижний угол экрана).

БЛОК №11 (строки 77-80)

Установка курсора в позицию 00:00 по функции 02H прерывания 10H (BH –страница, DH – строка, DL – столбец).БЛОК №12 (строки 82-84)

Вывод на экран сообщения MES4 по функции 09H прерывания 21H (DX – адрес выводимой строки с символом '$' на конце).

БЛОК №13 (строки 86-98)

Вывод строки DIM на экран с использованием процедуры PRINT, в которую передаются 2 параметра: регистр AX содержит ASCII-коды 2 символов, регистр BL – цветовой байт. Формат цветового байта (байт-атрибут):

Действие Мигание R G B Яркость R G B

Н омер бита 7 6 5 4 3 2 1 0

Фон Символ

Символы выводятся на экран парами, причем пары с нечетными номерами выделяются красным цветом, а пары с четными номерами отображаются на синем фоне.

БЛОК №14 (строка 105)

Запись регистра AX в стек.

  • БЛОК №15 (строки 107-110)

Вывод на экран символа по функции 09H прерывания 10H (ASCII-код символа хранится в AL, BH – номер страницы, CX – число повторений символа).

  • БЛОК №16 (строки 112-114)

Определение положения курсора по функции 03H прерывания 10H (результат записывается в регистр DX: DH – строка, DL – столбец).

  • БЛОК №17 (строки 116-119)

Сдвиг курсора на 1 позицию по функции 02H прерывания 10H (BH –страница, DH – строка, DL – столбец).

  • БЛОК №18 (строки 121-122)

Восстановление регистра AX из стека; обмен AH и AL для вывода на экран второго символа из AX.

  • БЛОК №19 (строки 124-126)

Вывод на экран символа по функции 09H прерывания 10H (ASCII-код символа хранится в AL, BH – номер страницы, CX – число повторений символа).

  • БЛОК №20 (строки 128-130)

Определение положения курсора по функции 03H прерывания 10H (результат записывается в регистр DX: DH – строка, DL – столбец).

  • БЛОК №21 (строки 132-135)

Сдвиг курсора на 2 позиции по функции 02H прерывания 10H (разделение пар символов 1 пробелом).

Вывод

Научились анализировать ход выполнения программы на языке Ассемблера при помощи отладчика TurboDebugger.