МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
УХТИНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА ИСТ
Лабораторная работа №1 Дисциплина: «Организация вычислительных систем»
Выполнил студент группы ИСТ-11
Гадионов А.В.
Проверил преподаватель кафедры ИСТ
Куделин А.Г.
УХТА, 2011
Задание №1
Постановка задачи: Разработать программу, которая заменяет строчные символы на заглавные в введенной строке.
Исходные данные: Строка размером не более 9 символов.
Результат: Исходная строка записанная только заглавными буквами.
Для замены сточного символа на заглавный, необходимо изменить пятый бит ASCII кода символа с 1 на 0.
Листинг программы:
masm
model small
.data
max db 10
len db 0
str1 db 10 dup (' ')
eos1 db 10, 13, '$'
.stack
db 256 dup ('?')
.code
main proc
mov ax,@data
mov ds,ax
mov es, ax
mov ah, 0ah
mov dx, offset max
int 21h
mov cx, 9
m2:
mov bx, offset str1
add bx, cx
mov al, [bx]
cmp al,10
je m1
cmp al,13
je m1
and al,11011111b
mov [bx], al
dec cx
cmp cx, 0
jns m2
mov ah,09h
mov dx,offset str1
int 21h
mov ax,4c00h
int 21h
m1: dec cx
mov [bx],20h
jmp m2
main endp
end main
Протокол выполнения программы:
Запуск программы и ввод исходной строки
Конец работы программы, вывод результата.
Задание №2
Постановка задачи: Разработать программу, которая производит реверс введенной строки.
Исходные данные: Строка размером не более 9 символов.
Результат: Исходная строка записанная в обратном порядке.
Чтобы произвести реверс строки, нужно выводить по одному символу, начиная с конца строки. Посимвольный вывод осуществляется с помощью прерывания BIOS 02h int 21h.
Листинг программы:
masm
model small
.data
max db 10
len db 0
str1 db 12 dup (' ')
str2 db 12 dup (' ')
eos1 db 10, 13, '$'
.stack
db 256 dup ('?')
.code
main proc
mov ax,@data
mov ds,ax
mov es, ax
mov ah, 0ah
mov dx, offset max
int 21h
mov cx, 9
m1:
mov bx, offset str1
add bx,cx
mov al, [bx]
mov dl,al
mov ah,02h
int 21h
dec cx
cmp cx, 0
jns m1
mov ax,4c00h
int 21h
main endp
end main
Протокол выполнения программы: