请问学x86汇编语言用什么编译器???

作者&投稿:大狐娴 (若有异议请与网页底部的电邮联系)
初学80x86汇编, 应该用哪个编译器?~

一般小的指令段可以使用DEBUG,系统自带了的,在命令提示符下输入这几个字母并回车就可以使用。

如果要编译、连接为DOS下的实模式EXE文件,可以使用MASM,或者TASM,百度这些字母可以下载。

x86是cpu架构。masm tasm是编译器,可以运行于windows,我在Linux上一般用gas。不同编译器支持的汇编代码语法格式不同。汇编语言风格也分Intel和at&t风格。理论上汇编代码直接对应机器指令,可以写任何程序。当然也可以调win32api。只是没人这么干,因为很繁琐,相当于你一条一条写CPU指令了。汇编语言一般只在不得不写的情况下才写,比如需要性能最大化,或者指令最少化的场合,例如引导程序。引导扇区只有512字节,要塞进足够多的指令完成引导任务只有写汇编。

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

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

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

总的来说。高级语言编译器比较难写
如果想快速写出一个的话
可以采用第一种做法。利用工具生成语法词法模板
先写一个简单的汇编编译器比较简单
开源的有nasm,jwasm(支持masm语法开源的编译器)

fasm(这款编译器是自举的.就是自己可以编译自己),

剩下的就是自己做好语言规则关键字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等动态语言
虎书中也有描述。当然看自己功力了

楼上说那么多干嘛。无论哪种编译器都差不多,毕竟汇编是与机器语言对应的。还有,不同CPU有些指令是不同的,比如AMD与Intel处理器虽然有指令集名称相同,但是还有不同的地方。如果你在Intel编程就用Intel的编译器、ARM编程就用ARM提供的编译器。这样才好。

MASM, TASM, NASM和GNU assembler等,最普遍的是MASM。不同的CPU有不同的指令,汇编也有所不同,如ARM用ARM指令集和Thumb指令集,就是不同核的8位机的指令一个厂家和一个厂家也不同,如飞思卡尔的和51的就不同,

学习最基础的x86汇编建议选择eum8086软件


计算机方面有哪些专业?
课程包括电路原理、模拟电子技术、数字逻辑、数字分析、计算机原理、微机原理、微型计算机技术、计算机系统结构、计算机网络、高级语言、汇编语言、数据结构、操作系统、编译原理、系统分析与控制、信号处理原理、通信原理概论等。2、软件工程专业 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的...

计算机专业就业方向有哪些?
课程包括电路原理、模拟电子技术、数字逻辑、数字分析、计算机原理、微机原理、微型计算机技术、计算机系统结构、计算机网络、高级语言、汇编语言、数据结构、操作系统、编译原理、系统分析与控制、信号处理原理、通信原理概论等。2、软件工程专业 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的...

大学与计算机有关的专业都有哪些?
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。5,计算机科学与技术 计算机科学与技术是研究计算机的设计与制造,并利用计算机进行有关的信息表示、收发、存储、处理、控制等的理论方法和技术的...

前郭尔罗斯蒙古族自治县15684338761: 请问学x86汇编语言用什么编译器??? -
源亲胆石: 编译器自举!搜索这个关键字 程序都是编译器编译的.这个是肯定的 至于第一款X语言编译器是不是直接1010101010自己写的那就不知道啦一般开发编译器的话.有两条路选择 1.利用yacc(或者其变种)&lex(词法分析)-等工具自己生成语...

前郭尔罗斯蒙古族自治县15684338761: 初学80x86汇编, 应该用哪个编译器? -
源亲胆石: 一般小的指令段可以使用DEBUG,系统自带了的,在命令提示符下输入这几个字母并回车就可以使用.如果要编译、连接为DOS下的实模式EXE文件,可以使用MASM,或者TASM,百度这些字母可以下载.

前郭尔罗斯蒙古族自治县15684338761: 汇编语言是用什么软件编译的? -
源亲胆石: 《汇编语言》清华大学出版社 王爽版,这是比较全面的汇编教材,适合初学者.你以前学的是高级软件编程,现在学汇编需要了解计算机的组成知识.编译器就用masm 5.0就可以.是在dos下的.

前郭尔罗斯蒙古族自治县15684338761: 我想学习汇编语言 可是不知道用哪个编译器 也不会安装啊 -
源亲胆石: 关键看你需要学什么样的汇编语言,各个CPU的汇编都不一样,比如51,PIC,AVR单片机现在可以用KEIL编译就可以了,X86则由自己的编译器,当然PIC,51,AVR等单片机也有各自的编译器.

前郭尔罗斯蒙古族自治县15684338761: 汇编语言程序设计中使用哪种软件工具 -
源亲胆石: 1、MASM. 微软公司为x86 微处理器家族开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm,是Windows下开发汇编的利器. 2、NASM. 全称The...

前郭尔罗斯蒙古族自治县15684338761: 汇编新手学汇编,一般用什么编译器??有没有好用的IDE,比如VC6.0,ECLIPSE之类的 -
源亲胆石: Asm for windows集成环境共享版,程序中必不可少的语句它都帮我们写了,编程时只需往里面填充代码.我们学校历届都是用这个软件教学的.给个邮箱,发给你.

前郭尔罗斯蒙古族自治县15684338761: 汇编语言编译器推荐! -
源亲胆石: 如果学 16位的汇编,虚拟机要装dos + masm 6.11 如果学 32位的汇编,虚拟机装winxp+ masmplus 是比较好的(因为你是64位win8)

前郭尔罗斯蒙古族自治县15684338761: 初学者应该学汇编应该用什么汇编编译工具
源亲胆石: 51汇编集成

前郭尔罗斯蒙古族自治县15684338761: 学习汇编应该用什么软件进行编写和调试啊?
源亲胆石: 理论上说,所有的纯文本编辑器都可以作为编辑平台,比如你的记事本编译器用masm,basm等等,调试工具最基础的是DOS中的DEBUG调试,还有其他的如BASM中附带的DEBUG32等推荐你用MASM32,是一套完整的IDE.比较方便

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网