Робота з масивами мовою асемблера для ПЭВМ типу ІBM PC/XT/AT

Страницы работы

4 страницы (Word-файл)

Содержание работы

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

Тема: Робота з масивами  мовою асемблера для ПЭВМ типу ІBM PC/XT/AT

Мета: Придбання і закріплення практичних навичок у складанні і

налагодженні програм  мовою асемблера, що обробляють дані, організованні у виді масивів .

Індивідуальне завдання:

5. Задано масиви А и В по N = 50 елементів (констант типу WORD).

Визначити кількість пар елементів, що задовольняють умові

Aі > Bі.

Хід виконання лабораторної роботи.

Текст програми на мові Assembler:

title lab4

stc       segment stack

dw 128 dup(?)

stc       ends

data segment

a dw  1, 8, 5

b dw  5, 5, 12

kol dw ?

data ends

code segment

assume cs:code,ds:data

m0: mov ax,data

    mov ds,ax

    mov cx,3

    xor dx, dx

m1: mov ax,a[si]

    cmp ax, b[si]

    jl k1

    inc dx

k1:   

    add si, 2

    loop m1

    mov kol, dx

    cmp dx, 0

    jne ifnzero ;если кол-во не равно 0, то переход

    mov ah, 2h

    mov dx, '0'

    int 21h

    jmp k4 ; переход к завершению

ifnzero:       

    mov cx, dx

k3:

    mov ah, 2h

    mov dx, '*'

    int 21h

    loop k3             

k4:

    mov ah,4ch               ; Выход

    int 21h                  ; в DOS

code ends

end m0

Вибір перемінних

A – початок масиву а

В – початок масив

Kol - кількість пар елементів, що задовольняють умові Aі > Bі

Результати роботи програми:

* // тільки одна пара

Контроль процесу виконання програми з використанням отладчика

і застосуванням трасуючих повідомлень :

///--///--///--///--///--///--///--///--///--///--///--///--///--///--///--

AX=0008  BX=0000  CX=0002  DX=0000  SP=0100  BP=0000  SI=0002  DI=0000

DS=0BB9  ES=0B99  SS=0BA9  CS=0BBA  IP=0012   NV UP EI PL NZ NA PE NC

0BBA:0012 7C01          JL      0015

-t

AX=0008  BX=0000  CX=0002  DX=0000  SP=0100  BP=0000  SI=0002  DI=0000

DS=0BB9  ES=0B99  SS=0BA9  CS=0BBA  IP=0014   NV UP EI PL NZ NA PE NC

0BBA:0014 42            INC     DX

-t

AX=0008  BX=0000  CX=0002  DX=0001  SP=0100  BP=0000  SI=0002  DI=0000

DS=0BB9  ES=0B99  SS=0BA9  CS=0BBA  IP=0015   NV UP EI PL NZ NA PO NC

0BBA:0015 83C602        ADD     SI,+02

-t

AX=0008  BX=0000  CX=0002  DX=0001  SP=0100  BP=0000  SI=0004  DI=0000

DS=0BB9  ES=0B99  SS=0BA9  CS=0BBA  IP=0018   NV UP EI PL NZ NA PO NC

0BBA:0018 E2F0          LOOP    000A

///--///--///--///--///--///--///--///--///--///--///--///--///--///--///--

Тут можна побачити, що при виконанні другої ітерації циклу вміст регістру DX став 1.

Стан області даних після виконання програми :

-d ds:200

0B99:0200  01 00 08 00 05 00 05 00-05 00 0C 00 01 00 00 00

0B99:0210  B8 B9 0B 8E D8 B9 03 00-33 D2 8B 84 00 00 3B 84

0B99:0220  06 00 7C 01 42 83 C6 02-E2 F0 89 16 0C 00 83 FA

0B99:0230  00 75 0A B4 02 BA 30 00-CD 21 EB 0C 90 8B CA B4

0B99:0240  02 BA 2A 00 CD 21 E2 F7-B4 4C CD 21 E8 6C 15 83

0B99:0250  C4 02 EB 86 E8 B5 32 E9-CA FE C6 86 FA FD 00 E9

0B99:0260  6E FE 5E 8B E5 5D C3 55-8B EC 83 EC 08 56 A1 3C

0B99:0270  65 48 50 B8 01 00 50 E8-84 15 83 C4 04 89 46 FC

Тут після виконання програми показан вміст пам’яті. Спочатку ідуть єлементу двох масивів, а потім змінна kol – кількість пар елементів, що задовольняють умові
Aі > Bі

Висновок:

При виконанні работи ознайомилися:

   - з визначенням і ініціалізацією даних, організованих у виді

масивів;

   - з режимами адресації даних;

   - з організацією циклів для роботи з масивами;

   - з організацією розгалуження в ассемблерной програмі;

   - з застосуванням трасуючих повідомлень для контролю процесу

виконання програми;

   - з використанням отладчика для контролю процесу виконання

програми.

Похожие материалы

Информация о работе