介绍两个工具,用来编译我们的操作系统引导程序
DJGPP:
官网下载: 或者
搜迅雷吧
DOS下的自由源代码的保护模式C语言编译器,支持4GB内存。
DJGPP is a complete 32-bit C/C++ development system for Intel 80386 (and higher) PCs running DOS. It includes ports of many GNU development utilities. The development tools require a 80386 or newer computer to run, as do the programs they produce. In most cases, the programs it produces can be sold commercially without license or royalties.
更多请参考
下载解压到D:\Program Files\djgpp
右击“我的电脑”,点击属性,如下图,改变PATH环境变量,直接加在PATH后面,路径前面有个E文分号;
如我的改变后为:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;D:\Program Files\djgpp\bin
NASM:
网际汇编语言NASM是基于80X86架构的CPU而设计的,具有可移植性的模块化的汇编语言。它支持多种目标文件格式,包括Linux 的a.out和ELF,NetBSD/FreeBSD,COFF以及Microsoft的16位、32位目标文件格式。它也可以编译普通的二进制文件。其语法简单、易于理解,和Intel的一样,但却一点也不复杂。支持Pentium、P6、MMX操作码,同时具有宏处理能力。
DOS下使用举例:
文件hello.asm
-----------------------------------------------
; hello.asm nasm
org 100h
section .text
start:
mov ah,9
mov dx,szoveg
int 21h ;使用DOS的21h中断来显示字符串,功能号ah = 9;入口参数 DX
ret
section .data
szoveg db "hello world!$"
section .bss
---------------------------------------------------
DOS下汇编:
nasm -f bin hello.asm -o hello.asm
(注意:nasm区分大小写, Hello与hello是不同的标识符)
更多
nasm -h
注:下图的“DOS在这里”非常有用!!!不然在dos下切换路径会发狂!!!这个可以用优化大师之类软件增加右键菜单,或者使用番茄花园的XP SP3吧
另外,Linux下的汇编编译器有多种,语法也不尽相同,其中GAS是比较基本的汇编工具。但是GAS采用的不是我们通常在DOS体系下使用的汇编语法,它采用的是AT&T的语法格式,这是继承Unix的特点,与Intel语法格式有很大的不同。Nasm这跟DOS下用的Intel x86汇编风格的Masm类似,是Linux中语法与DOS最为相像的一种汇编工具,具体linux如何使用nasm汇编参考这个地址()
阅读(1852) | 评论(0) | 转发(0) |