Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с командой "cmp" 
V
    Опции темы
ROKI
Дата 28.12.2008, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 26.5.2008

Репутация: нет
Всего: нет



Привет всем!!! Вот возникла у меня проблема с командой cmp. Вот код:
Код

stek segment stack 
db 256 dup(?)
stek ends 
;/////////////////////////////////////
data segment
m_1 db 'chuslo a: $'
m_2 db 'chuslo b: $'
m_3 db 'X= $' 
m_4 db 'OK!!!$'
new_s db  0dh,0ah,24h
buffer label byte 
maxKeys db 30 
inputs  db ?
keyboard db 30 dup (0)
mnozh db 10 
a dw ?
b dw ? 
x dw ? 
data ends 
;/////////////////////////////////////////
code segment 
assume cs:code, ds:data, ss:stek 
begin: 
 mov ax, data 
 mov ds, ax
 mov ah,9 
 mov dx,offset m_1
 int 21h
 xor dx,dx

 xor ax,ax
 mov dx, offset buffer 
 mov ah, 0ah 
 int 21h 
 mov cl, inputs
 mov si, cx 
 dec si 
 mov ax , 1

mit_a:
 mov bl,keyboard[si] 
 sub bl, 30h 
 push ax 
 mul bx
 add a, ax
 pop ax 
 mul mnozh 
 xor bx, bx 
 dec si
loop mit_a
 cmp a,9
je done
 xor ax, ax
 mov ax, a

 xor ax, ax
 xor si, si
 mov ah,9
 mov dx, offset new_s
 int 21h
 mov ah,9 
 mov dx,offset m_2
 int 21h 
 xor ax,ax
 xor dx,dx
 mov dx, offset buffer 
 mov ah, 0ah
 int 21h 
 mov cl,inputs 
 mov si,cx 
 dec si 
 mov ax,1
mit_b:
 mov bl, keyboard[si]
 sub bl, 30h
 push ax 
 mul bx 
 add b, ax 
 pop ax 
 mul mnozh
 xor bx, bx 
 dec si 
loop mit_b 
cmp b,9
je done
xor ax,ax
mov ax,b 
 
done:
 mov ah,9
 mov dx,offset new_s
 int 21h
 mov ah,9
 mov dx,offset m_4 
 int 21h
 
 mov ah, 4ch 
 int 21h
code ends 
end begin 
  
  

Мне нужно сделать следующее: например я ввожу число а ( переменная а), если она равняется 9, то вывести сообщение. В этом случае у меня все работает. Тоже самое мне нужно сделать, когда я ввожу число b (переменная b). Вот здесь и возникает ошибка, неважно какое чиcло я введу, всеравно выводится сообщение "OK!!!" Пожалуйста помогите понять в чем ошибка. Зарание спасибо !
PM MAIL   Вверх
victor79
Дата 28.12.2008, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



сообщение m_4 = OK!!! у тебя выводится в любом случае - его вывод в самом конце за всеми условиями

PM MAIL WWW   Вверх
ROKI
Дата 28.12.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 26.5.2008

Репутация: нет
Всего: нет



Цитата

сообщение m_4 = OK!!! у тебя выводится в любом случае - его вывод в самом конце за всеми условиями


А как сделать так, чтобы оно выводилось только тогда, когда b=9 ?
PM MAIL   Вверх
victor79
Дата 28.12.2008, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Код

...
cmp b,9
// jne - если не равно, переходим на done
jne done
 
 mov ah,9
 mov dx,offset new_s
 int 21h
 mov ah,9
 mov dx,offset m_4 
 int 21h
done:
 
 mov ah, 4ch 
 int 21h
code ends 
end begin 

PM MAIL WWW   Вверх
ROKI
Дата 28.12.2008, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 26.5.2008

Репутация: нет
Всего: нет



victor79, спасибо !!, все отлично работает )
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.1032 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.