assembly - 8 位寄存器中的 0FBh 加 5 如何设置零标志?

标签 assembly

adding 5 to 0FBh in an 8-bit register sets the Zero flag

我是新手,所以如果你是专家,请耐心等待我。 这是我分解它的方式,但我显然做错了什么。也许我对零标志的理解是错误的?

在我的理解中,如果结果为 0,则设置零标志。 0FB = 251; 251 + 5 = 256; 二进制:0000000100000000 十六进制:100

哪个不是0,那么为什么设置零标志呢?

最佳答案

您可以在 8 位寄存器中存储的最大无符号值是 0xFF(即:255 以 10 为基数),因此寄存器中的值只是普通值零 (0b00000000),这会导致设置 ZF

检查溢出进位标志,CF。它也应该通过这个操作来设置。您正在进行的操作导致寄存器值为零 (+ZF) 并且寄存器溢出 (+CF ).

感谢@EOF感谢您指出我帖子中的错误。

关于assembly - 8 位寄存器中的 0FBh 加 5 如何设置零标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36580507/

相关文章:

programming-languages - 为什么尽可能避免指令分支是好的?

c++ - 移动字符数组的值以注册 x86 内联汇编

c - 如何优化KASUMI算法的S盒?

组装我们需要结局吗?

c++ - 函数返回后程序被终止

assembly - 为什么我必须检查有符号操作的溢出标志而不是 8086 中的进位标志?

c++ - C/C++ 中的高级指针类型转换

c - 缓冲区溢出的困境

c++ - 是否可以使用 C++ 访问 CPU 中的溢出标志寄存器?

c++ - C++ 编译器中的汇编语言输出