• 汇编语言第二章知识梳理


    • 一个典型的cpu由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。
    • 内部总线实现cpu内部各个器件之间的联系。外部总线实现cpu和主板上其他器件的联系。
    • 8086CPU中的14个寄存器:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW
    • 概括的讲,16位结构描述了一个cpu具有以下几个方面的特征:(1)运算器一次最多可以处理16位的数据。(2)通用寄存器的最大宽度为16位。(3)寄存器和运算器之间的通路是16位的。
    • 8086cpu有20位地址总线,可传送20位地址,寻址能力位1MB。内部为16位结构,它只能传送16位的地址,表现出的寻址能力只有64KB。它采用的是一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。在读写内存时,步骤如下:                                                                                                            (1)cpu中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址。                                                                                                                    (2)段地址和偏移地址通过内部总线送入一个称为地址加法器的部件。                                                                                                                                            (3)地址加法器将两个16位地址合并成一个20位的地址。(地址加法器合成物理地址的方法:物理地址=段地址*16+偏移地址。“段地址*16”有一个更为常用的说法就是数据左移4位(二进制位)。基础地址+偏移地址=物理地址。)
    • 8086pc工作过程:

           (1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器。

           (2)IP=IP+所读取指令的长度,从而指向下一条指令。

           (3)执行指令。转到步骤(1)。

           (4)重复这个过程。

            也就是说内存中的一段信息曾被cpu执行过的话,那么它所在的内存单元必然被CS:IP指向过。

    • mov指令可以改变8086cpu大部分寄存器的值,被称为传送指令。但是mov指令不能用于设置CS,IP的值。
    • 修改CS,IP的值:

           (1)同时修改CS,IP的内容:jmp  段地址:偏移地址
     

           (2)仅修改IP的值:jmp 某一合法寄存器  

  • 相关阅读:
    Entity Framework 6 Recipes 2nd Edition(9-4)译->Web API 的客户端实现修改跟踪
    Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化
    Entity Framework 6 Recipes 2nd Edition(9-2)译->用WCF更新单独分离的实体
    Entity Framework 6 Recipes 2nd Edition(9-1)译->用Web Api更新单独分离的实体
    jar包和war包的介绍和区别
    软件设计-高内聚耦合(转)
    Android中的dp,px以及wrap_content的实际展示效果
    Eclipse编辑器样式修改
    对TextView设置drawable,用setCompoundDrawables方法实现
    Android调用本机应用市场,实现应用评分功能
  • 原文地址:https://www.cnblogs.com/zakon/p/9744596.html
Copyright © 2020-2023  润新知