Опытный Магистр форума
Регистрация: 12.01.2008
Ф-т: Математики и информатики
Сообщений: 814
Репутация: 4947
Очки: 26,374, Уровень: 97 |
|
Проверьте решение, плз
задача: В группе N студентов, каждый студент выполняет m тестов. Для контроля знаний студентов в памяти для каждого из них создается структура из последовательных 32-разрядных слов: CodeSt, Grad(1), Grad(2), ... Grad(m), Grad(A).Результаты тестов записываются для каждого студента в последовательность адресов, начиная с CodeSt + 4. Написать программу на языке ассемблер IA-32, для вычисления среднего балла за все тесты каждого студента с сохранением их в памяти в ячейку Grad(A).
решение:
.model tiny
.stack 100h
.data
y dw 0
col dw 3
marks dw 5
mas dw 1, 2, 3, 4, 5, 2, 3, 4, 5, 6, 3, 4, 5, 6, 7
res dw 3 dup(0)
.code
mov ax, @data
mov ds, ax
loop0:
mov bx, offset mas
mov ax, marks
mov cx, y
mul cx
add ax, ax
add bx, ax
mov cx, marks
xor ax, ax
loop1:
add ax, [bx]
add bx, 2
loop loop1
mov cx, marks
div cx
mov bx, offset res
add bx, y
add bx, y
mov [bx], ax
mov dx, ax
add dx, '0'
mov ah, 2
int 21h
mov dl, 32
int 21h
inc y
dec col
cmp col, 0
jne loop0
mov ax, 4c00h
int 21h
end
|