在做不用加减乘除的加法这题时发现有内联汇编这种骚操作,可以直接在C++源代码中编写汇编代码。
汇编格式
汇编代码主要有AT&T和Intel两种格式,AT&T赋值方向是: operator1------------------->operator2,而在Intel下则是反过来的:operator1<-------------------operator2。
详情可见:intel和at&t区别
DEV-C++的内联汇编
以下示例采用AT&T格式,IDE使用DEV-C++。
dev-c++的内联汇编代码格式为__asm(“xxxxxx”),注意前面是双下划线。
dev-c++的内联汇编中比较大的局限性是只能使用全局变量,如下代码所示:
#include<iostream>
using namespace std;
int a;
int main(){
__asm("mov $100,%rax");
__asm("mov %rax,a"