Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМСиС_лаборАА.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
272 Кб
Скачать
☆

Необходимые пояснения.

При написании программы ввода информации с клавиатуры предполагается использование интерфейса прикладных программ (API), обеспечиваемого операционной системой. Для обращения к функциям интерфейса в языке ассемблера используются программные прерывания, задаваемые командой INT. Номер 01h вызываемой функции ввода данных с клавиатуры необходимо задать в регистре AH. После нажатия клавиши, помеченной буквенно-цифровым символом, осуществляется размещение ASCII-кода символа в регистре AL.

Возможный вариант программы ввода с клавиатуры 16-ти битового двоичного числа приведен ниже.

TITLE VVOD ввод 16 бит двоичного числа, начиная со старших.

.Model Small

.STACK 100h

;Public VVOD

.data

object dw ?

message db 10,13,’ввод очередного бита $’

.code

VVOD:

mov ax,@data

mov ds,ax

mov object,0

lea di,object

mov cx,16

vv_0_1:

mov ah,9

lea dx,message

int 21h

mov ah,1

int 21h

cmp al,31h

jz vv1

cmp al,30h

jz vv0

jmp vv_0_1

vv1:

stc

rcl word ptr[di],1; di содержит адрес переменной object, используемой для хранения вводимого числа.

jmp loo

vv0:

clc

rcl word ptr[di],1

loo:

loop vv_0_1

mov ax,4C00h

int 21h

end VVOD

Требуется отладить приведенную программу и в отчете дать комментарий каждой строки приведенного выше текста программы. Затем необходимо модифицировать приведенный текст программы таким образом, чтобы модифицированная программа осуществляла ввод 8-ричного числа, состоящего из трех разрядов. Выполнить отладку модифицированной программы и составить отчет о работе.

Лабораторная работа 8. Вывод на экран результатов вычислений.

Цель: освоение средств операционной системы для осуществления вывода данных.

Необходимые пояснения.

Ниже приведен возможный вариант программного модуля вывода на экран результата вычисления, сохраняемого в переменной rezmask в двоичном коде. На экран результат вычисления выводится в виде двух разрядов десятичного числа.

TITLE VIVOD вывод двоичного результата в виде двух разрядов десятичного числа.

.Model Small

.STACK 100h

;extrn resmask:byte ;в resmask хранится выводимый результат (двоичное число)

;Public VIVOD

.data

resmask db 14

mes1 db 10,13,’RESULT: $’

.code

VIVOD:

mov ax,@data

mov ds,ax

cmp resmask,10; в переменной resmask задается значение не более 19

jb m1

sub resmask,10

mov dl,’1’

mov ah,2

int 21h

m1:

mov dl,resmask

or dl,30h

mov ah,2

int 21h

mov ax,4C00h

int 21h

End VIVOD

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

Лабораторная работа 9. Объединение программных модулей ввода и вывода данных.

Цель: закрепление навыков разработки многомодульной программы.

Предполагается выполнение четырех этапов, пояснение которых приведено выше (смотри описание лабораторной работы 8).