Лабораторная работа №2 / Отчет по предмету Машинно-Ориентированное программирование
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ КЫРГЫЗСКОЙ РЕСПУБЛИКИ
КЫРГЫЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ ИМ. И. РАЗЗАКОВА
Отчет
Бишкек 2020
Мой вариант: Построить слово, каждый бит которого равен I или 0 в зависимости от того совпадают ли старшие триады одноименных байтов массивов А и В, состоящие из 16 элементов каждый.
Код:
include io.asm
stack1 segment
db 256 dup(?)
stack1 ends
data segment
A dw 16 dup(5,1,2,3,4,5,6,7,8,9,4,3,9,1,2,7)
B dw 16 dup(0,1,2,0,4,0,5,7,8,9,4,3,9,1,3,7)
;0110100111111101
data ends
code segment
start:
ASSUME SS:STACK1, DS: Data, CS:Code
mov ax,data
mov ds,ax
mov cx,16
mov si,0
mov di,0
mov bx,0
a2: mov dx,0
mov ax,0
mov ax,A[si]
and ax,1110000000000000b
mov dx,B[si]
and dx,1110000000000000b
cmp ax,dx
je a1
shr bx,1
jmp h
a1: or bx,1000000000000000b
shr bx,1
h:add si,2
loop a2
outint bx
mov ah,10h
int 16h
mov ah,4ch
int 21h
code ends
end start
Фото результата:
Получаем результат: 32767, переводим в двоичный код и получаем число в 2-ой системе счисления: 111111111111111
32767 = 1111111111111112