汇编语言编译器

时间:2023-07-29 08:41:39编辑:优化君

1,汇编器和编译器有什么区别

汇编器(比如MASM)全称是汇编编译器,用来编译汇编语言的。汇编语言的大部分命令都和机器码一一对应,而高级语言和汇编的伪指令是不和机器码一一对应的
,因此从某种意义上说,汇编码就相当于机器码。
编译器的作用是,将源文件(.c/.cpp/.pas等)转换为目标代码(.obj/.dcu等)。这是已经是二进制代码了。
最后由连接器(Linker),将目标代码连接起来,这样就形成了可执行文件

2,我下了个nasm编译器,但不知道应该怎么使用,麻烦用过的人可以教教我,谢谢!!!

一般用nasm都是把汇编文件.asm编译成执行文件.bin格式的二进制文件先要找到你想编译的文件,我的是在F盘OS文件夹下!第一步:先转到你自己的文件夹下!如图,先输入F:跳到F:\目录下,再用cd命令转换路径(OS是我自己的文件夹下,你自己用你自己的)第二步:就是编译了!如图nasm a.asm -o t.bin其中a.asm 是你要编译的文件,t.bin是编译后的文件,名字自定!编译之后就已经成功了!!!

3,汇编语言编译器是怎么编写的

编译器自举!搜索这个关键字
程序都是编译器编译的。这个是肯定的
至于第一款X语言编译器是不是直接1010101010自己写的那就不知道啦

一般开发编译器的话。有两条路选择
1.利用yacc(或者其变种)&lex(词法分析)-等工具自己生成语法模板
词法语法都可以使用这些工具自己生成
然后自己编写生成的中间码和生成的机器码就可以了
一般做编译原理类似试验都是如此的。许多编译器也的确是这样

2.自己写词法分析和语法分析。可以参考一些开源的编译器
lcc-这个是ANSI C99标准的编译器是开源的
或者nasm,watcom等编译器到www.sf.net上不少开源的编译器

总的来说。高级语言编译器比较难写
如果想快速写出一个的话
可以采用第一种做法。利用工具生成语法词法模板
先写一个简单的汇编编译器比较简单
开源的有nasm,jwasm(支持masm语法开源的编译器)
http://www.japheth.de/JWasm.html
fasm(这款编译器是自举的.就是自己可以编译自己),
http://flatassembler.net/

剩下的就是自己做好语言规则关键字map
引用高手的话。语言map做好了你的编译器也做好一半了
剩下的都是机械性的工作了。
生成x86或者arm指令。

优化工作这个很难解释.根据你所需要的做吧
毕竟可以做出一个无错,又XX的编译器已经很难得

你可以选择使用现有的编译器开发自己的编译器
然后等到你的编译器支持相当数量指令和成熟度的时候
使用自己的语法重新写一遍编译器.
这样你就可以用自己的编译器开发自己的编译器了(是不是很邪恶?)

另外举几个例子
Delphi的编译器是C++ Builder开发的。
而C++ Builder的IDE是Delphi开发的
C++ Builder的编译器是C++ Builder开发的-这个就是编译器自举了。。Delphi和C++ Builder共享一个后端化优化器。
Delphi 早期的版本的编译器是tasm直接编译的。可见Anders的汇编功力多强悍(Anders也就是后来VJ++,C#,.NET工程的核心架构师.最关键的灵魂级人物)

VC++的编译器是VC++开发的。很明显这都说明了编译器自举
自己开发自己。如果一个编译器可以做到自己编译自己。那基本上就可以实现任何功能了。

关于编译器开发的书籍可以看一下
龙书《编译原理(第二版)》
虎书《现代编译原理-C语言描述》
鲸书《高级编译器设计与实现》
建议从鲸书看起。然后是龙书
再来是虎书--虎书里面描述了许多现代编译器(正如其名)技术
例如面向对象啦,优化,垃圾回收等等.
鲸书看完基本上就可以实现一个简单的Tiny C编译器了
然后在龙书巩固,读一下语言规范,自己看一些开源的汇编编译器代码
自己就可以尝试做一个汇编语言编译器了.等到技术提高了
在尝试做一些高级语法识别,参考LCC代码做一下ANSI C99的
C语言编译器。再来就看你自己的兴趣和领悟度拉
如果想支持C++的话就得要对编译器做许多方便的研究

类似Java那种跨平台或者Ruby,Python等动态语言
虎书中也有描述。当然看自己功力了

精华总结

雨露,是万物生长的灵丹妙药,它能让万物欣欣向荣,给人带来希望和欢乐。起名,是给孩子取名最重要的一步,因为名字,在某种程度上就是一种文化。一个好的名字,可以让孩子从小拥有一个好的起点。那么,旸字取名呢,有着什么样的寓意及含义?

1、旸是五行金之字,五行属水,寓意孩子聪明机智,有大智慧,富有爱心。

根据五行属性来取名,金能克水,就像是金被水淹没了,所以会出现水变少,阳气不充足的情况。而旸字五行属水,表示有希望的样子,寓意孩子聪明机智,有大智慧,富有爱心,有爱心之义,对人非常友好,人缘非常好。由于在起名时需要注意五行八字,所以名字要避开太多不利因素。例如孩子取名为旸这个名字时,可选择五行属金且与水相冲或水火相济或金水相济等字面寓意相搭。

2、旸字是木之金之字,五行属木,为金之态,寓意孩子金木水火土五行协调,和谐发展。

雨露的滋润,日出而作,日落而息,都让人感到无比满足。旸,字音shèng,寓意着孩子有一颗包容和感恩之心。这与“日出而作、日落而息”有异曲同工之妙……旸给人带来欢乐、吉祥的同时,也寓意着孩子金木水火土协调发展……

3、旸是一种很有灵性的字,可形容孩子生机勃勃,乐观向上。

【旸】有光明、温暖、明朗的意思,可用作名字。【阳凯是太阳之意。【阳阳阳】阳代表明亮,阳代表光明及温暖。用阳代表光明的事物,表示孩子生机勃勃,乐观向上。【阳欣可表示欣欣向荣之意。【阳和】可表示温暖的意思。

4、旸字取名,寓意孩子乐观向上,对生活充满希望。

旸字寓意孩子乐观向上,对生活充满希望,乐观积极的生活态度,有助于提高孩子的自信心。另外旸字取名还有着积极向上、乐观开朗、吉祥幸福、生活美满、幸福美满等美好祝愿,其寓意吉祥。而且旸在中国汉字里是非常多见的一个字,我们可以将这个字用在名字中来表达。旸字取名代表着孩子未来很美好而充满希望。如果将其用于起名中,则代表着孩子未来会有很多希望。同时也象征着孩子将来会有所成就。

5、旸作为名字有吉祥富贵之意。

旸这个名字,在很早的时候就被赋予了吉祥富贵的寓意,因为它在名字中的意思很多。所以有很高的吉祥富贵之意。这个名字将孩子命名为【旸】具有美好的寓意。

上一篇:我认识的鬼子兵

下一篇:我爱大中国