Написання та відладка програм з використанням типу даних “структура” мовою асемблера

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

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

Мета роботи: Здобуття та закріплення практичних навичок у написанні та відладці програм з використанням типу даних “структура” мовою асемблера.

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

  Задана послідовність структур. Структура має поля по характеристиці студентських груп: назва групи, середня оцінка успішності, номер курсу. Використати «за вмовчуванням» в полі Нназва групи -  назву своєї групи.

Знайти середню успішність всіх груп.

2.Алгоритм вирішення

   Спочатку до регістру BL по черзі заносяться всі середні оцінки (всіх груп) і вони по черзі додаються до регістру AL. Після закінчення циклу, відбувається ділення націло на 10 – кількість груп, того значення, що знаходиться в AL. Потім середня оцінка заноситься да змінної.

3.Блок-схема алгоритму

Блок-схема: альтернативный процесс:     Кінець


4.Вибір змінних для написання программи

 GRUP STRUC

   Nazv     db 'AP-51B'

   Middle   db 1

   Kurs     db ?

 GRUP ends      - Тип структури, описаний мною.

М – змінна, що буде зберігати значення середньої успішності

N – змінна, що вказує на кількість елементів

5.Текст програми на асемблері

  GRUP STRUC

   Nazv     db 'AP-51B'

   Middle   db 1

   Kurs     db ?

  GRUP ends

 DATA segment

 S  GRUP <,5,2>

    GRUP <,3,3>

    GRUP <,2,1>

    GRUP <,4,2>

    GRUP <,1,3>

    GRUP <,5,4>

    GRUP <,3,2>

    GRUP <,3,3>   

    GRUP <,4,4>

    GRUP <,5,5>

    M  dw  1   

    N  dw  10

 DATA ends

 CODE segment

   assume cs:CODE,ds:DATA

   BEGIN : mov  ax, DATA

           mov  ds, ax

           mov  cx, N

           xor  ax, ax

           mov  bx, ax

           mov  dx, ax

           lea  si, S

       m1: mov  bl, [si].Middle

           add  al, bl          

           mov  dx, size GRUP

           add  si, dx                      

           loop m1

           div  byte ptr N

           lea  di, M

           mov  [di],al

           mov  ah, 4Ch 

           int  21h                      

 CODE ends

      end BEGIN

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

До виконання програми:

-n lab8.exe

-l

-g 5

AX=13D5  BX=0000  CX=008D  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000

DS=13D5  ES=13C5  SS=13D5  CS=13DB  IP=0005   NV UP EI PL NZ NA PO NC

13DB:0005 8B0E5200      MOV     CX,[0052]                          DS:0052=000A

-d ds:0

13D5:0000  41 50 2D 35 31 42 05 02-41 50 2D 35 31 42 03 03   AP-51B..AP-51B..

13D5:0010  41 50 2D 35 31 42 02 01-41 50 2D 35 31 42 04 02   AP-51B..AP-51B..

13D5:0020  41 50 2D 35 31 42 01 03-41 50 2D 35 31 42 05 04   AP-51B..AP-51B..

13D5:0030  41 50 2D 35 31 42 03 02-41 50 2D 35 31 42 03 03   AP-51B..AP-51B..

13D5:0040  41 50 2D 35 31 42 04 04-41 50 2D 35 31 42 05 05   AP-51B..AP-51B..

13D5:0050  01 00 0A 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

13D5:0060  B8 D5 13 8E D8 8B 0E 52-00 33 C0 8B D8 8B D0 8D   .......R.3......

13D5:0070  36 00 00 8A 5C 06 02 C3-BA 08 00 03 F2 E2 F4 F6   6...\...........

Після виконання програми:

-g

Нормальное завершение работы программы

-d ds:0

13D5:0000  41 50 2D 35 31 42 05 02-41 50 2D 35 31 42 03 03   AP-51B..AP-51B..

13D5:0010  41 50 2D 35 31 42 02 01-41 50 2D 35 31 42 04 02   AP-51B..AP-51B..

13D5:0020  41 50 2D 35 31 42 01 03-41 50 2D 35 31 42 05 04   AP-51B..AP-51B..

13D5:0030  41 50 2D 35 31 42 03 02-41 50 2D 35 31 42 03 03   AP-51B..AP-51B..

13D5:0040  41 50 2D 35 31 42 04 04-41 50 2D 35 31 42 05 05   AP-51B..AP-51B..

13D5:0050  03 00 0A 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

13D5:0060  B8 D5 13 8E D8 8B 0E 52-00 33 C0 8B D8 8B D0 8D   .......R.3......

13D5:0070  36 00 00 8A 5C 06 02 C3-BA 08 00 03 F2 E2 F4 F6   6...\...........

Як можна побачити, змінна М прийняла значення 3, і якщо порахувати задані мною дані, то вийде 3,5. Але виконівалося цілочисленне ділення, отже программа працює вірно.

Висновки:

      На даній лабораторній роботі я придбав та закріпив навички у написанні та відладці програм мовою асемблера із використанням структур.

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

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