zoukankan      html  css  js  c++  java
  • 汇编学习-第二章(CPU工作原理)

    1、逻辑地址与物理地址

    逻辑地址:人为假设计算机分散的内存连接一起,并分好段。上面的地址称逻辑地址。

                        逻辑地址 = 基地址(段地址 * 16) + 偏移地址

    物理地址:存储单元在计算机中的唯一编号。CPU访问存储单元需要的地址。

    2、通用寄存器

    一个典型的CPU,由控制器、运算器、寄存器等组成,通过内部总线连接。

    内部总线实现CPU内部期间的联系。

    外部总线实现CPU与主板上其他期间联系。

    8086有16个通过寄存器

    AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW

    寄存器为16位,存储值最大值为(2的16次方-1)。因为intel公司的向上兼容性。

    AX,BX,CX,DX均可拆分2个8位寄存器。AH和AL,其他类似。

    3、字与字节

    字节:byte = 8位

    字:两个字节 = 16位

    4、16位CPU实现20位物理地址的方法

    8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。

    8086外部有20位地址总线,可传送20位地址,寻址能力为1M。

    8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。

    段地址+偏移地址 -> 地址加法器 -> 20位的物理地址。

    地址加法器合成物理地址的方法:段地址×16+偏移地址=物理地址。

    “段地址×16”有一个更为常用的说法就是数据左移4位。(二进制位)

    二进制的数据左移4位,二进制中左移一位等于乘2,移动四位便是乘16

    5、段的概念

    相对CPU,内存被分为很多段。使用段,那么就是使用逻辑地址。由4可以得知段的首地址一定为16的倍数

    6、段寄存器CS和IP

    CS:代码段寄存器

    IP:指令指针寄存器

    CS中存着基地址,IP存着偏移地址

    7、修改CS和IP

    可以用汇编指令:JMP

    CS和IP都修改:jmp 段地址:偏移地址

    用指令给的段地址修改CS,给出的偏移地址修改IP

    只修改IP:jmp 某一合法寄存器

    仅修改IP的值

    CPU与内存的联系:

    16位CPU实现20位物理地址的方法:

    原创博文,转载注明出处!

    本文由作者原创,如需转载注明出处!
  • 相关阅读:
    解决jenkins sonar扫描中文名的文件会失败
    ukey命令行签名:解决safenet ukey 每次签名都要输入token password问题(批量签名)
    vmp如何使用命令行加壳exe或者dll
    tomcat 安装的jenkins的迁移解决磁盘爆满的问题
    cocoapods 执行pod trunk push 报错CDN: trunk URL couldn't be downloaded: https://raw.githubusercontent.com/CocoaPods/Specs/master/Spec
    使用NodeJs搭建的小型web应用
    对WebSocket技术的学习与探索(一)
    Git本地操作相关介绍
    NodeJs入门学习(一)
    ES6深入学习记录(三)编程风格
  • 原文地址:https://www.cnblogs.com/Fsiswo/p/8364590.html
Copyright © 2011-2022 走看看