编写驱动程序用c语言还是汇编语言?还是控制硬件要在c中混编汇编?可以给出一个例子的代码吗?谢谢。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写驱动程序用c语言还是汇编语言?还是控制硬件要在c中混编汇编?可以给出一个例子的代码吗?谢谢。相关的知识,希望对你有一定的参考价值。
编写驱动程序用c语言还是汇编语言?还是因为驱动控制硬件要在c语言中混编汇编?可以给出一个例子的代码吗?谢谢。
会汇编当然最好硬件控制可以直接用C语言
#include <stdio.h>
extern void swi_handler(void);
/*中断处理子程序*/
void do_swi(int num)
/*
switch (num)
case 0x1: ...
case 0x2: ...
*/
printf("%d helloworld\n", num);
//swi_handler
void install_swi_handler(void (*fun)(void))
unsigned int cmd;
//1.构造一条跳转指令
*((unsigned int *)0x38) = (unsigned int)fun;
cmd = 0xe59ff028;
//2.把此指令机器码放到0x8地址
*((unsigned int *)0x8) = cmd;
int main(void)
int i = 0;
install_swi_handler(swi_handler);
for (i = 0; i < 10; i++)
if (i == 3)
__asm
swi 0x123
else
printf("aa\n");
return 0;
追问
比如mov dx,1234h
mov ax,080h
out dx,ax上面的代码用c语言怎么实现?可以给出示例代码吗?谢谢。
sfr dx = 0x80;
sfr ax = 0x90;
dx= 0x1234;
ax= 0x80;
dx= ax;
想要直接操作特殊寄存器,需要知道寄存器地址。我上面是以单片机寄存器访问方式给的示例。
C语言嵌入汇编也很常见的
单片机编程用C语言还是汇编?
2C语言编程的特点
3C语言对比汇编的优势
精彩技术文章推荐
01 | |
02 | |
03 | |
04 | |
以上是关于编写驱动程序用c语言还是汇编语言?还是控制硬件要在c中混编汇编?可以给出一个例子的代码吗?谢谢。的主要内容,如果未能解决你的问题,请参考以下文章