如何通过比较数字来获得所需的功能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过比较数字来获得所需的功能?相关的知识,希望对你有一定的参考价值。

[我已经在汇编仿真器emu8086中编写了将x + c与0进行比较的代码,我需要我的函数才能通过比较结果来工作。

f1, when x + c < 0
f2, when x + c = 0
f3, when x + c > 0
    MOV ax, x[si]        
    MOV bl, c 
    CBW
    ADD ax, bx
    CBW  
    CMP ax, 0 
    JE f2; 
    JL f1;
    JG f3 ;

我期望当ax(x + c)等于零时使f2函数起作用,当ax(x + c)小于零时f1起作用,而当ax(x + c)等于f3时起作用大于零,但以某种方式只能正确执行f2f3,我完成了[[f2而不是f1,我不明白这是什么错误。即使我在写

JE f1; JL f1; JG f1 ;
它仍然不执行f1,而是执行f2而不是f1,但是如果我从代码中删除f3,则f1完成。函数看起来像:

f1: MOV ax, 2 IMUL a JO kl1 ; MOV bx, x[si] CMP bx, 0 JG mod NEG bx mod: ADD ax, bx MOV dx, ax JO kl1 f2: MOV ax, 6 ADD ax, 3 JO kl1 JMP re f3: MOV ax, 4 JO kl1 JMP re

答案
CBW将AL扩展为AX。您想将BL扩展为BX。

我建议您将c加载到AL中,使用CBW,然后添加x。

以上是关于如何通过比较数字来获得所需的功能?的主要内容,如果未能解决你的问题,请参考以下文章

是否有窗口函数或窗口函数组合可用于通过 TSQL 获得所需的结果

当所需的触摸次数超过一次时,如何获得 UILongPressGestureRecognizer 的触摸位置?

如何在颤动的列表中获得所需的数据?

在 Windows 批处理脚本的 for 循环中未通过“查找”命令获得所需的输出

使用位图色彩乘法时如何获得所需的颜色?

无法获得所需的掩码检测输出