1 C语言中的内嵌汇编初体验
内嵌汇编示例
注意:上图中的输出变量,不管是否对其进行操作,最终其所对应的寄存器的值都会保存到这个变量中,所以有时候会出现并没有对输出变量进行操作而输出变量被修改成了一个莫名其妙值的情况。之所以值是莫名其妙的,是因为有些寄存器的值是脏的。
编译器做了什么?
将result关联到某个合适的寄存器(注意这里只是建议,编译器并不一定真的会将result关联到具体的寄存器。但是绝大多数都会关联到寄存器,所以会出现上述寄存器的值为脏的情况)。
将input关联到另一个合适的寄存器(会把input的值读入到相关联的寄存器中)。
通过通用寄存器间接操作变量。