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;
}
Dev C++调用汇编的更多相关文章
- C语言调用汇编
程序的入口是main,在main里调用汇编的函数. 首先要解决怎么定义函数的问题 在C语言中,要extern 一个函数声明即可,然后这个函数在汇编里面实现. 在汇编里面,用EXPORT 把C语言定义的 ...
- 缓冲区溢出实战教程系列(二):dev c++编译汇编代码
小伙伴们对我上一篇文章的反应完全出乎了我的意料,感谢大家对我的支持和认可.接下来我会精心的把这一系列课程设计好,尽量详细的展示给大家.上篇文章我列举了一个缓冲区溢出的小例子,并提到了dev c++.o ...
- c语言里如何调用汇编里的变量?
c语言里如何调用汇编里的变量? 汇编语言:是声明全局变量 .globl _end_ofs _end_ofs: .word _end - _start c语言:声明这个变量,然后再调用这个变量 void ...
- C语言调用汇编实现字符串对换
1. 前面配置arm交叉编译环境. 2. 配置好qemu-arm C语言代码string-switch.c: #include <stdio.h> #include <stdlib. ...
- 从linux0.11中起动部分代码看汇编调用c语言函数
上一篇分析了c语言的函数调用栈情况,知道了c语言的函数调用机制后,我们来看一下,linux0.11中起动部分的代码是如何从汇编跳入c语言函数的.在LINUX 0.11中的head.s文件中会看到如下一 ...
- KEIL C51 中嵌入汇编以及C51与A51间的相互调用
如何在 KEIL C51(v6.21) 中调用汇编函数的一个示例 有关c51调用汇编的方法已经有很多帖子讲到,但是一般只讲要点,很少有对整个过程作详细描述,对于初学者是不够的,这里笔者通过一个简单例子 ...
- keil or c51 汇编调用c语言函数 容易忽视的问题
最近,在用keil 写一个小程序时,想实践一下从汇编调用 C语言函数,我们都知道C语言调用汇编函数讨论得较多,但反过来,从汇编中调用C语言的函数未见深入分析:在开始的时候,还是忽视了一个问题,就是对现 ...
- Linux汇编与C互相调用
一.简介 C语言调用汇编有两种方式:1.通过内嵌汇编 2.通过编译链接. 二.基础知识 对于C和汇编语言的接口主要有两个问题需要解决 1.调用者与被调用者的参数传递 正常的,定义一个函数总是希望它完 ...
- x64汇编第四讲,c / C++中调用x64汇编
目录 x64汇编第四讲,c / C++中调用x64汇编 一丶简介 1.说明 二丶C/C++调用 asm64.asm函数. 1.配置asm参与生成 2.给Asm文件添加函数代码 3.C/C++调用asm ...
随机推荐
- 4 — springboot中的jsr303检验
1.导入依赖 <!--JSR303校验的依赖 --> <dependency> <groupId>org.springframework.boot</grou ...
- C/C++ Qt 数据库与TreeView组件绑定
在上一篇博文<C/C++ Qt 数据库QSql增删改查组件应用>介绍了Qt中如何使用SQL操作函数,并实现了对数据库的增删改查等基本功能,从本篇开始将实现数据库与View组件的绑定,通过数 ...
- Android系统编程入门系列之硬件交互——多媒体麦克风
在多媒体摄像头及相关硬件文章中,对摄像头的使用方式需要区分应用程序的目标版本以使用不同的代码流程,而与之相比,麦克风硬件的使用就简单多了. 麦克风及相关硬件 麦克风硬件在移动设备上作为音频的采集设备, ...
- 深入理解mysql锁与事务隔离级别
一.锁 1.锁的定义 锁即是一种用来协调多线程或进程并发使用同一共享资源的机制 2.锁的分类 从性能上分类:乐观锁和悲观锁 从数据库操作类型上分类:读锁和写锁 从操作粒度上分类:表锁和行锁 2 ...
- 零基础学习java------day10------带包编译,权限修饰符,内部类,调式,junitTest
0. 带包编译 解决使用notepad++编写的java类中如果有package的解决方案,如下代码 package com._51doit.test; class HelloWorld{ publ ...
- 源码分析-Producer
消息生产者的代码都在client模块中,相对于RocketMQ来讲,消息生产者就是客户端,也是消息的提供者. 方法和属性 主要方法介绍 //创建主题 void createTopic(final St ...
- ClassLoad类加载器与双亲委派模型
1. 类加载器 Class类描述的是整个类的信息,在Class类中提供的方法getName()是根据ClassPath配置的路径来进行类加载的.若类加载的路径为文件.网络等时则必须进行类加载这是就需要 ...
- 理解inode以及软硬连接,和inode磁盘爆满的解决方案以及文件权限
理解Linux的软硬链接 创建硬链接的命令 [root@centos6 data]#ln /data/f1 /data/f2 [root@centos6 data]#ll -itotal 1613 - ...
- 【Matlab】abs不支持复整数
需要将uint8转换成double型数据才能计算 https://blog.csdn.net/lihe4151021/article/details/89372688 图像数据格式uint8与doub ...
- 莫烦python教程学习笔记——learn_curve曲线用于过拟合问题
# View more python learning tutorial on my Youtube and Youku channel!!! # Youtube video tutorial: ht ...