《x86汇编语言:从实模式到保护模式》(预备知识---第1~4章)

笔者建议,在阅读《x86汇编语言:从实模式到保护模式》之前最好阅读王爽的《汇编语言》(非常适合新手入门)。

NASM汇编器

NASM下载地址
HexViewer下载地址(16进制查看器,建议用本书配套的2011版的)

汇编代码编译示例
  1. 可以使用记事本或Notepad++编辑器写代码,文件名exam.asm。在C盘根目录建立文件夹asm,把exam.asm放入文件夹asm中。
mov ax,0x3f		;将立即数传送到AX寄存器
add bx,ax
add cx,ax
  1. 打开NASM Shell,编译生成exam.bin。
    在这里插入图片描述
    在这里插入图片描述
  2. 用HexViewer查看exam.bin文件和exam.asm文件。
    在这里插入图片描述
    在这里插入图片描述

硬盘及主引导扇区

在这里插入图片描述
硬盘的第一个扇区是 0 面 0 道 1 扇区,或者说是 0 头 0 柱 1 扇区,这个扇区称为主引导扇区。如果计算机的设置是从硬盘启动,那么,ROM-BIOS 将读取硬盘主引导扇区的内容,将它加载到内存地址 0x0000:0x7c00 处,然后用一个 jmp 指令跳到那里接着执行:jmp 0x0000:0x7c00

LBA 模式

采用磁头、磁道和扇区这种模式来访问硬盘的方法称为 CHS 模式,但不是很方便。想想看,如果有一大堆数据要写,还得注意磁头号、磁道号和扇区号不要超过界限。所以,后来引入了逻辑块地址(Logical Block Address,LBA)的概念。现在市场上销售的硬盘,无论是哪个厂家生产的,都支持 LBA 模式。
LBA 模式是由硬盘控制器在硬件一级上提供支持,所以效率很高,兼容性很好。LBA 模式不考虑扇区的物理位置(磁头号、磁道号),而是把它们全部组织起来统一编号。在这种编址方式下,原先的物理扇区被组织成逻辑扇区,且都有唯一的逻辑扇区号,比如,某硬盘有 6 个磁头,每面有 1000 个磁道,每磁道有 17 个扇区。那么:
逻辑 0 扇区对应着 0 面 0 道 1 扇区;
逻辑 1 扇区对应着 0 面 0 道 2 扇区;
……
逻辑 16 扇区对应着 0 面 0 道 17 扇区;
逻辑 17 扇区对应着 1 面 0 道 1 扇区;
逻辑 18 扇区对应着 1 面 0 道 2 扇区;
……
逻辑 33 扇区对应着 1 面 0 道 17 扇区;
逻辑 34 扇区对应着 2 面 0 道 1 扇区;
逻辑 35 扇区对应着 2 面 0 道 2 扇区;
……

安装和使用虚拟机VirtualBox

VirtualBox下载地址
安装,一路默认即可,安装成功后,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为了可以用HexViewer直接打开虚拟硬盘文件,建议下面大小设置小一些,笔者改成了128MB。
在这里插入图片描述
在这里插入图片描述
使用本书配套软件FixVhdWr想虚拟硬盘中写入exam.bin文件的数据:
在这里插入图片描述
使用HexViewer查看虚拟硬盘文件,文件末尾如下,显示了Virtual Box的虚拟硬盘规范,对应的VHD文件的规范标志信息:
在这里插入图片描述

特别说明

本文参考《x86汇编语言:从实模式到保护模式》李忠 著

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值