我正在为一个学校项目工作,我JL在at&t语法中找不到任何含义。供参考,问题是找到运行%eax时的值NOP。这是它使用的代码:
MOV $492,%ebx
MOV $2494,%eax
MOV $28063,%ecx
CMP %eax,%ebx
JL L1
JMP L2
L1:
IMUL %eax,%ebx
ADD %eax,%ebx
MOV %ebx,%eax
SUB %ecx,%eax
JMP L3
L2:
IMUL %eax,%ebx
SUB %eax,%ebx
MOV %ebx,%eax
ADD %ecx,%eax
L3:
NOP
Run Code Online (Sandbox Code Playgroud)
另外,我还要感谢JMP加法/减法/乘法的工作方式(ADD/ SUB/ IMUL)。我不想作弊,我只是想了解发生了什么。例如,您在使用数学时会更改第一个数字还是第二个数字?非常感谢大家的帮助。
不幸的是,由于声誉低下,我无法发表评论。但是,以上答案并不完全正确。
由于操作数是按AT&T语法切换的,因此以AT&T语法给出的代码信息对于给出正确答案至关重要。其实是什么代码
CMP %eax,%ebx
JL L1
Run Code Online (Sandbox Code Playgroud)
用AT&T语法解释的是:“如果EBX的内容少于EAX的内容,则跳转到标签L1”-而不是如前所述。