问题标签 [eflags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - 如何直接读写x86标志寄存器?
从我读过的内容来看,似乎有 9 个不同的标志。是否可以直接读取/更改它们?我知道我可以知道例如在执行 cmp/jmp 指令后是否设置了零标志,但我问是否可以执行类似的操作
或者其他的东西。
另外,对于写作,是否可以手动设置它们?
c - 检查是否设置了进位标志
使用内联汇编程序 [gcc, intel, c],如何检查操作后是否设置了进位标志?
assembly - 为什么 cmp 0x84,0x30 会触发溢出标志?
我已经玩了一段时间的汇编并查看了一些代码。其中 AL 首先设置为 0x84,然后使用 cmp AL, 0x30。该指令然后触发溢出标志。
从我读到的 CMP 应该从第一个数字中减去第二个数字,然后设置标志,在这种情况下它应该是 0x84-0x30 结果是 0x54 并且没有溢出。
assembly - Assembler 8086 status FLAGS
I want to check the Status Flag after a command but it gives wrong values! For example: After adding 126 with 127 Status Flag would be FFBA(initial SF value is FFFF), BUT... when i run this code, it gives 7112:
assembly - 汇编 - 进位标志 VS 溢出标志
我有下一个代码:
当我检查它时,溢出标志和进位标志将在第一次操作中设置,而在第二次操作中,只会设置溢出。
但我不明白为什么:
- 在无符号数中,结果为 143 (8FH),因此适合 8 位无符号数(小于 255)=> 不应设置进位标志。在有符号数中,结果为 127,适合 8 位有符号数,不应设置溢出。
怎么了?谢谢。
assembly - 装配 - CMP 后的 JG/JNLE/JL/JNGE
我不明白JG/JNLE/JL/JNGE
CMP 之后的说明。
例如,如果我有:
当al=101; dl =200
.
我们问的是jg
什么?开了al>dl
吗?还是al-dl>0
?
下一个代码相同的问题:
我不明白我们比较什么,以及我们问什么“ jg
”。
换句话说,我不明白我们什么时候会跳转到 label1,什么时候不会。
assembly - x86 中的方向标志
我无法理解方向标志是如何工作的x86
。我讲座中的文字说它增加或减少源或目标寄存器,但它的名称没有意义。有人可以解释它的作用吗?
assembly - 使用进位位和溢出位的原因
我正在学习嵌入式系统入门课程。在阅读的过程中,我遇到了一个关于进位位和溢出位实现的有趣问题。
我知道什么是进位位和溢出位,但是我想不出有人会使用进位位的情况。我认为的一个原因是对齐内存。有人可以阐明这个问题吗?
assembly - 装配比较标志理解
我正在努力理解汇编程序中的以下代码片段:
在汇编程序中,这可以写成如下(根据我的书),模拟您通常在“更简单”的分支中使用的jge
指令,这些分支一次只查看一个标志:
我可以理解生成的标志可以是:(如果( EAX >= 5 )):
SF = 0 & OF = 0 但我不明白标志是怎么回事:SF = 1 & OF = 1?什么计算给出了这个?
为了澄清我的意思:
如果 eax 在负下限,它可能会通过减去 5 溢出到正数。如果它在正数上限,它不能通过减去 5 溢出到负数?
assembly - x86 否定 (NEG) / 减法 (SUB) 何时设置进位标志?
“将 NEG 指令应用于非零操作数始终设置进位标志”是什么意思。
为什么从 1 中减去 2 会设置进位标志?