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;
}

 

posted @ 2020-11-30 12:52  海底淤泥  阅读(976)  评论(0编辑  收藏  举报