Неопознанная ошибка при компиляции

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

Модератор: Andy

Ответить
kolorimage
Сообщения: 6
Зарегистрирован: 06 апр 2009, 15:58

У меня программа-
.model small
.stack 100h
.data
mas db 1h,2h,3h,2h,4h,2h
kilk db ?
.code
mov ax,@data
mov al,mas
mov bx,0
mov ah,2h
mov cx,5
m1:
mov di,cx
cmp mas[di],ah
jne m2
inc bx
m2:loop m1
mov ah,4ch
int 21h
end
Должно быть так..Задан массив (mas db 1h,2h,3h,2h,4h,2h) и я должен програмно проверить сколько у масиве чисел 2h.сделал програму и всьо вроде ок , но только программа пропускает вот ету строчку -inc bx.
Что не так ???подскажыте..
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Не пропускает при компиляции?
А сообщение об ошибке какое?
kolorimage
Сообщения: 6
Зарегистрирован: 06 апр 2009, 15:58

Ошибки нет..но программа не делает то что должна..
Сначала программа заносит число 5 в сх (размер массива) ,потом строка mov di,cx ,заносит это число в DI и строки cmp mas[di],ah jne m2 проверяют если число з массива mas [di] и 2h не ровно один одному то мы переходим на метку m2:loop m1 если ровно то мы проходим и додаем до bx 1.Но только программа думает что в массиве нет числа 2h ,но оно там эсть , и целых 3 штуки.Что не так??
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

mov ax,@data
Наверное следующей строчкой вы хотели написать mov ds, ax
It's a long way to the top if you wanna rock'n'roll
kolorimage
Сообщения: 6
Зарегистрирован: 06 апр 2009, 15:58

ТОЧНО :D .Спасибо большое.
Ответить