Изучение стандартных функций прерывания DOS. Знакомство со стандартными функциями

Страницы работы

Содержание работы

Федеральное государственное автономное

образовательное учреждение

высшего профессионального образования

«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

Институт Инженерной Физики и Радиоэлектроники

Кафедра Радиотехники

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №2

Изучение стандартных функций прерывания DOS

Преподаватель                                                ____________           подпись, дата

Студент РФ 09-10       050901135                  ____________               подпись, дата

Красноярск 2012

Цель работы:

Знакомство со стандартными функциями прерывания DOS, вывод информации на дисплей, ввод данных с клавиатуры и вывод на экран.

Задание:

Написать программу поиска чисел с «1» во 2-ом, 5-ом разрядах с вводом чисел с клавиатуры и выводом результата на экран.

Ход работы

Блок-схема программы:

Рисунок 1 – Блок-схема программы

Текст программы с комментариями:

;найти числа с "1" во 2м и 5м разрядах, среди введенных с клавиатуры

;3-х однобайтных 16-ричных чисел, вывести их на экран

cseg segment

assume CS:cseg,DS:dseg,ES:dseg,SS:dseg

.386

.387

begin:mov AX,dseg

xor BX,BX

mov CX,06            ;будет введено 6 цифр

mov SI,offset inmas

mov DI,offset outmas

M1:mov AH,01h              ;функция ввода одной цифры с клавиатуры

int 21h

mov [SI+BX],AL

inc BX

loop M1                 ;все 6 цифр введены в inmas

mov CX,03               ;начинаем преобразование из ASCII-кода

M6:mov AL,[SI]

sub AL,30h              ;очищаем от зоны 3

cmp AL,09h

jns M2

jmp M3

M2:sub AL,07h              ;если это была заглавная буква

M3:shl AL,04               ;переместить в старшую тетраду

inc SI

mov BL,[SI]

sub BL,30h

cmp BL,09h

jns M4

jmp M5

M4:sub BL,07h

M5:add AL,BL               ;полный байт

mov [DI],AL

inc DI

inc SI

loop M6                 ;все три числа записаны в 16-ричном коде

mov CX,03               ;начало поиска заданных чисел

mov DI,offset outmas

MET2:mov BL,[DI]           ;проверяем число

and BL,24h

cmp BL,24h

je MET3

inc DI

loop MET2

MET3:mov BL,[DI]           ;если условие выполнено

mov AL,BL             ;разбиваем на тетрады

and AL,0F0h

shr AL,04             ;переводим в ASCII-код и выводим на экран

cmp AL,09

jns MET4

add AL,30h            ;если это цифра

mov DL,AL             ;символ - в DL

mov AH,02h            ;функция вывода на экран

int 21h

jmp MET5

MET4:add AL,37             ;если это буква

mov DL,AL

int 21h

MET5:mov AL,BL

and AL,0Fh

cmp AL,09

jns MET6

add AL,30h

mov DL,AL

int 21h

inc DI

loop MET2

jmp MET7

MET6:add AL,37h

mov DL,AL

int 21h

inc DI

loop MET2

jmp MET7

MET7:mov AX,4C21h

int 21h

cseg ends

dseg segment use16

inmas db 06 dup (0)

outmas db 03 dup (0)

dw 100 dup (0)

STEKN LABEL WORD

dseg ends

end begin

Окно DOS по завершении программы:

Рисунок 2 – Вид окна DOS после завершения программы

На рисунке 2 в окне DOS верхняя строка представляет собой последовательность из записанных подряд трех двухразрядных шестнадцатеричных чисел, вводимых с клавиатуры и образующих входной массив, а так же следующих за ними двух разрядных шестнадцатеричных чисел, представляющих собой выходной массив, выводимый на монитор программой.

Запишем числа 2-го массива в двоичной форме:

24 h = 00100100 b;

35 h = 00110101 b;

Исходя из записи, можно убедиться в том, что числа, записанные во 2-ой массив, удовлетворяют условию задания.

Вывод

В ходе лабораторной работы было проведено ознакомление со стандартными функциями прерывания DOS и с принципом написания программы для ввода входных данных с клавиатуры и вывода на экран выходных данных.

Похожие материалы

Информация о работе

Предмет:
Радиотехника
Тип:
Отчеты по лабораторным работам
Размер файла:
228 Kb
Скачали:
0