Я пытаюсь дать одноразрядное число и знать, является ли четность четным или даже, например, дать 9 и напечатать, что является нечетным числом.Соотношение числа (сборка 8086)
Это то, что у меня есть:
assume cs:cseg,ds:dseg,ss:sseg
cseg segment
start:
mov ax, dseg
mov ds, ax
mov ah, 01h ; Here, im adding a number
int 21h
jp even
jnp odd
even:
mov ah,09
lea dx,par
int 21h
jmp exit
odd:
mov ah,09
lea dx,odd1
int 21h
jmp salir
salir:
mov ax,4C00h
int 21h
cseg ends
dseg segment byte
even Db 'Even number$'
odd11 Db 'Odd number$'
dseg ends
sseg segment stack
db 100h dup(?)
sseg ends
end start
Спасибо! И извините за мой плохой английский.
1 - 0000_0001 нечетное число, четность нечетная. 2 - 0000_0010 четное число, четность нечетная. 3 - 0000_0011 нечетное число, четность четная. Что вы на самом деле пытаетесь сделать? –
Лучше: 'test al, 1' вместо' and al, 1'. Такая же длина инструкции, но может макро-fuse с 'jcc' на современных процессорах. (Даже 'jp', хотя четность одного бита такая же, как и проверка того, является ли он нулевым, что было бы легче понять и так же быстро, хотя это и работает.) –