ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++内嵌C内嵌汇编 套娃

2021-11-02 11:34:35  阅读:214  来源: 互联网

标签:内嵌 movl 套娃 %% C++ int edx Hello asm


#include <iostream>
extern "C" {
    
#include "stdio.h"

void print()
{
    const char* s = "Hello asm\n";
    int len = 10;
    printf("Hello C\n");
    asm volatile(
        "movl $4, %%eax\n"    //sys_write
        "movl $1, %%ebx\n"    //std_out
        "movl %0, %%ecx\n"
        "movl %1, %%edx\n"
        "int $0x80      \n"
        :                //输出参数
        : "r"(s), "r"(len)      //入参
        : "eax", "ebx", "ecx", "edx"  //保留列表 不用于关联变量
    );
}
    
}

using namespace std;

int main()
{
    
    cout << "Hello Cpp" << endl;
    
    print();
    
   
    return 0;
}

程序运行输出

Hello Cpp
Hello C
Hello asm

 

标签:内嵌,movl,套娃,%%,C++,int,edx,Hello,asm
来源: https://www.cnblogs.com/Cycas/p/15498010.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有