Мета роботи: Здобуття та закріплення практичних навичок у написанні та відладці програм з використанням типу даних “структура” мовою асемблера.
Задана послідовність структур. Структура має поля по характеристиці студентських груп: назва групи, середня оцінка успішності, номер курсу. Використати «за вмовчуванням» в полі Нназва групи - назву своєї групи.
Знайти середню успішність всіх груп.
2.Алгоритм вирішення
Спочатку до регістру BL по черзі заносяться всі середні оцінки (всіх груп) і вони по черзі додаються до регістру AL. Після закінчення циклу, відбувається ділення націло на 10 – кількість груп, того значення, що знаходиться в AL. Потім середня оцінка заноситься да змінної.
3.Блок-схема алгоритму
4.Вибір змінних для написання программи
GRUP STRUC
Nazv db 'AP-51B'
Middle db 1
Kurs db ?
М – змінна, що буде зберігати значення середньої успішності
N – змінна, що вказує на кількість елементів
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
До виконання програми:
-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. Але виконівалося цілочисленне ділення, отже программа працює вірно.
Висновки:
На даній лабораторній роботі я придбав та закріпив навички у написанні та відладці програм мовою асемблера із використанням структур.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.