汇编语言 第二章 寄存器(CPU工作原理)

本章主要的知识是关于CPU的内部通信,即内核。

一、通用寄存器

    1.一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线连接。

区别:
内部总线实现CPU内部和各个器件之间的联系。
外部总线实现CPU和主板上其他器件的联系。
通俗来说,内部总线是CPU内部的架构,外部总线是CPU与外面的一些东西的结合。

    8086有14个寄存器,其中有8个通用寄存器,即使是如今的酷睿i7、i9都是只有8个通用寄存器。
    14个寄存器分别是:

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

    2.8086CPU所有的寄存器都是16位的,可以存放两个字节。

一个16位寄存器可以存储一个16位的数据。
一个16位寄存器所能存储的数据的最大值是2的16次方减1

    3.AX的低8位(0位-7位)构成了AL寄存器,高8位(8位-15位)构成了AH寄存器。
    AH和AL寄存器是可以独立使用的8位寄存器。

二、字在寄存器中的存储

    1.把一次读取16位的内存单元称为字。一个字节=8位,一个字=两个字节。
    2.汇编指令不区分大小写
在这里插入图片描述
    3.对于进制位,CPU会有一个专门的寄存器存放多出来的进制位

三、物理地址

    1.CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。
我们将这个一维的地址称为物理地址。
    2.16位结构的CPU。16位结构描述了一个CPU具有以下几方面的特征:

1.运算器一次最多可以处理16位的数据。
2.通用寄存器的最大宽度为16位,但状态寄存器可能不满足16位。
3.寄存器和运算器之间的通路是16位。

    3.8086CPU给出物理地址的方法。

8086有20位地址总线,可传送20位地址,寻址能力为1M
8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K

    4.1K和1M之间相差2的10次方

四、地址加法器工作原理

    1.地址加法器合成物理地址的方法:

物理地址=段地址*16+偏移地址

物理地址有20位

段地址 * 16,表示十六进制的段地址左移1位,二进制的段地址左移4位;段地址*16中的16是十进制,转为十六进制为10H

在这里插入图片描述

    2.

1.一个数据的二进制形式左移1位,相当于该数据乘以2;
2.一个数据的二进制数形式左移N位,相当于该数据乘以2的N次方;
3.一个数据的十六进制形式左移1位,相当于乘以16;
4.一个数据的X进制形式左移1位,相当于乘以X。

五、段的概念

    1.偏移地址为16位,16位地址的寻址能力为64K,所以一个段的长度最大为64K。

CPU访问内存单元时,必须向内存提供内存单元的物理地址。
8086CPU在内部用段地址和偏移地址移位相加的方法形成最终的物理地址。
CPU可以用不同的段地址和偏移地址形成同一个物理地址。

六、

    1.在8086PC机中,存储单元的地址用两个元素来描述。即段地址和偏移地址。
    2.“数据在21F60H内存单元”中,对于8086PC机的两种描述:
    (a)数据存在内存2000:1F60单元中;
    (b)数据存在内存的2000段中的1F60H单元中。
    3.CPU的外部提供了20位的地址总线,CPU的内部由于技术的问题只能提供16位的地址,于是加入了地址加法器把段地址和偏移地址变成一个20位的地址。
    4.8086CPU有4个段寄存器:CS、DS、SS、ES。当8086CPU要访问内存时,由这4个段地址寄存器提供内存单元的段地址。
    5.CSIP是8086CPU中最关键的寄存器,它们指示了CPU当前要读取指令的地址
CS为代码段地址寄存器,IP为指令指针寄存器。
    6.mov指令
    如:mov ax,123
    mov指令可以改变8086的CPU大部分寄存器的值,被称为传送指令。
    7.同时修改CS、IP的内容:

jmp 段地址:偏移地址

    用jmp指令,即转移指令修改CS、IP的内容。
    如:jmp 2AE3:3
    jmp 3:0B16 告诉CPU要跳转到00B46H这个物理地址,还是用那个公式:段地址*16+偏移地址=物理地址
用指令中给出的段地址修改CS,偏移地址修改IP
CS存放指令的段地址,IP存放指令的偏移地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
    8.8086CPU的工作过程:
    (1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;
    (2)IP指向下一条指令;
    (3)执行指令。(转到步骤(1),重复这个过程。)

七、DEBUG

R命令查看、改变CPU寄存器的内容;
D命令查看内存中的内容;
E命令改写内存中的内容;
U命令将内存中的机器指令翻译成汇编指令;
T命令执行一条机器指令;
A命令以汇编指令的格式在内存中写入一条机器指令。

未完待续

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值