Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2009, 21:24   #1
stscolt
Пользователь
 
Регистрация: 21.04.2008
Сообщений: 50
По умолчанию Подскажите задачу на Ассемблере

Дам массив слов состоящий из чисел. Нужно найти среднее арифметическое. Я написал код, но он выдает переполнение деления. Подскажите, где не так.
Вот код:
.model small
.data
q dw 1,2,3,4,5,6,7,8,9,10
s dw 0
c dw 10
.stack 100h
.code
start:
lea bx,s
mov ax,bx
mov cx,10
l: add s,cx
dec cx
cmp cx,0
jne l
final:
mov ax,s
idiv c
jmp exit
exit: mov ah,09h
int 21h
mov ah,4Ch
int 21h
end start
stscolt вне форума Ответить с цитированием
Старый 18.04.2009, 14:27   #2
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

примерно так:
Код:
.model	small
.stack	100h
.data
q dw 1,2,3,4,5,6,7,8,9,10
c dw 10
Chast dw 0
Ost	dw 0
.code
start:
mov	ax,@data
mov	ds,ax
xor	ax,ax

mov cx,c
xor si,si
xor ax,ax
xor dx,dx
Sumloop:
add ax,q[si]
jno notPer
inc dx
notPer:
inc si
inc si
loop SumLoop
nop
div c
mov Chast,ax
mov Ost,dx

nop

mov	ax,4c00h
int	21h
end	start
На момент nop в Chast будет частное, а в Ost - остаток
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожайлуста решить задачу на ассемблере. Волчица Помощь студентам 1 12.11.2008 21:50