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