gcc 内嵌汇编的学习笔记 II
--一个简单的条件判断
作者:ShellEx.
ShellEx.cn && blog.csdn.net/shellex 版权所有
真不好意思,用高级语言的想法类比汇编。毕竟是学高级语言出来
的其实就是对指令的学习了。结合汇编出来的代码,条件判断使用了cmp
指令。cmp的结果放在某个地方...(-_-b),貌似是虾米标志位...
具体哪个地方还得参考下书本。
下面是我写的内嵌汇编代码
#include <stdio.h>
int main() {
int in1 = 0, in2 = 0, out =0;
printf("PLZ input 2 Number like this: (x1 , x2) /n");
scanf("%d , %d", &in1, &in2);
asm volatile(
"nop /n/t"
"cmp %2, %1/n/t" //比较in1 和 in2
"jne FAIL/n/t" //如果不等,跳到FAIL
"movl $1, %0/n/t" //给out赋值为1
"jmp END_LABEL/n" //跳到结尾
"FAIL: /n/t" //FAIL标号
"movl $0, %0/n" //给out赋值为0
"END_LABEL:/n/t" //结尾标号
:"+r"(out)
:"r"(in1),"r"(in2)
:"ebx" //用到ebx,所以告诉gcc表再用它
);
printf("out = %d",out);
return 0;
}
///
shellex.cn && blog.csdn.net/shellex 版权所有