asm подскажите в чем ошибка?

программирование проблема assembler ассемблер tasm

помогите пожалуйста.. пишу программу на tasm.. дан массив чисел и нужно вывести количество чисел которые меньше 5



.model small
.stack 100h
.data
mas db 6,4,4,9,1,2,8

.code
start:
masproc proc
xor dx,dx
mov cx,7 ;значение счетчика цикла в cx
mov si,0 ;индекс в si
compare:
mov dl, mas[si]
cmp dl,5
jl found

not_found:

inc si
dec cx
jcxz OK
jmp compare

found:

inc ax
inc si ;на следующий элемент
dec cx
jcxz OK
jmp compare


OK:

aam
add ax,'0'
mov dl,ah
mov dh,al
mov ah,02
int 21h
mov dl,dh
int 21h


mov ah,01h
int 21h

masproc endp
end start


выдает число 6

предполагаю что ошибка где-то тут...
mov dl, mas[si]
cmp dl,5
jl found
Ответы:
Попробуйте очистить значение регистра ax, перед тем как его использовать


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.