c语言中asm怎么用?使其在TC2.0中编译通过。

c语言中asm怎么用?使其在TC2.0中编译通过。,第1张

Turbo C 2.0 中,利用asm关键字实现在源程序中嵌入汇编语句。

在TC2中塌型激,asm是一个关键字(key word)用来在程租扒序中嵌入汇编语言。使用asm关键字的格式为:

asm {

汇编程序语句块

}

因为asm是TC2的关键字,所以用asm嵌入汇编程序不需要特殊的头文件。

在你的程序中,函数iowrite 和 ioread是利用嵌入汇编程序团袜实现的。按常规方法向函数传入参数,调用,获取返回值。也就是说,用汇编实现的函数与常规函数没有什么差异。

1. 这是内核源码的头文件,一般人不敢说都熟悉滴。

2. 以linux开头的的头文件,如<linux/file.h>对应源码目录树的include/linux/file.h

3. 以asm开头的头文件,如<asm/file.h>对应源码目录树的arch/***/include/asm/file.h, 其中***对应某个具体的清仔平台。

4. 仔细研读并读懂过linux源码1/10的人,绝对是高手中的高手,不会出现在这里回答问题。

5. 我是菜鸟,春正源码只看了一点。

6. 劝楼主答森汪别浮躁,想学内核驱动,要能静的下来,认真看书。

1、C/C++中只能在_asm{}标识符对中嵌入汇编代码。

2、不调用 *** 作系统的函数(如:MessageBox)、库函数(如:strcpy)就不需要加入头文件。

31、mov dx,ABCDEFG表示将一个立即数转移到dx中

32、in al,dx表示从端口[dx]中读取一个字节数据到al中

33、CLC表示清除CF位(进位标志)

34、JNC $+2表示当CF=0才跳转的条件(是没有进位则跳转)

$+2表示从当前指令结束位置向后偏移2个字节地址

$表示当前行被汇编后的地址

$$表示程序节的开始地址

35、mov Status,al表示将al中的内容转移到Status(估计轿渗饥是个寄存器别名)中。

4、整体的意思就是从某个端口中读个数据,强制清除进位标志,跳转到该段尾部喊嫌位置。闭返

具体业务上为何意思,没有完全猜测出来。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12283317.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存