zoukankan      html  css  js  c++  java
  • DIY微型操作系统(2)—— 寄存器赋值

    书上已经为我们提供了最简单的“hello world”程序了

    相信大家玩的也挺欢乐的,不过这只是引导扇区的雏形

    而且如果找不到完整的光盘上的源代码,新手估计很难学的下去

    所以之后文中也会尽量贴出代码

    不过在继续开始之前,我们有另外意见很重要的事情要做:

    让所有东西都在掌控之中!

    如果你觉得觉得有几个特殊寄存器的值不知道怎么给,那么

    接下来我们要看看怎么样随心所欲地给所有寄存器赋值

     

     

    Intel x86系列寄存器与赋值方式 (存放到内存顺序:低地址对低地址)

    32bit名称

    16bit名称

    注释

    赋值方式

    EAX

    AX

    accumulator

     

    ECX

    CX

    counter

     

    EDX

    DX

    data

     

    EBX

    BX

    base

    可以用来控制制定内存地址(变址):

    MOV [SI],AX

    EBP

    BP

    base pointer

    ESI

    SI

    source index

    EDI

    DI

    destination index

    ESP

    SP

    stack pointer

     

    EFLAGS

    FLAGS

    flags

    不可以用MOV直接赋值

     

    IP

    instruction pointer

     

    CS

    code segment

     

    DS

    data segment

    不能用MOV赋立即数

    但可以通过AX等寄存器赋值

     

    ES

    extra segment

     

    SS

    stack segment

     

    FS

    segment part2

     

    GS

    segment part3

     

    GDT

    global description table

    通过LGDT赋值

     

    LDT

    local description table

    通过LLDT赋值

     

     

    赋值方式补充

    寄存器

    赋值方式

    DS,ES,SS,FS,GS

    MOV AX,7C00H

    MOV DS,AX

    PUSH 和 POP 指令

    IP

    JMP

    CALL

    CS:IP

    JMP 0x0001:0x0000

    CALL

    PUSH 和 RET 指令

    (E)FLAGES

    PUSHFD    ;push flags double-word

    POP EAX

    ...

    PUSH EAX

    POPFD    ;pop flags double-world

    GDT

    LGDT

    LDT

    LLDT

     

    一看这些,估计头都有点晕了吧

    没关系,也不用一下子就记住,只要用的时候知道上哪里查找就可以了。在以后的开发过程中用着用着就记住了。

    那么这次我们就到这里,可以在看书的时候稍微留意一下作者川合先生的代码是怎么赋值的,或许会有不少新收获。

     

    转载本文请保留以下网址:http://www.cnblogs.com/warren-wong/p/3976042.html

    如果发现文中有错误之处,请务必告诉我,谢谢大家。

     

  • 相关阅读:
    Vue中v-for不绑定key会怎样
    关于Vuex可直接修改state问题
    不要完全相信Chrome控制台打印的信息
    Vue挂载元素的替换
    (转)openURL的使用方法
    iOS:将NSDate转换为当前时区时间
    OC中使用 static 、 extern、 const使用
    iOS: 正则表达式
    iOS:原生二维码扫描
    iOS:ABPeoplePickerNavigationController系统通讯录使用
  • 原文地址:https://www.cnblogs.com/warren-wong/p/3976042.html
Copyright © 2011-2022 走看看