5-安装Bochs和NASM汇编器

1. 安装虚拟机Bochs

   从上一篇中,我们知道计算机的启动过程是从主引导扇区才真正开始的,而操作系统就是从这开始一步一步把自己运行起来的。其实换个角度想一下,如果我们把编译好的程序放在主引导扇区,不也能够让处理器执行吗?

  正常来说是可以的,而且还是在不依赖操作系统的情况下,让编译好的程序可以执行的唯一方法;但是,如果改写了硬盘的主引导扇区,那么windows和linux操作系统就会瘫痪,无法启动,显然这并不是我们所期望的。

  解决办法就是在现有的计算机基础上,再虚拟出一台计算机,为此我们需要安装以下几个软件:Bochs,Editplus,NASM汇编器。

  Bochs我们可以把它理解为是一个虚拟机,可以模拟64位处理器,并兼容32位和16位,bochs有各种操作系统版本的,这里我们下载Windows操作系统64位的2.6.8bochs。让bochs虚拟机来模拟一台没有“操作系统”的计算机,我们通过真实物理机可以控制这台“没有操作系统”的计算机,去观察这台计算机的寄存器和内存变化。

  Editplus是一个功能强大的文本编辑器,我们在写汇编代码时需要用到的。



   对于Bochs和Editplus两个软件的安装过程,很简单,这里就不再演示了,大家可以自行百度安装教程。这里我把虚拟机Bochs安装在D:\Bochs-2.6.8目录下,点击bochsdbg.exe程序启动虚拟机
在这里插入图片描述

点击start,如果看到下面这个窗口,说明虚拟机启动成功。
在这里插入图片描述


2. NASM汇编器

   每种处理器都可能会有自己的汇编语言编译器,同一款处理器针对不同平台(linux或windows)也会有不同版本的汇编语言编译器。现存的汇编语言汇编器有很多种,用的比较多的有MASM,FASM,TASM,AS86等… 我们使用的是《x86汇编语言:实模式到保护模式》一书中提供的NASM汇编语言编译器,当然你也可以使用其他的汇编语言编译器。

   关于NASM汇编器的下载安装,这里不做过多介绍。
   安装完毕后点击运行,NASM汇编器运行之后并不会显示一个图形的用户界面,它只能使用命令的方式进行操作。比如我们用notepad编写了一个汇编语言源程序,并把它保存到NASM的工作目录下,文件名为001.asm ,汇编语言源程序的文件名后缀格式就是“.asm”。
在这里插入图片描述

   然后在001.asm里写了2条汇编指令,指令后面跟的是注释,在汇编语言中注释的格式统一以“;”符号开始的,该符号后面的内容会被认为是注释,这样在编译过程中认为“;”符号后面开始的都是注释,就会忽略。


   下一步就是编译汇编语言源程序了,我们打开CMD窗口,输入以下命令,然后回车,编译就完成了。
在这里插入图片描述
   其中-f是指定输出文件的格式,而bin就是二进制的意思,-f bin合起来就是输出以二进制形式的文件,-o是指令输出的文件名,这里我们要求输出的文件名为以.bin为文件后缀。


在这里插入图片描述
   再打开D:\asm\code文件目录,我们可以看到以.bin结尾的文件就是编译好的机器指令程序,打开001.bin文件,以十六进制显示,这些十六进制的内容就是处理器可执行的机器指令。


3. 配置NASM汇编器快速编译

   有同学可能会觉得每次写完一个汇编程序都要这样输入命令进行编译实在是太麻烦了,为了方便我们可以使用配置快捷EditPlus快速启动编译器。


打开EditPlus软件,选择工具——首选项:
在这里插入图片描述

菜单文本:编译
把NASM汇编器的安装路径输入到命令窗口中,命令:“D:\asm\NASM\nasm.exe”
参数:"-f" “bin” “ ( F i l e P a t h ) " " − o " " (FilePath)" "-o" " (FilePath)""o""(FileDir)/$(FileNameNoExt).bin”
动作:捕获控制台输出


在这里插入图片描述
   之后每次,我们写完一个汇编程序就可以通过editplus编辑器进行编译了,也可以直接按Ctrl + 1快捷键进行编译。

要在Linux中安装NASM汇编器,有几种方法可以选择。 方法1: 1. 打开终端并进入需要安装NASM的目录,比如cd ~/ffmpeg_sources。 2. 下载NASM的源代码,可以使用命令:curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2。 3. 解压下载的源代码文件,可以使用命令:tar xjvf nasm-2.14.02.tar.bz2。 4. 进入解压后的nasm目录,可以使用命令:cd nasm-2.14.02。 5. 运行autogen.sh脚本,可以使用命令:./autogen.sh。 6. 配置安装路径,可以使用命令:./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"。 7. 编译和安装NASM,可以使用命令:make && make install。 方法2: 1. 安装Bochs环境,可以使用命令:sudo apt-get install build-essential xorg-dev libgtk2.0-dev。 2. 安装NASM,可以使用命令:sudo apt-get install nasm。 方法3: 1. 创建一个repo文件,可以使用命令:vim /etc/yum.repos.d/nasm.repo。 2. 在repo文件中添加以下文本: [NASM] name = Netwide Assembler baseURL = HTTP://www.nasm.us/pub/nasm/stable/linux/ enabled = 1 gpgcheck = 0 [NASM测试] name = Netwide Assembler(发布候选版本) baseURL = HTTP://www.nasm.us/pub/nasm/testing/linux/ enabled = 0 gpgcheck = 0 [NASM快照] name = Netwide汇编程序(每日快照构建) baseURL = HTTP://www.nasm.us/pub/nasm/snapshots/latest/linux/ enabled = 0 gpgcheck = 0 3. 保存并关闭文件。 4. 现在可以使用命令安装NASM:sudo yum install nasm。 以上是三种在Linux中安装NASM的方法,请根据你的需求选择其中一种方法来进行安装
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值