Робота з масивами мовою асемблера для ПЕОМ типу IBM PC/XT/AT

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

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

Лабораторна робота №1

Виконав студент гр. АП-31б

Комарьов Р. Ю.

Тема: «Робота з масивами мовою асемблера для ПЕОМ типу IBM PC/XT/AT»

Цель: Придбання і закріплення практичних навичок у складанні і налагодженні програм мовою асемблера, що обробляє дані, організовані у виді масивів.

Індивідуальне завдання: Задані масиви А і В по 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..

Висновок: виконавши дану лабораторну роботу я на практиці придбав і закріпив знання в складанні і налагодженні програм асемблера, що обробляють дані, організовані у виді масивів. Також повторив способи застосування безлічі команд мікропроцесора, таких як порівняння, переходи, переміщення даних і т.п.

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

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