You are on page 1of 5

Лабораторна робота 4

студента групи ТСД-23 Чирви Богдана

ОПЕРАЦІЇ ДОДАВАННЯ ЦІЛИХ ЧИСЕЛ

Мета: дослідження властивостей виконання операцій


додавання в процесорах х86.
Постановка задачі: Розробити на асемблері програму
обробки масивів цілих чисел з урахуванням умов згідно
варианту.
F1:odds; F2:=55(hex);

Виконання:
00011010 26 1A
01001110 78 4E
01101000 104 68(hex)=104(10cч.)
Ознака OF - помилки немає, так як HEX-код співпадає з числом
Ознака CF =0, так як після додавання, розрядність числа не була
підвищенна
Ознака SF=0, так як число додатнє

Операнд 1 2D 2B 1A 43 DF 13
Операнд 2 DC B6 4E C0 18 4A
Результат 09 E1 68 03 F7 5D
Знак S1 0 0 0 0 1 0
Знак S2 1 1 0 1 0 0
Ознака SF 0 1 0 0 1 0
Ознака CF 1 0 0 1 0 0
Ознака OF 0 0 0 0 0 0

Контрольний розрахунок

F1: Є масив Z1 у якому наступні елементи : 9(09h)[0] ,


-31(E1h)[1] , 104(68h)[2] , 3(03h)[3] , -9(F7h)[4] , 93(5Dh)[5].
Потрібно знайти різницю непарних елементів цього масиву.
Так як потрібно знайти різницю елементів з непарними
індексами, такі будуть:
-31(E1h)[1], 3(03h)[3], 93(5Dh)[5].
0-(-31)-3-93 = -65 = BF(16сч.)
F2: Є масив Z1 у якому наступні елементи : 9(09h)[0] ,
-31(E1h)[1] , 104(68h)[2] , 3(03h)[3] , -9(F7h)[4] , 93(5Dh)[5].
Потрібно додати до масиву G1 елементи, які дорівнюють
55h=85.
Код

TITLE <Лаб22.Пересилка даних - байти>


.386
.model flat, stdcall
option casemap: none
.data
X1 db 45,43,26,67,-33,19
Y1 db -36,-74,78,-64,24,74
LEN EQU $ -X1
Z1 db [LEN/2] DUP(255)
G1 db [LEN/2] DUP(255)
S1 db 0
S2 db 0
.code
_lab22:
mov cx, [LEN/2]
mov edi,0
mov esi,0
mov si,0
mov di,0
mov bl,2
m1: ;22
mov al, [X1+si]
add al,[Y1+si]
mov [Z1+si],al
add si,1
sub cx,1
cmp cx,0
je ut
jmp m1
ut:
mov al,0
mov di,1
mov cx, [LEN/4]
f1:
mov al,[Z1+di];завантажуємо число в аккумулятор
sub S1,al;віднімаємо від різниці
add di,2;корегуємо індекс(віднімаємо лише числа з
непарним індексом)
sub cx,1;корегуємо лічильник
cmp cx,0
je f2
jmp f1
f2:
mov si,0
mov di,0
mov cx, [LEN/2]
f3:
mov al,[Z1+si];завантажуємо число у аккумулятор
cmp al, 55h;порівнюємо з 55(hex)
jne f4;якщо не дорівнює 55(hex)
mov [G1+di],al;додаємо до масиву
add S2,1
add di,1
f4:
add si,1
sub cx,1
cmp cx,0
je u1
jmp f3
u1:
ret
end _lab22
Знімки:

Висновок:
Була розроблена програма, яка додає елементи масивів,
перебирає їх та знаходить різницю обраних елементів

You might also like