use*_*262 4 assembly parity x86-16
我试图给出一位数字,并知道奇偶校验是奇数还是偶数,例如,给出9并打印出奇数.
这就是我所拥有的:
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
Run Code Online (Sandbox Code Playgroud)
谢谢!抱歉我的英语不好.
要测试数字是奇数还是偶数,请检查此数字的第0位.如果设置了bit0,则该数字为奇数.没有其他的.不要混淆PF(奇偶校验标志)和JP/JNP条件.奇偶校验标志显示在最低有效字节中设置的位数是偶数还是奇数.
来自文档:
PF(第2位)奇偶校验标志 - 如果结果的最低有效字节包含偶数个1位,则置位; 否则清除.
1号 - 奇数,00000001b PF被清除,因为只有一个位设置为
2号 - 偶数,00000010b,但PF再次被清除!因为只有一位设置
数字3 - 奇数,00000011b,但PF设置!因为设置了两个位