Лабораторна робота №1
Комарьов Р. Ю.
Цель: Придбання і закріплення практичних навичок у складанні і налагодженні програм мовою асемблера, що обробляє дані, організовані у виді масивів.
Індивідуальне завдання: Задані масиви А і В по N = 50 елементів (констант типу WORD). Визначити кількість пар елементів, що задовольняють умові Ai > Bi.
Вибір перемінних:
K |
|
A |
начало масиву A |
B |
начало масиву B |
N |
кількість елементів у масивах A і B |
S1 |
начало рядка повідомлення про запуск програми |
S2 |
начало рядка повідомлення про завершення програми |
Алгоритм:
Текст програми ( laba1.asm ):
data segment
k dw 0 ;перемінна лічильник кількості шуканих пар чисел
a dw 10 dup (001Eh,0014h,0012h,001Ah,0018h) ;инициализируем перший масив А
b dw 10 dup (000Eh,0004h,0002h,000Ah,0008h) ;инициализируем другий масив У
n dw 50 ;колличество елементів у масивах
s1 db 'start',10,13,'$' ;рядок початку програми
s2 db 'stop',10,13,'$' ;рядок кінця програми
data ends
code segment
assume cs:code,ds:data
m0: mov ax,data
mov ds,ax
mov ah,9h ; Висновок
mov dx,offset s1 ; трасуючого повідомлення
int 21h ; про запуск програми
xor ax,ax
mov si,ax
mov bx,n ;підготовка регістрів до пошуку
mov k,ax
mov dx,ax
dec si
m1:
inc si
cmp bx,si
je m2
mov ax,a[si]
mov dx,b[si] головний цикл, що визначає колличество шуканих пар елементів
cmp dx,ax
jge m1
inc k
jmp m1
m2:
mov ah,9h ; Висновок
mov dx,offset s2 ; трасуючого повідомлення
int 21h ; про завершення програми
mov ah,4ch ; Вихід
int 21h ; у DOS
code ends
end m0
Результати роботи програми:
Дамп пам'яті сегмента даних (перемінної k – власне шукана кількість пара), стан регістрів і прапорів до початку основних обчислень.
AX=15CB BX=0000 CX=011C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=15CB ES=15BB SS=15CB CS=15D9 IP=0005 NV UP EI PL NZ NA PO NC
15D9:0005 B409 MOV AH,09
-d ds:0 2
15CB:0000 00 00 1E ...
Стан регістрів, прапорів процесора і дамп пам'яті сегмента даних (перемінної к):
AX=15CB BX=0000 CX=011C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=15CB ES=15BB SS=15CB CS=15D9 IP=0005 NV UP EI PL NZ NA PO NC
15D9:0005 B409 MOV AH,09
-d ds:0 2
15CB:0000 32 00 1E 2..
Висновок: виконавши дану лабораторну роботу я на практиці придбав і закріпив знання в складанні і налагодженні програм асемблера, що обробляють дані, організовані у виді масивів. Також повторив способи застосування безлічі команд мікропроцесора, таких як порівняння, переходи, переміщення даних і т.п.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.