标签: assembly x86
cmp %al, %cl js x
我对js(跳号)正在做什么感到困惑。它是说如果al是正的而cl是负的则反之亦然然后跳?
此外,如果%cl为0或者没有任何内容,会发生什么?
谢谢!
答案 0 :(得分:12)
JS将跳转。 CMP将始终通过执行减法修改标志,在本例中为%al - %cl。 (假设是英特尔语法,而不是AT& T)。
JS
%al - %cl
由于指令的长度,符号将是表达式%al-%cl的第7位(并且被扔掉)。
如果%cl == 0,那么临时值将完全为%al,符号将是寄存器%al的符号。因此,如果%al为负,则进行跳转。
这是所有条件跳转的reference。