Лабораторная 4 (2 сем)
.docxСанкт-Петербургский политехнический университет Петра Великого
Институт компьютерных наук и технологий
Высшая школа интеллектуальных систем и суперкомпьютерных технологий
ЛАБОРАТОРНАЯ РАБОТА №4
«Составление ассемблерной программы вывода символов»
по дисциплине «Архитектура вычислительных систем»
Выполнил
студент гр. 3530903/80001 А. В. Шильникова
Руководитель Н. М. Вербова
«___» __________ 2021 г.
Санкт-Петербург
2021
Цель работы: изучить элементы и принципы процедуры трансляции программ.
Задачи:
1. Разработать программу на ассемблере, выдающую на дисплей строку текста
2. Составить комментарий к программе
3. Ввести программу и проверить ее работу
Код программы MESSAGE.COM в редакторе «WinHex»:
Дизассемблированный код программы:
BA 0B 01 |
mov dx, data16 (0B01h) |
Копирование значения 10B16 в регистр dx, где 0Bh – адрес символа, с которого начинается текст, а 100h – это префикс программного сегмента. 100h – начало COM программы. |
B4 09 |
mov ah, data8 (09h) |
Копирование значения 916 в регистр ah, где 09h – функция DOS вывода строки. На вход функции поступает значение из регистра dx – адрес символа, с которого начинается вывод строки, заканчивающейся символом $ (24h). |
CD 21 |
int n_proc (21h) |
Вызов обработчика прерываний. Номер вектора прерываний = 2116. Это прерывание служит главным входом большинства функций DOS. |
B4 4C |
mov ah, data8 (4Ch) |
Копирование значения 4С16 в регистр ah, 4С – функция DOS завершения программы. Возвращает управление от порожденного процесса его родителю |
CD 21 |
int n_proc (21h) |
Вызов обработчика прерываний. Номер вектора прерываний = 2116. |
Символы в кодировке ASCII |
||
48 |
|
Символ H Начало текстового сообщения. |
65 |
|
Символ e |
6C |
|
Символ l |
6C |
|
Символ l |
6F |
|
Символ o |
21 |
|
Символ ! |
20 |
|
Символ пробела |
54 |
|
Символ T |
68 |
|
Символ h |
69 |
|
Символ i |
73 |
|
Символ s |
20 |
|
Символ пробела |
69 |
|
Символ i |
73 |
|
Символ s |
20 |
|
Символ пробела |
61 |
|
Символ a |
20 |
|
Символ пробела |
74 |
|
Символ t |
65 |
|
Символ e |
78 |
|
Символ x |
74 |
|
Символ t |
20 |
|
Символ пробела |
65 |
|
Символ e |
78 |
|
Символ x |
61 |
|
Символ a |
6D |
|
Символ m |
70 |
|
Символ p |
6C |
|
Символ l |
65 |
|
Символ e |
2E |
|
Символ . |
0D |
|
Символ возврата каретки в крайнее левое положение на текущей строке |
0А |
|
Символ перехода на новую строку |
24 |
|
Символ $. Окончание текстового сообщения. |
Измененная программа с выводом моего имени
Вывод: в ходе выполнения лабораторной работы были изучен метод работы с дисплеем, функциями DOS и получены навыки дизассемблирования и использования HEX-редактора для чтения и редактирования байт-кодов программы.