Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102112
  • 博文数量: 19
  • 博客积分: 840
  • 博客等级: 准尉
  • 技术积分: 235
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-02 21:25
文章分类

全部博文(19)

文章存档

2011年(1)

2010年(5)

2009年(13)

我的朋友

分类: LINUX

2009-11-08 21:43:23


来源:http://duanli.cublog.cn
说明:转载请注明来源,交流请Email给作者

介绍两个工具,用来编译我们的操作系统引导程序

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汇编参考这个地址

阅读(1794) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~