Факультет информационных технологий и робототехники
Кафедра программного обеспечения вычислительной техники
и автоматизированных систем
Отчет по лабораторной работе №3
по дисциплине: ”Организация и функционирование ЭВМ”
на тему:
” Изучение команд сложения и вычитания ”
Выполнил: студент группы.107211
Бойко А.Д.
Принял: Новиков С.О.
Минск 2012
Цель работы: изучить форматы и правила работы с командами сложения и вычитания микропроцессора i8086.
Оборудование: IBM - совместимый персональный компьютер, работающий под управлением операционной системы, совместимой с MS-DOS®.
Программное обеспечение: Программа DEBUG.
1)Вычислить сумму элементов массива согласно варианту и переслать результат в элемент массива с заданным номером.
3-я цифра варианта
Элементы массива
результат в эл-т №
с
до
Текст программы:
mov ax,1000;AX<- 1000 непосредственно mov ds,ax;программируем начало сегмента данных на 1000 mov bx,100; mov cx,11;количество итераций для программы записи чисел в память mov ax,1878;запись в AX слова (1878) mov [bx],ax inc bx inc bx dec cx jnz 010e mov bx,106 mov cx,8;определяем количество итерация для программы сложении чисел mov ax,0 add ax,[bx+2];прибавляем к содержимому AX слова находящееся в памяти inc bx inc bx dec cx jnz 011e mov [110],ax;занесение в адрес 110 содержимое регистра DX
Результат сложения подчеркнут линией
2)Каждому студенту выдается 4-х значный вариант. Согласно этого варианта вычислить следующее выражение:
F = КОН1 оп1 (КОН2 оп2 Х оп3 Y) оп4 Z оп5 КОН3
ГдеКОН1, КОН2, КОН3 – числовые константы, согласно табл. 1
оп1, оп2, оп3, оп4, оп5 – операции сложения и вычитания согласно табл. 2
X, Y, Z– переменные, тип которых определяется согласно табл. 3
Числовые константы из табл. 1 берутся согласно первой цифре варианта, операции сложения и вычитания из табл. 2 – согласно второй цифре варианта, а размер и тип переменных – из табл. 3 согласно третьей цифре варианта.
Исходные данные хранятся в памяти с адреса 0900H, вычисление выражения производится на Ассемблере, выводимые результаты — располагаются в памяти с адреса 1000Н.
– unchar – 8 битн. без знака
– unlong – 32 битн.,без знака
Таблица №1
КОН1
КОН2
КОН3
Таблица №2
оп1
оп2
оп3
оп4
оп5
+
+
-
-
+
Таблица №3
X
Y
Z
un char
un long
un char
F=558+(87935+X-Y)-Z+12
X=33h
Y=1111h
Z=39h
Занесение данных в память:
mov ax,1000
mov ds,ax
mov bx,100
mov al,33
mov [bx],al ;заносим в память слово находящееся в AX
inc bx
mov ax,1111; запись в AX слова (1111)
mov [bx],ax ;заносим в память байт данных находящееся в AL
add bx,2
mov al,39
mov [bx],al ;заносим в память слово находящееся в AX
Результат подчеркнут линией
Текст программы:
movbx,100
movdx,7935;DX<-7935.Младшая часть числа 87935
movcl,8;CL<-8.Старшая часть числа 87935
adddx,ax ;прибавляем к содержимому 87935 содержимое AX.DX<-87935+33.
adccl,0 ;к старшей части числа 87935 прибавляем перенос CF.
movax,[bx];AX<-1111
subdx,ax;отнимаем от 87935 число 1111.DX<-87935+33-1111
sbbcl,0 ;от старшей части числа 87935 отнимаем перенос CF.
moval,[bx];AL<-39
cbw;содержимое AL конвертируем в слово.
subdx,ax;отнимаем от 87935 число 39.DX<-(87935+33-1111)-39.
sbbcl,0 ;от старшей части числа 87935 отнимаем перенос CF.
movax,588
adddx,ax;прибавляем к содержимому 87935 число 588.DX<-588+(87935+33-1111)-39.
adccl,0 ;к старшей части числа 87935 прибавляем перенос CF.
movax,12
adddx,ax;прибавляемк 87935 число 12.DX<-588+(87935+33-1111)-39+12
adсcl,0 ;к старшей части числа 87935 прибавляем перенос CF.
mov [1000],cl;занесение старшей части результата сложения и вычитания по адресу 1000.
mov [1001],dx;занесение младшей части результата сложения и вычитания в 1001