免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1812 | 回复: 7
打印 上一主题 下一主题

两个问题_谢谢帮忙 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-12 13:30 |只看该作者 |倒序浏览
1、一般的编译器总是包含了汇编器,汇编只是其一个部分,那为啥还要用专门的汇编器呢?比如gcc编译时分四步:预编译-编译-汇编-链接,既然已经有汇编的功能,为啥还需要as86这种东西,省了不是简便?
2、gcc是否支持产生支持intel-16位的代码?个人看了一下man,好像不支持,请大侠确认下!

论坛徽章:
1
天蝎座
日期:2015-02-04 15:40:37
2 [报告]
发表于 2011-02-12 13:35 |只看该作者
as86是汇编中的一种,开发人员喜欢用as风格的汇编来编写底层程序,as汇编是低级语言,gcc是高级语言编译器,汇编是操作内存,寄存器的语言跟高级语言有很大差别的

论坛徽章:
0
3 [报告]
发表于 2011-02-12 13:39 |只看该作者
回复 2# shenyanxxxy


    也就是说gcc这里所指的汇编和汇编语言的意思不同?

论坛徽章:
0
4 [报告]
发表于 2011-02-12 14:32 |只看该作者
gcc只是个前端驱动程序,预处理,编译,汇编,链接每一步都是由单独的程序来做。汇编和链接程序甚至根本不属于GCC。

支持生成16位代码,直接写汇编文件的话,用.code16伪操作;C语言文件的话大概在命令行参数上指定体系为8086吧(march?)。

论坛徽章:
0
5 [报告]
发表于 2011-02-12 15:00 |只看该作者
本帖最后由 chengpeng0723 于 2011-02-12 15:01 编辑

回复 4# tempname3


    那汇编的部分使用的是啥?是否可以单独使用这个汇编器来汇编自己写的汇编代码?
那用gcc汇编的人多还是用as汇编的人多?
另:C语言也可以连接成16位的么?使用什么指令?我没有找到,请赐教!

论坛徽章:
1
射手座
日期:2013-11-07 09:19:48
6 [报告]
发表于 2011-02-12 16:43 |只看该作者
1. 概念理解不准确。
    程序的编译过程一般分为“预编译-编译-汇编-链接”四个步骤,使用GCC编译源码生成一个二进制可执行文件的时候,实际上分别调用了预编译器(cpp)、编译器(gcc)、汇编器(as,对于X86体系,as86是其中一种)、连接器(ld)。
2. 不了解,可以google之。

论坛徽章:
0
7 [报告]
发表于 2011-02-12 17:17 |只看该作者
回复 6# guocslock


    多谢,第一条解释已经很清楚了!

论坛徽章:
0
8 [报告]
发表于 2011-02-13 13:05 |只看该作者
gcc支持产生intel16位程序么?就是保护模式的程序?谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP