Advertisement

C 编译器与 MASM32 汇编的自举方法

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本文介绍了如何使用C编译器和MASM32汇编工具进行自举的过程,详细阐述了两者结合的技术细节及实现步骤。 可以将C语言编译成MASM32汇编语言的程序分为四个文件:sca.c、p.c、table.c 和 g.c。其中 sca.c 负责扫描并生成符号流,p.c 用于构建语法树,table.c 则负责创建各种变量表,g.c 直接生成 MASm32 汇编代码。这是一个C语言的编译器,适合想要学习编译原理的人参考使用。 这个程序可以自举(即自行编译自身),并且仅包含约三千多行代码就支持绝大多数 C 语法特性,但不包括 switch 结构和 float 类型的支持。该程序还附带了示例、源代码以及 MASm32 汇编器供学习参考。 例如,在命令行中输入 g example.c 可以直接显示example.c文件汇编后的结果;若要生成名为 example.asm 的汇编文件,只需在命令行中键入 g example.c -file=example.asm。进一步地,通过使用 MASm32 汇编器执行 masm 命令可以将生成的汇编代码转换为可执行程序example.exe。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • C MASM32
    优质
    本文介绍了如何使用C编译器和MASM32汇编工具进行自举的过程,详细阐述了两者结合的技术细节及实现步骤。 可以将C语言编译成MASM32汇编语言的程序分为四个文件:sca.c、p.c、table.c 和 g.c。其中 sca.c 负责扫描并生成符号流,p.c 用于构建语法树,table.c 则负责创建各种变量表,g.c 直接生成 MASm32 汇编代码。这是一个C语言的编译器,适合想要学习编译原理的人参考使用。 这个程序可以自举(即自行编译自身),并且仅包含约三千多行代码就支持绝大多数 C 语法特性,但不包括 switch 结构和 float 类型的支持。该程序还附带了示例、源代码以及 MASm32 汇编器供学习参考。 例如,在命令行中输入 g example.c 可以直接显示example.c文件汇编后的结果;若要生成名为 example.asm 的汇编文件,只需在命令行中键入 g example.c -file=example.asm。进一步地,通过使用 MASm32 汇编器执行 masm 命令可以将生成的汇编代码转换为可执行程序example.exe。
  • C,把C语言转换为MASM32语言
    优质
    本工具是一款创新性的C编译器,能够将标准C语言代码转化为MASM32汇编语言,便于进行底层优化和硬件操作。 前段时间我利用业余时间花了三个月编写了一个C语言编译器,用于将C代码转换为MASM32汇编代码。整个项目包括四个文件,共计两千多行代码:sca.c负责词法分析,p.c生成语法树,table.c管理符号表,g.c则将语法树转化为具体的MASM32指令。目前该编译器支持char、short、int和double四种数据类型;其他有兴趣的用户可以自行修改并增加更多功能。 由于MASM32汇编语言的一些限制,当前版本仅允许在函数开头定义局部变量,并且全局变量不能与任何局部变量名称相同。此外,它不支持强制类型转换以及switch语句(个人认为switch语句用途有限)。另外需要注意的是,该编译器只接受使用双引号的#include指令。 我将此项目打包并分享给有兴趣的人士学习和研究之用;当然不允许用于商业目的。包内附带了一些示例文件,适合那些想要了解编译原理或MASM32汇编语言的学生参考(特别是对于后者来说,可以尝试直接使用C代码生成相应的MASM32指令)。如果在使用过程中遇到任何问题,请随时与我联系;我会尽力帮助解答你们的问题。
  • C到MIPSC-to-MIPS-Compiler
    优质
    C-to-MIPS-Compiler是一款用于将高级语言C转换为低级MIPS汇编代码的工具。它帮助程序员理解计算机底层架构,并优化程序性能。 C至MIPS汇编编译器:将C语言代码转换为MIPS汇编代码的工具。
  • C# 原理
    优质
    《C# 编译原理与编译器》一书深入剖析了C#语言的编译机制,涵盖词法分析、语法解析及代码生成等核心内容,适合软件开发人员和计算机科学爱好者研读。 这是一个体现编译原理的程序,它清晰地展示了我们编写程序最终会被编译成什么样的结果。
  • 原理——简易C生成代码
    优质
    本课程专注于编译原理的实际应用,通过构建一个简单的C语言到汇编代码的转换器,深入理解编译过程。 在刚刚过去的学期里,我学习了编译原理,并完成了一项课程大作业——编写一个简易的C语言编译器。该编译器能够实现加减乘除四则运算、取模赋值运算、逻辑表达式运算以及复合语句等功能,并支持if、while和for语句的应用。此外,它还具备输入输出功能并能生成汇编代码。不过,我尚未完成移位运算法的编写工作。目前这个项目已经经过调试,请大家如果有好的建议可以告诉我。
  • 语言
    优质
    汇编语言的编译器是一种将汇编源代码转换成机器码的目标程序的软件工具。它能够处理特定架构下的汇编指令,并优化生成的机器码以提高效率和性能。 汇编语言编译器能够帮助你更高效地处理汇编代码。尽管你可以使用记事本编写程序,但其整洁度和舒适性远不及这款专门的编译器。因此,我更加推荐使用这个工具。
  • VS2010(或2012)MASM32开发环境搭建
    优质
    本教程详细介绍如何在Visual Studio 2010或2012环境下配置MASM32汇编语言开发环境,涵盖工具安装、项目设置及调试技巧。 汇编环境搭建可以使用VS2010或VS2012结合MASM32来完成。
  • MASM 5.0
    优质
    MASM 5.0是一款功能强大的汇编语言开发工具,专为Windows环境设计,支持高效的32位编程和调试。 MASM是由微软公司开发的一款汇编语言编程工具,提供了一个可视化的开发界面,使开发者无需在DOS环境下进行汇编程序的编写工作。它支持80x86汇编以及Win32 Asm,并且与Windows平台兼容性良好。不过,在其他操作系统上使用时可能会遇到一些限制。 MASM版本持续更新中,当前最新版为11.对于大多数开发者而言,推荐采用该版本进行开发操作。其中,MASM 5.0是最常见的汇编连接软件之一。其基本的操作流程是:输入.asm文件后将其转化为.obj文件;之后通过link命令生成.exe可执行文件。
  • MASM 5.0
    优质
    MASM 5.0是一款专为Windows环境设计的汇编语言开发工具,支持32位编程,提供强大的调试功能和详细的错误信息,是学习与开发汇编程序的理想选择。 masm5.0 汇编编译器包含以下文件:CREF.EXE、ERROUT.EXE、EXEMOD.EXE、EXEPACK.EXE、LIB.EXE、LINK.EXE、MAKE.EXE、MASM.EXE 和 SETENV.EXE。