Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб№1(assembl).doc
Скачиваний:
3
Добавлен:
13.07.2019
Размер:
167.94 Кб
Скачать

3

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

УХТИНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА ИСТ

Лабораторная работа №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

Протокол выполнения программы:

  1. Запуск программы и ввод исходной строки

  1. Конец работы программы, вывод результата.

Задание №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

Протокол выполнения программы: