c - 将 C 转换为 IA-32 汇编 - 比较 w/2 条件

标签 c translation x86

我正在将代码从 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/

相关文章:

c++ - 在 C/C++ 中的特定地址边界上对齐内存是否仍能提高 x86 性能?

c - 地址空间布局随机化是否应用于 fork 进程

c - 数组内存管理

c - 在 Redhat 上安装 HAWQ

symfony - 向所有路由添加区域设置和要求 - Symfony2

ruby-on-rails - 从 Rails 模型内部访问翻译文件 (i18n)

c - GCC 错误地优化了自定义地址处变量的指针相等测试

c - 如何在应用程序包内的 C 语言中查找当前目录 [macOS]

c - 我如何编写一个程序,根据下面的文本对仅以大写字母书写的文本进行编码?

django - Django-无法在Alpine中编译消息?