Dev C++调用汇编

参考:

https://blog.csdn.net/ljx0305/article/details/5831742

https://www.cnblogs.com/jokerjason/p/9578646.html

https://blog.csdn.net/weixin_42528089/article/details/83713351

https://www.cnblogs.com/orlion/p/5765339.html

#include<stdio.h>
int a;
int main(){
  printf("Test inline asm\n");
  __asm("\
          mov $789,%eax\n\
        mov %eax,a\
        ");
  printf("A is : %d\n",a);
  return 0;
}

注意:mov不能同时直接寻址和间接寻址——mov $5,(%eax) 是错误的,要拆分为 mov $5 ,%ax mov ax,(%eax)

//测试代码
#include<stdio.h>
int a=160,b=255,c,*pa=&a,*pb=&b,*pc=&c,stepnow=15,stepall=30;
unsigned char rgb[3],*p=rgb; 
int main(){
    printf("Test inline asm\n");
//    __asm("\
//        mov $789,%eax\n\
//        mov %eax,a\
//    ");
//    __asm("\
//        mov pa,%eax;\n\
//        mov pb,%ebx;\n\
//        mov (%eax),%ax\n\
//        mov (%ebx),%bx\n\
//        add %bx,%ax\n\
//        mov stepnow,%bx\n\
//        mul %bx\n\
//        mov stepall,%bl\n\
//        div %bl\n\
//        mov pc,%ebx;\n\
//        mov %al,(%ebx)\n\
//        mov (%ebx),%ax\n\
//        mov %ax,(%ebx)\n\
//    ");
    __asm("\
        mov $1,%ax\n\
        mov $0,%bx\n\
        mov $5,%cx\n\
        loop_start:\n\
        cmp %bx,%cx\n\
        jle loop_exit\n\
        add %ax,%bx\n\
        jmp loop_start\n\
        loop_exit:\n\
        mov %bx,c\n\
    ");
//    __asm("\
//        mov p,%eax\n\
//        mov $1,%bl\n\
//        mov $5,%bh\n\
//        movb %bl,(%eax)\n\
//        add $1,%eax\n\
//        mov %bh,(%eax)\n\
//    ");
    //*pt=*pa*(step_all-step_now)/step_all+*pb*step_now/step_all;
//    __asm("\
//        mov stepall,%eax\n\
//        mov stepnow,%ebx\n\
//        sub %ebx,%eax\n\
//        mov pa,%ebx\n\
//        mov (%ebx),%bx\n\
//        mul %bx\n\
//        mov stepall,%ebx\n\
//        div %bx\n\
//        mov %eax,%ecx\n\
//        mov pb,%eax\n\
//        mov (%eax),%eax\n\
//        mov stepnow,%ebx\n\
//        mul %ebx\n\
//        mov stepall,%ebx\n\
//        div %bl\n\
//        add %cl,%al\n\
//        mov %al,c\n\
//    ");    
    printf("c=%d",c);
    return 0;
}

原文链接: https://www.cnblogs.com/LPworld/p/14060667.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/205588

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午10:17
下一篇 2023年2月12日 下午10:17

相关推荐