两个问题_谢谢帮忙

1、一般的编译器总是包含了汇编器,汇编只是其一个部分,那为啥还要用专门的汇编器呢?比如gcc编译时分四步:预编译-编译-汇编-链接,既然已经有汇编的功能,为啥还需要as86这种东西,省了不是简便?
2、gcc是否支持产生支持intel-16位的代码?个人看了一下man,好像不支持,请大侠确认下!

作者: chengpeng0723   发布时间: 2011-02-12

as86是汇编中的一种,开发人员喜欢用as风格的汇编来编写底层程序,as汇编是低级语言,gcc是高级语言编译器,汇编是操作内存,寄存器的语言跟高级语言有很大差别的

作者: shenyanxxxy   发布时间: 2011-02-12

回复 shenyanxxxy


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

作者: chengpeng0723   发布时间: 2011-02-12

gcc只是个前端驱动程序,预处理,编译,汇编,链接每一步都是由单独的程序来做。汇编和链接程序甚至根本不属于GCC。

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

作者: tempname3   发布时间: 2011-02-12

本帖最后由 chengpeng0723 于 2011-02-12 15:01 编辑

回复 tempname3


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

作者: chengpeng0723   发布时间: 2011-02-12