BY eHWRITTEN ON HALO1 MIN READ
segment
segment 地址 偏移量的本质 jmp short 指令前缀 操作码字节寻址方式字节 寻址方式组成: ModR/M字节 位移量 立即数 机器码前面有B8,因为指令中有立即数 真指令 不涉及转换 var dw 0x99 地址=上一个地址+上一条地址的内容的长度(一个0x00是一个字节) secti

segment
-
地址 偏移量的本质
-
jmp short
-
指令前缀 操作码字节寻址方式字节
寻址方式组成:
- ModR/M字节
- 位移量
- 立即数
机器码前面有B8,因为指令中有立即数
-
真指令 不涉及转换
-
var dw 0x99 -
地址=上一个地址+上一条地址的内容的长度(一个0x00是一个字节)
-
section 节
- 在有的编译器中同时支持
- segment
- section
- 在有的编译器中同时支持
-
vstart
-
section被 vstart修饰的时候,可以被赋予一个虚拟的起始地址
-
告知编译器编译时候开始的地址
-
所以vstart == org
-
关于mbr为什么可以正常运行
因为硬件决定mbr的代码会被加载到0x7c00 而不是自己决定
-
vstart使用的时机:预先知道mbr会被加载到哪个地址
-
real mod
IA32指令格式
| 前缀 | 操作码 | 寻址方式,操作数类型 | 立即数 | 偏移量 |
|---|---|---|---|---|
-
SRAM-缓存
-
实模式回卷
-
[高端内存]
-
立即数 直接存在指令中
-
内存寻址
-
栈
线性表
- call
- ret
- jmp
- pull
- pop
-
段寄存器是存的段的基址
-
BP basepointer 基址指针寄存器
- SP栈顶指针,随着压栈弹栈变动 不稳定
- BP 基址指针,作为参考点
push bp
mov bp,sp
sub sp,8