微机原理知识点总结(第二章、处理器结构)

第二章、处理器结构

2.1处理器功能结构

1.算数逻辑单元

也就是常说的ALU

计算机的运算器,负责处理器所能进行的各种运算,主要就是算数运算和逻辑运算

累加器

提供一个操作数,保存运算结果

标志寄存器

反映运算结果的辅助信息,也称为程序状态字

2.寄存器

用来暂时存放代码数据

透明寄存器:对程序员不可见,不能直接控制的寄存器

可编程寄存器

集成在CPU内,已命名,供编程使用

通用寄存器:数量较多,使用频度较高,具有多种用途

专用寄存器:只用于特定目的

3.指令处理单元

处理器的控制单元,它控制指令的执行和信息的传输

指令执行的过程:

  1. 取指
  2. 译码
  3. 执行
4.8086的功能结构
总线接口单元

管理与系统总线的接口,负责对存储器和外设访问

执行单元

ALU、通用寄存器、标志寄存器和控制电路

负责指令译码、数据运算和指令执行

指令预取

8086维护着一个长度为6字节的指令队列

最简单的指令流水线技术

节省取指时间,提高了效率

程序转移将使预取指令作废,降低效率

5.80386的功能结构

总线接口大单元:为处理器提供同外部的接口

指令预取单元:先行读取指令

指令译码单元:从预取队列中取来指令,译码成微指令代码

执行单元:ALU、乘法器、除法器、位移器

分段单元:逻辑地址变换成线性地址

分页单元:将线性地址变换为物理地址

各功能部件可以并行工作,进行流水线处理

2.2寄存器

寄存器就是暂时存放数据的地方

通过编写程序、由处理器执行指令控制

程序员来说,处理器被抽象为可编程寄存器

1.通用寄存器

用于保存整数数据,地址等

8各32位通用寄存器

EAX ;累加器
EBX ;基址寄存器
ECX ;计算器
EDX ;数据寄存器
ESI ;源变址寄存器
EDI ;目的变址寄存器
EBP ;基址指针
ESP ;堆栈指针

ESP(SP)应该作为专用寄存器来对待

8个16位寄存器,其实就是16位寄存器的低8位

EAX->AX
EBX->BX
ECX->CX
EDX->DX
ESI->SI
EDI->DI
EBP->BP
ESP->SP

8个8位通用寄存器,就是abcd4个16位寄存器的低8位和高8位

AX->AH & AL
BX->BH & BL
CX->CH & CL
DX->DH & DL
2.标志寄存器
标志

反映指令执行结果或控制指令执行形式

用一个或多个二进制位表示一种标志

0或1的不同组合表达标志的不同状态

状态标志

用于分支

最基本的标志,有6个

用来记录指令执行结果的辅助信息

处理器主要使用其中4个构成各种条件

请添加图片描述

进位标志CF

carry flag

在运算过程中,出现进位,CF=1,否则CF=0

针对无符号整数,判断加减结果是否超出表达范围

溢出标志OF

overflow flag

有符号数加减结果有溢出,OF=1,否则OF=0

针对有符号整数,判断加减结果是否超出表达范围

零标志ZF

zero flag

运算结果位0,则ZF=1,否则ZF=0

符号标志位

运算结果最高位为1,则SF=1,否则SF=0

最高位=符号位=SF

奇偶标志位PF

parity flag

运算结果中最低字节中‘1’的个数为偶数时候,PF=1,否则PF=0

仅最低8位1的个数

控制标志

方向标志DF

仅用于串操作指令,控制地址的变化方向

设置DF=0,每次串操作后,存储器的地址就自动增加,即从低地址向高地址处理数据串

设置DF=1,每次串操作后,存储器的地址就自动减少,机器 从高地址向低地址处理数据串

CLD指令,设置DF=0

STD指令,设置DF=1

系统标志

中断允许标志IF,(interrupt-enable,flag)

陷阱标志TF(trap,flag)用于单步调试

I/O 特权标志

cpu识别标志ID

3.专用寄存器

专用寄存器往往只用于特定指令和场合

1.指令指针寄存器EIP

保存下一条将要执行的指令在主存的地址

2.段寄存器

  • 段是安排相关代码或数据的主存区域
  • 段寄存器表明段在主存的位置
  • 6个段寄存器 :CS,DS,SS,ES,FS,GS

3.其他寄存器

浮点寄存器,多媒体寄存器

系统专用寄存器

2.3 存储器组织

1.存储模型
平展存储模式

存储器是一个连续的地址空间-线性地址空间

段式存储模型

存储器被分成段,每一段都是线性映射

实地址存储模型

8086处理存的存储模型

段也是存储模型的特例

线性空间最大位1MB,段最大为64KB

2.工作方式

保护方式

实地址方式

系统管理方式

3.存储管理

逻辑地址,物理地址

4.基本段
代码段

段基地址:代码段寄存器CS

偏移地址:指令段寄存器DS

存放指令代码

数据段

段基地址:数据段寄存器DS

偏移地址:各种存储器寻址方式算出来

存放数据

堆栈段

段基地址:堆栈段寄存器SS

偏移地址:堆栈指针寄存器ESP保存

堆栈区域

段选择器

16位段寄存器保存16位段选择器

段选择器指向64位段描述符

段描述符包括段基地址

  • 平展,指向0
  • 段式,指向线性地址空间不同的段
  • 实地址,保存段地址高16位

2.4汇编语言基础

汇编语言程序:用汇编语言书写的程序

汇编程序:将汇编语言程序汇编成机器代码没目标模块的程序

标识符

不能以数字开头,不能是汇编程序采用的保留字

助记符

助记符:帮助记忆指令功能的符号

操作数和参数
  • 具体的常量
  • 保存在寄存器的数据
  • 保存在存储器中的变量
  • 逗号前常是目的操作数,逗号后常是源操作数

伪指令的参数

  • 常量、变量名、表达式
  • 可以有多个,参数之间用逗号隔开
使用的模板
include vcIO.inc
.data
;定义数据
msg byte 'Hello,Assembly Language!',0
.code
;写代码
main Proc
;主函数,套模板,其他和别的语言一样
    invoke printf,offset msg
    ret 
main endp
end main
变量应用

寄存器变量,内存变量

寄存器变量

寄存器变量名字,类型均由硬件指定,用户不能改变,它数量少,存取速度最快,具有全局属性,不用事先声明,直接引用寄存器的名字即可使用

全局变量在数据段

局部变量及其过程参数在堆栈

变量定义

变量名是用户标识符,表示元素逻辑地址

初值表是用逗号分隔的参数

  • 各种形式的常量
  • ?表示初值不确定,即未赋初值
  • 复制操作符DUP,DUP(重复参数)

变量定义伪指令

  • BYTE :8位
  • WORD:16位
  • DWORD:32位
  • QWORD:64位
地址操作符
  • [],括起的表达式作为存储器地址指针
  • OFFSET 变量名,返回变量名所在段的偏移地址

PTR操作符,说明内存单元的类型

地址寻址

寄存器寻址

存储器寻址

直接寻址

寄存器间接寻址

寄存器相对寻址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值