gpt4 book ai didi

assembly - 检查数字是奇数还是偶数(数学奇偶校验)

转载 作者:行者123 更新时间:2023-12-02 19:56:48 25 4
gpt4 key购买 nike

对于一位数,我想知道它是奇数还是偶数(2 的倍数)。例如,给定 9,打印出这是一个奇数。

(即检查 mathematical parity ,而不是计算 parity 。)

这就是我所拥有的:

   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

最佳答案

要测试某个数字是奇数还是偶数,请检查该数字的第 0 位。如果设置了 bit0,则数字为奇数。没有其他的。不要混淆 PF(奇偶校验标志)和 JP/JNP 条件。奇偶校验标志显示最低有效字节中设置的位数是偶数还是奇数。

来自文档:

PF (bit 2) Parity flag — Set if the least-significant byte of the result contains an even number of 1 bits; cleared otherwise.

数字 1 - 奇数,00000001b PF 被清除,因为只设置了一位
数字2 - 偶数,00000010b,但PF又被清除了!因为只设置了一位
数字 3 - 奇数,00000011b,但 PF 设置!因为设置了两个位

关于assembly - 检查数字是奇数还是偶数(数学奇偶校验),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29292455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com