Привет всем!!! Вот возникла у меня проблема с командой 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!!!" Пожалуйста помогите понять в чем ошибка. Зарание спасибо ! |