Пожалуйста.Помогите найти ошибки

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Алина27
Сообщения: 4
Зарегистрирован: 18 дек 2013, 13:39

Пожалуйста.Помогите найти ошибки

Сообщение Алина27 » 19 дек 2013, 16:48

Задание: найти наибольшее отрицательное число. Массив байт

data segment
max db ?
mass dw 10,24,76,479,-347,281,-24,70,124,97
data ends
code segment
assume cs: code, ds: data
start: mov ax, data
mov ds, ax
lea bx, mass
mov cx, 10
mov ax, [bx]
xor dl,dl
beg:
cmp [bx], 0
jl no
cmp [bx], ax
inc dl
jl no
mov ax, [bx]
no:
inc bx
loop beg
cmp dl, 0
jnz quit
mov max, ax
quit:
mov ax,4C00h
int 21h
code ends
end start

Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 16:14
Откуда: 71 RUS
Контактная информация:

Re: Пожалуйста.Помогите найти ошибки

Сообщение somewhere » 19 дек 2013, 17:00

1) cmp [bx], 0 - не указан тип операндов
2) inc dl после cmp [bx], ax меняет результат сравнения
3) inc bx увеличивает текущую позицию на 1, а надо на 2
It's a long way to the top if you wanna rock'n'roll

Алина27
Сообщения: 4
Зарегистрирован: 18 дек 2013, 13:39

Re: Пожалуйста.Помогите найти ошибки

Сообщение Алина27 » 19 дек 2013, 21:07

somewhere писал(а):1) cmp [bx], 0 - не указан тип операндов
2) inc dl после cmp [bx], ax меняет результат сравнения
3) inc bx увеличивает текущую позицию на 1, а надо на 2

вы не могли бы это исправить в программе.Не поняла вас(

Ответить