【无标题】

第二章 寄存器(CPU工作原理)

CPU概述:

*一个典型CPU由运算器,控制器,寄存器组成

*CPU——内部总线——内部器件

CPU——外部总线——主板器件

寄存器概述:

*8086CPU寄存器是16位——可存放两个字节

*AX,BX,CX,DX——通用寄存器

*逻辑结构

*16位数据存放情况

数据:18

二进制表示:10010

在寄存器AX中存储:

 

*一个16位寄存器最大存储2^16-1个数据

*AH可分为AH和AL(H高:8-15 L低:0-7)

*八位寄存器存储逻辑:

 

*AL和AH可独立使用

 

几条汇编指令

 

(指令不区分大小写)

*当计算值超过8位寄存器最大值时,超过的位不能被保存,但不会被丢失

 

1.AX=F4A3H

2.AH=35A3H

3.AL=35C6H

4.AX=6B6BH

5.BX=826CH

6.CX=AX=6B6BH

7,AX=BX=826CH

8.AX=F4C6H

9.AL=F482H

10.AH=6C82H

11.AH=C682H

物理地址

*物理地址:CPU访问内存时给出内存单元的地址

16位CPU

1.运算器一次最多可以处理16位数据

2.寄存器的最大宽度为16位

3.寄存器和运算器之间的通路是16位

*8086有20位地址总线(2^20=1MB),内部为16位(2^16=64KB)

8086利用16位合成20位示意图:

 

地址加法器

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

 

*段地址x16也可以说为数据左移四位

*一个二进制数据左移N位,相当于数据乘以2^N(其他进制同理)

 

段的概念

*编程时可根据需要将若干个地址连续的内存单元看作一个段

用段地址x16定位段起始地址

用偏移地址定位段内存地址

*偏移地址为16位 一个段长度最大为64K

*偏移地址16位,变化范围为0~FFFFH,最多可寻64K

段寄存器

*8086有四个段寄存器:CS DS SS ES

8086访问内存用这四个段寄存器提供段地址

*CS IP为8086中最关键的寄存器,他们指示了CPU当前要读取指令的地址

 

修改CS IP指令

*mov不能设置CS IP的值

8086CPU为CS IP提供了转移指令来改变他们的值

jmp段地址:偏移地址

jmp 2AE3:3

jmp 3:OB16

功能:用指令给出的段地址修改CS

用偏移地址修改IP

*仅修改IP的内容

jmp 某一合法寄存器

功能:用于寄存器中的值修改IP

CPU运行流程

 

代码段

*对于8086,编程时可将一组内存单元定义为代码段

*可将长度为N的一组代码存在一组地址连续,起始地址为16的倍数的内存单元中, 用来存放代码

ex:

 

*CPU只认被 CS:IP 指向的内存单元中的内容为指令

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值