我正在将代码从 C 翻译为 IA-32,但我被困在一个部分上。代码行是这样的:
if ( (input != '0') && (input != '1') ) {
我知道第一个条件就是:
cmpl $0, %eax #%eax is where my input is stored
但是第二个条件呢?我不确定我是否应该再进行一次比较或过度思考问题或什么。如有任何帮助,我们将不胜感激。
最佳答案
你可以这样做:
cmpl $30, %eax ; if '0' &&-expr must be false
je falsebit
cmpl $31, %eax ; if '1' &&-expr must be false
je falsebit
truebit:
; do something here - it is neither '0' nor '1'
falsebit:
; skip point
关于c - 将 C 转换为 IA-32 汇编 - 比较 w/2 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33230171/