Складання і налагодження програм мовою ассемблера, що обробляє дані, організовані у виді масивів

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

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

Тема лабораторної роботи:

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

Ціль роботи

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

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

    мовою ассемблера розробити і налагодити програму рішення наступної задачі :

       Варіант 16

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

 Структура масиву А :

                       |X1|Y1|X2|Y2|............|

 Сформувати масив У з номерів пар елементів, для яких

 виконується умова Xi = Yi .        

4. Розробка алгоритму рішення задачі

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

                                                 Таблиця 1

                Перемінні програми

________________________________________________________________________

|                  |                                                    |

|  ІМ'Я ПЕРЕМІННОЇ |          ПРИЗНАЧЕННЯ ПЕРЕМІННОЇ                    |

|__________________|____________________________________________________|

|                  |                                                    |

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

|        b         | початок масиву B                                   |

|        textb     | початок рядка повідомлення про запуск програми     |

|        texte     | початок рядка повідомлення про завершення програми |

|        n         | кількість у эл-ов масиву                           |

|__________________|____________________________________________________|

4.2. Схема й опис алгоритму рішення задачі

 


 5. Текст програми

          title    lab_2

          page     ,132

stc       segment  stack

          db       128 dup (?)

tos       label    word

stc       ends

dats      segment

A         dw       1,1,2,3,5,5,7,8

B         dw       8 dup (65535)

textb     db       'begin lab_2',0ah,0dh,'$'

texte     db       'end lab_2',0ah,0dh,'$'

n         dw       8

dats      ends

cods      segment

                   assume   cs:cods,ds:dats,ss:stc

beg:      mov      ax,stc

          mov      ss,ax

          mov      ax,dats

          mov      ds,ax

          mov      ah,9h       ;  Вывод

          lea      dx,textb    ; сообщения

          int      21h         ; на экран

          xor      si,si

          xor      di,di

          mov      cx,n

          shr      cx,1

m1:

          mov      ax,A[di]

          mov      bx,A[di+2]

          cmp      ax,bx

          jnz      m2

          shl      di,1

          shl      di,1

          mov      B[si],di

          shr      di,1

          shr      di,1

          add      si,2

m2:       add      di,4

          loop     m1

          mov      ah,9h        ;  Вывод

          lea      dx,texte     ; сообщения

          int      21h          ; на экран

          mov      ah,4ch       ;  Возврат

          int      21h          ; в систему

cods      ends

          end      beg


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

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

-d ds:0

14D8:0000  01 00 01 00 02 00 03 00-05 00 05 00 07 00 08 00   ................

14D8:0010  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF   ................

14D8:0020  62 65 67 69 6E 20 6C 61-62 5F 32 0A 0D 24 65 6E   begin lab_2..$en

14D8:0030  64 20 6C 61 62 5F 32 0A-0D 24 08 00 00 00 00 00   d lab_2..$......

14D8:0040  B8 D0 14 8E D0 B8 D8 14-8E D8 B4 09 8D 16 20 00   .............. .

14D8:0050  CD 21 33 F6 33 FF 8B 0E-3A 00 D1 E9 8B 85 00 00   .!3.3...:.......

14D8:0060  8B 9D 02 00 3B C3 75 0F-D1 E7 D1 E7 89 BC 10 00   ....;.u.........

14D8:0070  D1 EF D1 EF 83 C6 02 83-C7 04 E2 E0 B4 09 8D 16   ................

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

-d ds:0

14D8:0000  01 00 01 00 02 00 03 00-05 00 05 00 07 00 08 00   ................

14D8:0010  00 00 20 00 FF FF FF FF-FF FF FF FF FF FF FF FF   .. .............

14D8:0020  62 65 67 69 6E 20 6C 61-62 5F 32 0A 0D 24 65 6E   begin lab_2..$en

14D8:0030  64 20 6C 61 62 5F 32 0A-0D 24 08 00 00 00 00 00   d lab_2..$......

14D8:0040  B8 D0 14 8E D0 B8 D8 14-8E D8 B4 09 8D 16 20 00   .............. .

14D8:0050  CD 21 33 F6 33 FF 8B 0E-3A 00 D1 E9 8B 85 00 00   .!3.3...:.......

14D8:0060  8B 9D 02 00 3B C3 75 0F-D1 E7 D1 E7 89 BC 10 00   ....;.u.........

14D8:0070  D1 EF D1 EF 83 C6 02 83-C7 04 E2 E0 B4 09 8D 16   ................

7. Висновки по роботі.

   У роботі ознайомилися:

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

масивів;

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

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

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

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

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

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

програми.

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

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