Федеральное агенство по науке и образованию
Красноярский Государственный Технический Университет
Лабораторная работа по ЦуиМП №1
Изучение языка ассемблера персональных компьютеров
вариант №15
выполнил: студент гр.Р52-4
Титов Ю. С.
проверил:
Сушкин И. Н.
Красноярск 2005
Цель: знакомство со структурой программы при программировании на языке ассемблера для персональных компьютеров, компилирование программы, отладка программы с помощью Turbo Debuger.
Задание: написать программу преобразования двухбайтового кода ASCII в соответствующее однобайтовое число.
1. Блок-схема программы.
2. Описание алгоритма.
В начале программы происходит считывание из памяти двух байтов кода ASCII и запись их в регистр dx. Далее для старшей и младшей части регистра выполняются одинаковые действия. Если dh(dl) больше 39h, то происходит преобразование кода в число А…F. В противном случае происходит преобразование в число 0…9. В результате выполнения этих операций младшие 4 разряда регистров dl и dh будут содержать числа, соответствующие коду ASCII. Для компоновки чисел в один байт регистр dh сдвигается на 4 разряда влево и складывается с регистром dl. Полученный результат записывается в память.
3. Листинг программы.
.model tiny
.386
.code
org 100h
main:
mov dx,chislo
cmp dh,39h
ja a_fh
sub dh,30h
jmp low_part
a_fh:
sub dh,37h
low_part:
cmp dl,39h
ja a_fl
sub dl,30h
jmp done
a_fl:
sub dl,37h
done:
shl dh,4
add dl,dh
mov n_chislo,dl
ret
chislo dw 3242h
n_chislo db 0
end main
4. Результат преобразования.
5. Отладка.
Для компиляции программы использовались программы Tasm.exe и Tllink.exe пакета Turbo Assembler. Отладка осуществлялась программой Turbo Debuger.
Вывод: в ходе лабораторной работы было произведено ознакомление со структурой программы языка ассемблера, а также с процессом её компиляции и отладки.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.