[汇编语言]-第二章寄存器(CPU工作原理)
1- 对于汇编程序员来说,CPU中主要的部件是寄存器,这些寄存器是:AX BX CX DX SI DI SP BP IP CS SS DS ES PSW.
2- 8086CPU所有寄存器都是16位的,可以存放2个字节.
3- AX BX CX DX 通常存放一般性的数据, 被称为通用寄存器.
4- 8086CPU寄存器的AX BX CX DX 可以分为两个独立的8位寄存器.如 AX 分为 AH AL 低8位(0-7) 高8位(8-15)
5- 字节: byte, 一个字节由8个bit组成,可以用8位寄存器
字:world 一个字由2个字节组成,占16bit 高位字节和低位字节
6- AX 存放 4E20 AH:4E AL:20
7- 区分不同的进制 十六进制加H 4E20H 二进制加B 00010B
8- 16位结构的CPU
运算器一次最多可以处理16位的数据
寄存器的最大宽度为16位
寄存器和运算器之间的通路为16位
9- 16位CPU要读写内存时:
CPU中的相关部件提供两个16位的地址, 一个称为段地址, 另一个称为偏移地址
段地址和偏移地址通过内部总线送入一个称为地址加法器的部件
地址加法器将两个16位的地址合成为一个20位的物理地址
地址加法器通过内部总线将20位物理地址送入输入输出控制电路
输入输出控制电路将20位物理地址送上地址总线
20位物理地址被地址总线传送到存储器
10- 地址加法器采用 物理地址 = 段地址 *16 + 偏移地址
11- 16进制的数像左移1位等于*16
12- 给定一个段地址, 仅通过变化偏移地址来寻址, 最多可以定位多少内存单元?
偏移地址为16位, 变化范围:0 - FFFFH, 仅通过变化偏移地址来寻址,最多可寻64KB内存单元.
如给定段地址1000H,用偏移地址范围为: 10000H-1FFFFH
13- 8086PC存储单元的地址用2个元素描述,即段地址和偏移地址
"数据在内存单元21F60H内存单元中",一般描述为(1)数据在内存2000:1F60单元中.(2)数据存在内存的2000段中得1F60单元中
14- 段地址在8086CPU的段内存中存放, 有4个段寄存器CS DS SS ES
15- CS(代码段寄存器)和IP(指令指针寄存器)是8086CPU中两个关键的寄存器,它指示了CPU当前要读取指令的地址. 8086CPU将从内存cs*16 + ip 单元开始,读取一条指令并执行.
16- jmp 2AE3:3 CS= 2AE3H IP= 0003H 将CPU从2AE33处读取指令
17- 8086CPU,任何时刻,CPU将CS:IP指向的内容当做指令执行
18- 8086CPU的工作过程:
从CS:IP指向的内存单元读取内容,读取的指令进入指令缓冲器
IP指向下一条指令
执行指令(转到1重复这个过程)
测试点:
1- 给定段地址为0001H,仅通过变化偏移地址来寻址,CPU的寻址范围为00010H- 1000FH
0001H*16 = 00010H
寻址范围 0 - FFFFH
范围 00010H + 0 到 00010H + FFFFH
2- 有数据放在20000H单元中,给定段地址为SA, 若想用偏移地址寻到此单元, 则SA应满足的条件是: 最小为 1001H,最大为 2000H.
20000 - FFFF = 10001 >> 1000.1
所以考察段地址1000 上下两个地址 FFF 和 1001
段地址为 FFF : 最小地址: FFF * 16 + 0 = FFF0 最大地址 FFF * 16 + FFFF = 1FFEFH 所以20000H不在此范围
段地址为1001: 最小地址: 1001 * 16 + 0 = 10010 最大地址 1001 * 16 + FFFF = 2000FH 所以20000H在此范围
所以最小的段地址为 1001H 最大为 2000 (2000 * 16 + 0 = 20000H)
[汇编语言]-第二章寄存器(CPU工作原理)的更多相关文章
- (转)计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理
原文:https://blog.csdn.net/cc_net/article/details/10419645 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体 ...
- Linux内核设计(第二周)——操作系统工作原理
Linux内核设计(第二周)--操作系统工作原理 by苏正生 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...
- 计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理
前言 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体. 依旧记得当时在同学家看同学输入几个DOS命令就成功的打开了一个游戏,当时实在是佩服的五体投地.因为对我来 ...
- 「MoreThanJava」一文了解二进制和CPU工作原理
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- 《Android开发艺术探索》读书笔记 (4) 第4章 View的工作原理
本节和<Android群英传>中的第3章Android控件架构与自定义控件详解有关系,建议先阅读该章的总结 第4章 View的工作原理 4.1 初始ViewRoot和DecorView ( ...
- Android艺术开发探索第四章——View的工作原理(下)
Android艺术开发探索第四章--View的工作原理(下) 我们上篇BB了这么多,这篇就多多少少要来点实战了,上篇主席叫我多点自己的理解,那我就多点真诚,少点套路了,老司机,开车吧! 我们这一篇就扯 ...
- Android艺术开发探索第四章——View的工作原理(上)
这章就比较好玩了,主要介绍一下View的工作原理,还有自定义View的实现方法,在Android中,View是一个很重要的角色,简单来说,View是Android中视觉的呈现,在界面上Android提 ...
- 汇编入门三-CPU工作原理
本文为读书笔记,个人总结与摘抄自<汇编语言 第二版> 1.CPU从内存中读取数据,首先要获得存储单元的地址. 2.指明进行的操作,如存储或者读写 所以,CPU要进行操作总结为: 1.存储单 ...
- 汇编语言学习——第二章 寄存器(CPU工作原理)
1.一个典型的CPU由运算器.控制器.寄存器等器件组成,这些器件靠内部总线相连. 区别: 内部总线实现CPU内部各个器件之间的联系. 外部总线实现CPU和主板上其它器件的联系. 8086CPU有14个 ...
随机推荐
- postman接口测试工具3.0版本的坑
今天用postman接口测试工具3.0版本被坑,找了半天,原来postman这个新版本有个坑啊 下面的get参数,第一行不管你填不填,都是无效的,可能是postman的一个bug吧
- jquery获取当前鼠标所在位置的坐标
$(document).ready(function(){ $(document).mousemove(function(e){ $('#xy').html("X :"+e.pag ...
- mysql存储过程实践总结
一:参数类型 1.IN 只能读取参数并在函数内部更改有效,不能持久化到外部变量 2.OUT 不能读取参数,可以在函数内部修改并保存到外部变量 3.INOUT 既能读取又能持久化 二:基本格式 mys ...
- Lucene学习总结之二:Lucene的总体架构
Lucene总的来说是: 一个高效的,可扩展的,全文检索库. 全部用Java实现,无须配置. 仅支持纯文本文件的索引(Indexing)和搜索(Search). 不负责由其他格式的文件抽取纯文本文件, ...
- 通过meteor实现的一个照片墙
always love tech 初次使用meteor所遇到的一个问题: insert failed: Method '/pictures/insert' not found 提示没有这个方法,然后可 ...
- php静态属性和静态方法
php静态属性和静态方法 2012-09-29 10:18 1518人阅读 评论(0) 收藏 举报 phpfunction 本php教程主要是学习php中静态属性和静态方法的使用方法和基本的示例. · ...
- ruby更换为淘宝的源
我们在使用gem更新的时候,经常会为速度抓狂,其实gem默认的源是https://rubygems.org,比较慢众所周至的原因了. 可以将源更换到国内的taobao源 查看当前有的源 gem sou ...
- 负载均衡集群之LVS算法和模型
LVS-->Linux Virtual Server 实现算法-->静态/动态,共10种 静态算法: rr(round robin): 解析:轮叫算法,即0-9循环 ...
- Asp.net Web.Config - 配置元素customErrors
Asp.net配置文件的配置方式,其实在MSDN里面是写得最清楚的了.可惜之前一直未曾了解到MSDN的强大. 先贴个地址:http://msdn.microsoft.com/zh-cn/library ...
- 学习笔记之--Navicat Premium创建数据表
1.打开Navicat Premium,点击连接,选择MySQL,创建新连接.输入安装MySQL是的用户名和密码.点击确定. 2.admin数据连接已经创建成功.下面为admin新建数据库,输入数据库 ...