Официальный сайт студ.городка НГТУ
Программирование и БД » [asm] сравнение. 

#1  25.11.07 10:18

[asm] сравнение.

Подскажите пожалуйста.
Имеются две области с данными:

Код::

amount_in db 10 dup (0)
amount_out db 10 dup (0)

В них храняться целые числа. (Положительные для простоты).

Я делаю:

Код::

push ds
pop es
lea si, amount_out
lea di, amount_in
mov cx, length5
cld
repe cmps amount_out, amount_in

jae good

mov ah, 40h
mov bx, 1
mov cx, length7
mov dx, offset message7; Error!
int 21h 
ret

good:  ret

Получается, что ошибка выводится, когда amount_in<amount_out

а если jae заменить на jbe, то
ошибка выводится, когда amount_in<=amount_out

Как добиться того, чтобы ошибка выводилась только при
amount_out<amount_in? менял местами записи в функции, ничего не получилось, уже совсем запутался.

Offline

#2  26.11.07 13:47

Re: [asm] сравнение.

Чет не совсем понятно.
Ты сравниваешь две цепочки байт ?
Как одна может быть больше другой?
Что вообще нужно то?

Сейчас твой код сравнивает побайтно две области
пока не наткнется на нужное условие.
А оно может выполнится и на первом байте.
Что значит in>out или in<out?
Там два массива. Как один может быть больше другого?
Или они рассматриваются как два 10-байтный числа?

Исправлено YARIK (26.11.07 13:55)

Offline

#3  26.11.07 16:26

Re: [asm] сравнение.

Понятно, спасибо! А как мне сравнить два, числа, которые там находятся?

Offline

#4  26.11.07 17:57

Re: [asm] сравнение.

Кароче вот:
Сочетание команд условной передачи управления с результатами команды cmps (для чисел без знака)
Причина прекращения операции сравнения Команда условного перехода, реализующая переход по этой причине
операнд_источник > операнд_приемник ja
операнд_источник = операнд_приемник je
операнд_источник <> операнд_приемник jne
операнд_источник < операнд_приемник jb
операнд_источник <= операнд_приемник jbe
операнд_источник >= операнд_приемник jae

Пробуй JB или JA .
я так и не понял че у тебя там должно быть больше чего :)

P.S. Еще есть по ASMу задачи?

Исправлено YARIK (26.11.07 18:03)

Offline

#5  26.11.07 18:08

Re: [asm] сравнение.

у меня курсовая, а вопрсов много возникает.

Offline

#6  27.11.07 10:03

Re: [asm] сравнение.

Ну пиши на асю. номер я тебе кидал в приват.

Offline

#7  27.11.07 20:10

Re: [asm] сравнение.

Ладно, обращусь обязательно! Спасибо!

Offline

#8  04.12.07 11:47

Re: [asm] сравнение.

Народ  подскажите  как  задать  массив  и  найти  максимальный  и  минимальный  элемент.  В  ассемблере.  Заранее  спасибо  за  ответы.

Offline

#9  11.12.07 17:52

Re: [asm] сравнение.

Элементарно.
Массив(последовательность байт):
mas db 10 dup (0)
Минимальный и максимальный-заводишь две "переменные" - одна max(0) другая min(255). Идёшь по своему массиву.Загружаешь в приёмник символ, сравниваешь его с минимум и максимумом, если надо, меняешь их значения.
Загрузка в приёмник - lodsb

Offline

Программирование и БД » [asm] сравнение. 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.026 сек.
Выполнено 11 запросов.