gpt4 book ai didi

汇编检查数字是否为偶数

转载 作者:行者123 更新时间:2023-12-01 10:23:16 25 4
gpt4 key购买 nike

我有作业写汇编代码来检查数字是奇数还是偶数。我有这个代码

code_seg SEGMENT
ASSUME cs:code_seg, ds:data_seg;

mov ax, 11;
test ax, 1;

end: jmp end;
code_seg ENDS

并检查数字是否偶数我看是否设置了零标志。我知道测试指令就像逻辑与,如果结果为 0,它会设置零标志。我的问题是:这如何检查数字是否为奇数/偶数?实际上我不明白为什么有些偶数(二进制)数和(逻辑和)1 的结果是 0?

最佳答案

如果设置了最低位,则无符号数和有符号数 ( Two's complement ) 都是奇数:

00000001 = 1    (odd)    // unsigned, or signed positive
11111111 = 255 (odd) // unsigned
01111111 = 127 (odd) // unsigned, or signed positive
10000001 = -127 (odd) // signed negative
11111111 = -1 (odd) // signed negative

所以 test instruction
test al, 1

检查是否设置了 AL/AX/EAX/RAX 的最低位。如果是,则数字为奇数。
这可以使用 Jcc instructions 来检查。 ,尤其是那些测试 ?ZERO 的人标志与
JNZ target    ; jump if odd  = lowest bit set
JZ target ; jump if even = lowest bit clear = zero

关于汇编检查数字是否为偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49116747/

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