导航:首页 > 源码编译 > 汇编语言做编译器

汇编语言做编译器

发布时间:2022-07-28 19:08:39

① 汇编语言编译器是怎么编写的

最开始的编译器是机器语言写的,然后写出来支持部分之后,就可以用这部分继续编译其他部分的。

② 关于汇编语言的编译器

给你个假设的例子看能说明白不:
咱国某型计算机研制,指令系统确定后,
(1)先用机器语言编写一个“小汇编”编译器,它能编译该机所有的机器指令相对应的汇编符号语言
(2)然后用小汇编语言编写该机的汇编编译器和FORTRAN编译器
(3)……再PASCAL…
另,再多说几句。:以上说的是几十年前是这么做的,现在用的是交叉汇编等其它一些技术,比如:可以用成熟的机器的C语言写个某种机器编译器(可以是任何语言),,用这个交叉编译器再编写目标机的各种语言编译器。

③ 写编译器必须要会汇编语言吗

这种事情从理论层面来说:不一定要与汇编语言有什么瓜葛。你完全可以让你的编译器直接编译成机器码。大部分C/C++编译器(不是所有的)之所以先编译成汇编语言,是为了解构。从C到汇编的“翻译”相对容易(都算是抽象语言,有语义的),同时汇编语言的编译器效率很高,可以生成质量非常高的机器码。所以两者结合,可以突出各自的优势,减少复杂度。
但是如果有必要,当然也可以直接编写产生机器码的编译器,实际上Java/C#这样的半编译语言和Js这样的脚本语言,都没有先转换成汇编的这一步。前者是因为强大的虚拟机技术,直接把字节码转换成机器码执行了,后者是灵活的解释器,实时把代码转换成机器码执行,而完全没有“编译”这一步(当然如果深究的话,出于性能考虑,很多高性能的解释器也会提前“预编译”一部分代码,但这是具体实现,不是宏观概念)。

④ 汇编语言编译器的MASM编译器介绍

MASM是Microsoft公司推出的汇编编译器。它的版本从低到高经过了很多次的升级(微软的通病,升级补丁多如牛毛)。每次升级除了例行的错误修正外都增加了一些新的功能,以至于到最后高版本和低版本的语法和功能相差很多,向下兼容性也不好。低版本的MASM固然无法编译高版本的源程序,但高版本的MASM也可能无法正常编译低版本的源程序,如MASM 4.0写的源程序常常无法在MASM 6.x上编译成功。在使用MASM系列编译器时,如果不先搞清楚特定的语法和编译选项可以在哪个版本上用,编译中就会错误连篇。所以在这里有必要了解一下MASM各版本的演变过程
下表列出了不同版本MASM编译器的区别。
版 本
简 介
MASM 4.00
这是最先广泛使用的一个MASM版本,适用于DOS下的汇编编程。它很精巧,但使用起来不是很智能化,需要用户自己一板一眼地写出所有的东西。很多教科书上讲的8086汇编语法都是针对这个版本的,对程序员来说。它只比用Debug方便一点点。
MASM 5.00
MASM 5.00比4.00在速度上快了很多,并将段定义的伪指令简化为类似 .code与.data之类的定义方式,同时增加了对80386处理器指令的支持,对4.00版本的兼容性很好
MASM 5.10
对程序员来说,这个版本最大的进步是增加了对@@标号的支持。这样,程序员可以不再为标号的起名花掉很多时间。另外,MASM 5.10增加了对OS/2 1.x的支持
MASM 5.10B
1989年推出,比上一个版本更稳定、更快,它是传统的DOS汇编编译器中最完善的版本
MASM 6.00
1992年发布,有了很多的改进。编译器可以使用扩展内存,这样可以编译更大的文件,可执行文件名相应从Masm.exe改为Ml.exe。从这个版本开始可以在命令行上用*.asm同时编译多个源文件,源程序中数据结构的使用和命令行参数的语法也更像C的风格。最大的改进之一是开始支持 .if/.endif这样的高级语法,这样,使用复杂的条件分支时和用高级语言书写一样简单,可以做到几千行的代码中不定义一个标号;另外增加了invoke伪指令来简化带参数的子程序调用。这两个改进使汇编代码的风格越来越像C,可读性和可维护性提高了很多
MASM6.00A
未发售的版本
MASM 6.00B
最后一个支持OS/2的MASM版本,修正了上一版本中的一些错误
MASM 6.10
修正了一些错误,同时增加了/Sc选项,可以在产生的list文件中列出每条指令使用的时钟周期数
MASM6.10A
1992年发布,修正了一些内存管理方面的问题
MASM 6.11
1993年11月发布,支持Windows NT,可以编写Win32程序,同时支持Pentium指令,但不支持MMX指令集
MASM6.11C
1994年发布,增加了对Windows 95 VxD的支持
MASM 6.12
1997年8月发布,增加 .686,.686P,.MMX声明和对相应指令的支持
MASM 6.13
1997年12月发布,增加了 .K3D声明,开始支持AMD处理器的3D指令
MASM 6.14
这是一个很完善的版本,它在 .XMM中增加了对Pentium III的SIMD指令集的支持,相应增加了OWORD(16字节)的变量类型
MASM 6.15

⑤ 汇编语言的编译器是用什么语言写的,为什么

直接用指令码写出第一个汇编语言编译器,然后就可以用汇编语言写新的编译器,其实很多语言都可以写汇编编译器

比如第一个C语言编译器可能是用汇编写的,但是以后的C编译器都可以用C语言来写,神奇吧,哈哈

⑥ 汇编语言是用什么软件编译的

《汇编语言》清华大学出版社 王爽版,这是比较全面的汇编教材,适合初学者。你以前学的是高级软件编程,现在学汇编需要了解计算机的组成知识。编译器就用masm 5.0就可以。是在dos下的。

⑦ 汇编语言用什么当编译器给个中文下载地址

汇编语言集成编译器
V1.2
大小:1.55MB
格式:ZIP
下载地址:
http://download.pansend.com/M26e8?p=.html
速度很快哦!
点一下我想要,只要几分钟内就给你发过去~

⑧ 制作一个简单的编译器

还能编译汇编。。。
我晕。。。
我想这个不是一般人可以做到的,祝你好运!
如果你仅仅针对文本编辑器的话就好办了。

⑨ 汇编语言编译器是怎么来的

第一个软件,显然是用机器语言写的。

当用机器语言写成了文字处理软件,才能用屏幕、键盘打字。

当用机器语言写成了编译软件,才能把打好的字,编译成机器码。

⑩ 汇编语言编译器的介绍

汇编语言是一种以处理器指令系统为基础的低级语言,采用助记符表达指令操作码,采用标识符表示指令操作数。作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。常用的高级语言编译器有Microsoft公司的MASM系列和Borland公司的TASM系列编译器,还有一些小公司推出的或者免费的汇编软件包等。

阅读全文

与汇编语言做编译器相关的资料

热点内容
服务器如何看日活数 浏览:684
数控车床原理图及编程 浏览:287
java文件流下载 浏览:336
编程工作工资多少 浏览:437
专业安全文件夹 浏览:777
表格里的根号算法怎么打 浏览:193
javacorepdf 浏览:573
pdf转换word编辑 浏览:446
35岁程序员实习期恐慌 浏览:701
如何做一个系统u盘文件夹名字 浏览:968
如何确认哪个ip重启了服务器 浏览:130
照片压缩软件绿色版 浏览:109
pgp基于什么体系加密 浏览:637
python合法赋值语句格式 浏览:715
程序员数学线性代数 浏览:624
看帧率app如何使用 浏览:525
从DHC服务器租用IP地址 浏览:477
编译怎么学 浏览:333
数码管显示0到9plc编程 浏览:667
服务器是为什么服务的 浏览:769