汇编网首页登录博客注册
cook702的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
友情链接

[2007-10-22 16:29] 推荐博文 TC2.0环境下C语言中嵌入汇编指令

图片载入中
在TC2.0环境下,加入一句汇编代码的格式如下: 
asm mov ax,0
即在汇编指令的前面加入一标记asm。这只是第一步。
例如我编写程序1.c如下: 
main(){
  asm mov ax,0
  printf("hello world!");
}
然后通过按F9进行编译和连接,结果报In-line assembly not allowed...错误。而真实情况是,TC2.0环境正常情况下是不支持汇编指令的。要想执行此程序,需要在命令行方式下通过tcc命令,并且借助TASM.EXE(汇编编译器)才能完成。但是TC2.0根目录一般情况下是没有TASM.EXE的。所以得自己从网上下载。这个编译器我是先下载了tasm5.0,安装完成后,再从安装目录下拷出来的。把TASM.EXE放到tc根目录下,然后进入命令行方式,键入tcc 1.c(使用这个命令,不待任何参数,TCC会自动调用TASM.EXE和TLINK.EXE,并且能够使TLINK.EXE正确的找到需要的.obj和.lib文件),接着敲回车。ok,运行成功了。
以上是写入汇编指令会出现问题。然而TC2.0却支持直接对寄存器的读写。应用格式为‘_’+寄存器名称(必须是大写),如 _AX = 0; 就是把0赋予寄存器AX。如下程序:
main(){
  _AX = 0;
  _BX = _AX;
}
编译连接均是没有问题的。
以上论述的是如何在TC2.0环境下嵌入汇编指令并使之能够运行,其它环境下可能就没这么复杂了。

另外fishboy的学习博客
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=1118&kindId=1023&postId=1889&readSg=1也谈到了此问题,有兴趣的可以去看看。

以上内容参考:http://www.blog.edu.cn/user2/pyongyang/archives/2006/1311013.shtml
评论次数(3)  |  浏览次数(2354)  |  类型(计算机) |  收藏此文  | 

[  dreamhk   发表于  2007-10-22 18:07  ]

不错,收藏...

[  sunshine   发表于  2007-10-22 19:26  ]

很好

[  startasm   发表于  2007-12-07 17:11  ]

收藏,脚印

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码