电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C语言内嵌汇编

C语言内嵌汇编_第1页
1/7
C语言内嵌汇编_第2页
2/7
C语言内嵌汇编_第3页
3/7
C 语言内嵌汇编 在C 语言中如何使用汇编语言呢?这个问题在 不同的编译器中,具体实现方法是不同的。不过在实现大方上也不过就是有两种,而且各种编译器的实现方法也是大同小异。一种是在C 语言中嵌入汇编语言代码, 另一种是让C 语言从外部调用汇编。下面我们就以 Borland 格式为例来说一说具体用法。但是,GCC 与Microsoft 的实现方法的与Borland 只在格式上有点区别。当然,GCC 的嵌入汇编是 AT&T 格式的。还好,不管什么格式,只是表达形式的不同而已,其内在含义是一模一样的。还是那句话各种编译器的实现方法是大同小异的,并没有本 质的区别。另外在最后还附带了一篇介绍在GCC 中使用内嵌汇编的文章。 一、两种实现方式 首先,我们看一看在C 语言中如何嵌入汇编语言代码。在C 语言中嵌入汇编语言代码,也有两种格式,一种是单句的,一种是模块的。 我们来看看一些简单的例子。 例子 1: 单句格式的: main() { asm mov ah,2; asm mov bh,0; asm mov dl, 20; asm mov dh,10; asm int 10h; /*调用BIOS 中断设置光标位置*/ } 模块格式的: main() { asm{ mov ah,2 mov bh,0 mov dl, 20 mov dh,10 int 10h } } 在这个小程序里面并没有突出“嵌入”二字。不过从这个程序中可以看出其基本格式。嵌入的各行代码前面加上 asm 关键字或者把汇编语句放入 asm 代码块中,每行以分号或换行符结束,而注释必须是 C 语言格式的。 下面我们来看一个让 C 语言和汇编协作的例子: 例子 2: main() { char const *MESSAGE=” OutPut from asm..\n$” ; asm{ mov ah, 9 mov dx, MESSAGE int 21h } } 上面这个例子十分的简单,它的纯 C 语言版本是: #i nclude main() { printf(“ OutPut from asm..\n$” ); } 接下来我们看一看如何让 C 语言调用汇编例程。我们还是看一个简单的小程序: C 语言部分如下: extern cursor (int,int), main() { cursor(15,12); } 汇编语言部分如下: .MODEL SMALL .CODE PUBLIC _CURSOR PROC PUSH BP MOV BP,SP MOV DH,[BP+4] MOV DL,[BP+6] MOV AH,02 MOV BH,00 INT 10H POP BP RET _CURSOR ENDP 通过上面这个程序,你会看到调用汇编语言的关键就是如何传递参数。事实上,是通过堆栈来传递的但是具体规则是什么呢?下面我就来看看。 二、调用规则...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C语言内嵌汇编

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部