лаб12
.docx
ЛАБОРАТОРНА РОБОТА №12
Тема: Обробка масивів. Програмування перетворень у різні форми подання.
Мета: Ознайомлення з засобами перетворення даних із зовнішньої символьної форми подання у внутрішню, і навпаки, на прикладі обробки масивів цілочислових даних.
Завдання:
12. Знайти і видалити з упорядкованого масиву A[m] елемент, що вводиться з клавіатури.
Лістинг програми:
data segment
rez db 13,10,'Rez: $'
simv db 'Vvedit simvol: $'
mas db 1,2,1,4,5,1,7,8,9
len = $-mas
mas1 db 20 dup (' ')
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
mov dx, offset simv
mov ah, 9
int 21h
mov ah, 1
int 21h
mov bh,al
sub bh,30h
lea si,mas
mov di,si
mov cx,len
lp: lodsb
cmp cx,0
je ex
dec cx
cmp al,bh
jz la
stosb
cmp al,$
jnz lp
la:
inc bl
jmp lp
ex:
lea si,mas
mov di,si
mov cx,len
sub cl,bl
mov dx, offset rez
mov ah,9
int 21h
l: lodsb
cmp cx,0
je exit
add ax,30h
mov dl, al
mov ah, 2
int 21h
loop l
exit:
mov ax,4c00h
int 21h
ends
end start
Рисунок 1 – Результат виконання
Завдання:
2.Написати програму, яка реалізує оброблення елементів двовимірних масивів a[n][m], b[n][m] (n, m – довільне). Результатом є вектор c[n],
Лістинг програми:
data segment
string db "Eto massiv 3: ","$"
A db 1,2,3,4
B db 4,4,4,1
C db 10 dup(?)
ends
stack segment
mes db 4 dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
mov ds, ax
mov si, 0
mov cx, 4
M1:
mov al, [A+si]
mul [B+si]
mov [C+si], al
inc si
loop M1
mov si, 0
mov cx, 4
Mm:
mov bl,4
mov al, [C+si]
div bl
mov [B+si], al
inc si
loop Mm
mov cx, 4
mov si, 0
mov DX, offset string
mov AH, 9h
int 21h
M2:
xor ah, ah
mov al, [B+si]
aam
add ax, 3030h
mov dl, ah
mov dh, al
mov ah, 02
int 21h
mov dl, dh
int 21h
mov ah, 2h
mov dl, ' '
int 21h
inc si
loop M2
mov ah, 0
int 16h
mov ah, 4ch
int 21h
ends
end start
Рисунок 2 – Результат виконання