×

汇编语言编译器

汇编语言编译器(汇编语言的编译器是运行在什么平台上)

admin admin 发表于2023-07-20 22:17:59 浏览59 评论0

抢沙发发表评论

本文目录

汇编语言的编译器是运行在什么平台上

我知道 我回答了很多问题 都没回复 没意思了 我很失望 不回答了 去看编译原理就明白了 好吧那我就告诉你吧实际上裸机可以运行任何软件为什么一定要在操作系统上运行 就是为了解决应用程序对硬件编程的复杂性 所以操作系统提供了编程接口 就是系统调用 应用程序直接调用操作系统的接口要比直接对硬件编程简单的多 着就是操作系统其一的功能你想知道汇编器和操作系统 是如何实现的吗我也知道第一个汇编器其实 是人工翻译的 就是看CPU厂家的手册进行翻译的 后来就把人工翻译的过程 用计算机来实现就成了汇编器 第一个汇编器是人工翻译成机器语言的 在计算机上运行的功能很有限 用这个功能很有限的汇编器 去编译一个功能强大的汇编程序 在用这个汇编器去编译汇编语言写的C语言编译程序 就这样慢慢就发展成了今天的非常复杂的编译器操作系统是如何实现的那 我也知道没心情在说了

汇编语言的编译器是用什么写的呢

  • 编译器一般是用c写的,最初的东西肯定是用机器语言写的,我老师曾经用在纸带上穿孔的办法写过程序。他当时的愿望是用键盘敲一个A就能输入一个A,而不是出来一排孔。

  • 你不是已经想到了没~?第一个编译器就是机器码写的.只要是设身处地的想一想就知道,当是的人写的时候就跟我们现在写C语言一样,因为那时候只有机器码,并没有什么累不累的想法.只有感觉自己实在创造一种新的东西,在为计算机界做潜在的巨大贡献.

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

  • 直接用指令码写出第一个汇编语言编译器,然后就可以用汇编语言写新的编译器,其实很多语言都可以写汇编编译器比如第一个C语言编译器可能是用汇编写的,但是以后的C编译器都可以用C语言来写,神奇吧,哈哈

  • 楼主这个问题,提得好,真的,说明你比较有想法! 这个涉及到一个编译器悖论的问题,你可以请教你们老师.好象《汇编语言》这个教材里面也有涉及的 某种编译器可以是比它低级的或者高级的语言编写的各种接口:先把用户编写的程序翻译为编译器自己能识别的语言,然后在以2进制的形式,传递给CPU和内存,进行处理,然后返回,在反过来翻译一遍,输出结果,释放缓冲区. 这里面涉及到N多问题,在此不讨论了.

汇编语言用什么软件写的后缀名是什么

汇编语言不是用什么软件写的,是由字母、单词来代替一个特定的指令来的,后缀名是.asm。

汇编语言是用一些容易理解和记忆的字母,单词来代替一个特定的指令,比如:用“ADD”代表数字逻辑上的加减,“MOV”代表数据传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。

汇编语言具有更高的机器相关性,更加便于记忆和书写,但又同时保留了机器语言高速度和高效率的特点。汇编语言仍是面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序不易被移植,故不像其他大多数的高级计算机语言一样被广泛应用。

扩展资料

汇编语言表达式常量:

1》数值常量1010H

2》符号常量

伪指令:《符号名》EQU《表达式》

功能:定义所指符号常量所代表的常量的值

说明:表达式可以是常数、指令助记符、伪指令助记符、寄存器名字或其他自定义的符号

例子:VAEQU100;表达式为常数

NUMEQUVA+100;表达式为数值表达式

OPEEQUADD;表达式为指令助记符

伪指令:《符号名》=《常数表达式》

功能:定义所指符号常量所代表的常量的值

说明:“=”之后只能是常数,对于字符和字符串汇编时按照整数处理

例子:VA=100

NUM=3*100

NUM=VA+500

参考资料来源:百度百科—汇编语言

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

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

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

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