Проверка числа на четность - Assembler

Узнай цену своей работы

Формулировка задачи:

почему у меня не переходит по метке четности тоесть Evenn?у меня он идет линейно. В чем может быть оишбка?
X dw 5429h
Y dw 7844h
Z dw 0AD43h
Q dw 5622h
L dw 0h
M dw 0h
R dw 0h
.code   *
main:   
    mov ax,@data    
    mov ds,ax   
    xor ax,ax   
;...
mov bx,0h
mov cx,4h
one:
mov ax, [bx]
add ax,1h
mov [bx],ax
add bx,2h
add L,ax
loop one
mov ax, L
mov bx,X
and ax,X
mov dx,ax
mov ax,L
and ax,Y
sub dx,ax
mov M,dx
call adddiv;вызов процедуры
jmp STe
jmp exit
adddiv:
mov AX, 921Bh
cmp M,AX
JNe MRe
jmp BRe
MRe:
mov BX, 12B9h
mov dx,0h
mov ax,M
mov cx,2h
idiv cx
sub ax,BX
mov R,ax
ret
BRe:
mov ax,Q
mov cx,2h
div cx
mov dx,ax
mov ax,M
sub ax,dx
mov R,ax
STe:
test  ax,R
jnp Odd    ;нечетное, переход на метку Odd
jp Evenn   ;четное, переход на метку Even
Odd:
mov ax, R
sub R,1
mov ax,R
Evenn:
mov ax,R
or R,009Fh
mov ax,R
ret
exit:
считал все на калькуляторе проверял число четное

Решение задачи: «Проверка числа на четность»

textual
Листинг программы
jae label1; переход, если больше или равно
mov ax,Q;
mov cx,2h;
div cx;
mov dx,ax;
mov ax,M;
sub ax,dx
mov R,ax

Объяснение кода листинга программы

  1. jae label1; - это инструкция перехода, которая будет выполнена, если значение в регистрах AX и CX больше или равно.
  2. mov ax,Q; - это инструкция, которая помещает значение переменной Q в регистр AX.
  3. mov cx,2h; - это инструкция, которая помещает значение 2 в регистр CX.
  4. div cx; - это инструкция деления, которая делит значение в регистре AX на значение в регистре CX и помещает результат в регистры AX и DX.
  5. mov dx,ax; - это инструкция, которая помещает значение из регистра AX в регистр DX.
  6. mov ax,M; - это инструкция, которая помещает значение переменной M в регистр AX.
  7. sub ax,dx - это инструкция вычитания, которая вычитает значение из регистра DX из значения в регистре AX и помещает результат обратно в регистр AX.
  8. mov R,ax - это инструкция, которая помещает значение из регистра AX в переменную R.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.556 из 5
Похожие ответы