博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汇编第二章知识总结
阅读量:5301 次
发布时间:2019-06-14

本文共 1165 字,大约阅读时间需要 3 分钟。

今天刚学完第二章,以下是一些学习到的内容。

首先是CPU的概述

1.一个典型CPU由运算器、控制器和寄存器等器件组成。

2.内部总线实现CPU内部各个部件之间的联系。

3.外部总线实现CPU和主板上其他器件的联系。

 

通用寄存器

1.8086CPU所用的寄存器都是16位的,可以存放2个字节。AX,BX,CX,DX这四个寄存器都唱用来存放一般性数据,被称为通用寄存器

2.为了保证与上一代8位CPU兼容,8086CPU的AX、BX、CX、DX可分为两个可独立使用的8位寄存器。

AX可分为AH和AL BX可分为BH和BL CX可分为CH和CL DX可分为DH和DX

出于对兼容性的考虑,8086CPU可以一次性处理以下两种尺寸的数据。

 

字节:内存划分的基本单位

 字:两个字节,分别称为高位字节,和低位字节。

 双字:四个字节

 四字:八个字节

汇编指令

有的内存单元构成的空间是一个一维的线性地址,每一个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地址称为物理地址。CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址。

16位结构描述了一个描述了一个CPU具有以下几方面的结构特性:

运算器一次最多可以处理16位的字节

寄存器的最大宽度为16位。 

寄存器和运算器之间的通路为16位。

8086CPU给出物理地址的方位

8086CPU有20位地址总线,可以传送20位地址,达到1MB寻址能力。8086CPU又是16位地址,表现出的寻址能力只有64KB。采用一种在内部用2个16位地址合成的方法来形成一个20位地址。

当8086CPU要读写内存时:地址加法器采用 物理地址=段地址 $\times$ 16+偏移地址 的方法合成物理地址。

CPU中的相关部件提供两个16位地址,一个称为段地址,另一个称为偏移地址。

 

 地址和偏移地址通过内部总线送入一个称为地址加法器的部件。

 地址加法器将两个16位地址合成为一个20位的物理地址。

地址加法器通过内部总线将20位物理地址送入输入输出控制电路。

输入输出控制电路将20位物理地址送上地址总线。20位物理地址北地址总线传送到存储器。


“段地址  + 偏移地址= 物理地址“的本质含义

段地址:偏移地址 也称为 逻辑地址 。

段地址 $\times$ 16构成短的起始物理地址。


段寄存器

8086CPU有4个段寄存器中:CS,DS,SS,ES。

CS和IP

CS和IP是8086CPU中最关键的寄存器。

CS为代码段寄存器,用于存放代码段的段地址。

IP为指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址。

CS:IP对应的物理地址存放是CPU将要读取的指令。

 

转载于:https://www.cnblogs.com/ljw376386/p/9756428.html

你可能感兴趣的文章
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
多米诺骨牌
查看>>
Linq 学习(1) Group & Join--网摘
查看>>
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
Attribute(特性)与AOP
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
web前端之路,js的一些好书(摘自聂微东 )
查看>>
【模板】对拍程序
查看>>
【转】redo与undo
查看>>
解决升级系统导致的 curl: (48) An unknown option was passed in to libcurl
查看>>
Java Session 介绍;
查看>>
spoj TBATTLE 质因数分解+二分
查看>>
Django 模型层
查看>>
dedecms讲解-arc.listview.class.php分析,列表页展示
查看>>
Extjs6 经典版 combo下拉框数据的使用及动态传参
查看>>