博客园第二章寄存器

CPU中的运算器、控制器、寄存器等器件考内部总线相连。

在CPU中:运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接各种器件在他们之间进行数据的传输,

不同的CPU种寄存器的个数结构是不相同的。8086CPU由14个寄存器分别是:AX、BX、CX、DX、SI、DI、SP、IP、CS、SS、DS、ES、PSW

一.通用寄存器

8086CPU中所有的寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX这四个寄存器通常用于存放一般性的数据,被称为通用寄存器。

AX、BX、CX、DX都可以分为两个独立使用的8位寄存器(H表示的是高8位,L表示的是低8位)

cpu在执行指令时会认为ah和al是两个互不相关的寄存器。不能错误地认为,诸如add al, 93H指令产生的进位会存储与ah中,add al, 93H进行的是8位运算。(最高位丢失,指的是进位之不能在8位寄存器中保存,但是CPU并不真的丢弃这个进位值)在进行数据传送或运算时,要注意两个操作对象的为数应当是一致的。

二.8086CPU给出物理地址的方法

1.8086CPU时是16位结构的CPU

*运算器一次最多可以处理16位的数据

*寄存器的最大宽度是16位

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

2.8086CPU有20位地址总线

8086CPU采用一种用两个16位地址合成的方法来形成一位20位的物理地址

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

(2)段地址和偏移地址通过内部总线送入一个成为地址加法器的部件;

(3)地址加法器将两个16位地址和成为一个20位的物理地址

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

(5)输入输出控制电路将20位的物理地址送上地址总线;

(6)20为物理地址为地址总线传到存储器。

地址加法器采用  物理地址=段地址*16+偏移地址  合成物理地址

(内存中并没有分段,端的划分来自于CPU,由于8086CPU用“段地址*16+偏移地址=物理地址”的方式给出内存单元的物理地址,使得我们可以用分段的方法来管理内存。)

三.CS和IP

CS伪代码段寄存器,IP位指令指针寄存器。

(1)8086机中,任意时刻,设CS总的内容为M,IP中的内容位N,8086CPU将从内存M*16+N单元开始读取一条指令并执行。

1.CS、IP中的内容送入地址加法器中完成:段地址*16+偏移地址=物理地址

2.地址加法器将物理地址送入输入输出控制电路

3.输入输出控制电路将物理地址送上地址总线

4.内存从指定单元将机器指令通过数据总线传入cpu

5.读取一条指令后IP的之自动增加,意识CPU可以读取下一条指令

(2)修改CS、IP的指令

若想同时修改cs、ip中的内容可以用形如“jmp段地址:偏移地址”的指令完成

eg.jmp 2AE3:3,执行后CS=2AE3H,iP=0003H.

若仅想修改IP的内容可用 jmp 某一合法寄存器 的指令完成

jmp ax,指令执行前 ax=1000H CS=2000H IP=0003H

指令执行后ax=1000H CS=2000H IP=1000H

原文地址:https://www.cnblogs.com/qglqgl/p/9786875.html

时间: 2024-11-08 21:53:09

博客园第二章寄存器的相关文章

我是怎么处理其他网站恶意爬虫博客园的,希望大家喜欢(第二弹)

本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 现象 版权处理升级 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 介绍 上次写了一篇我是怎么处理其他网站恶意爬虫博客园的,希望大家喜欢,然后大家回复积极,对于我也是一个鼓励,针对上次还有个网站过滤掉了我的版权说明,在这一次却没

iOS_CNBlog项目开发 (基于博客园api开发)

按照惯例, 先上效果图 前言 很巧, 做这个项目是因为刚好在逛博客园的时候看到一篇文章 博客园第三方客户端-i博客园正式发布App Store, 这里就帮忙贴下链接啦, 毕竟我是由此而想说做这个项目的. 然而更巧的是, 和那篇文章的作者一样, 我也是刚毕业要找实习的人了(/(ㄒoㄒ)/~~), 开发容易找工不易, 哎, 做个项目练练手吧. 然后, 整个项目做下来大概做了半个月吧, 今天算是做出1.0版本啦, 已经贴上github(https://github.com/samAroundGitHu

网络采集软件核心技术剖析系列(1)---如何使用C#语言获取博客园某个博主的全部随笔链接及标题

一 本系列随笔概览及产生的背景 自己开发的豆约翰博客备份专家软件工具问世3年多以来,深受广大博客写作和阅读爱好者的喜爱.同时也不乏一些技术爱好者咨询我,这个软件里面各种实用的功能是如何实现的. 该软件使用.NET技术开发,为回馈社区,现将该软件中用到的核心技术,开辟一个专栏,写一个系列文章,以飨广大技术爱好者. 本系列文章除了讲解网络采编发用到的各种重要技术之外,也提供了不少问题的解决思路和界面开发的编程经验,非常适合.NET开发的初级,中级读者,希望大家多多支持. 很多初学者常有此类困惑,“为

PageRank 计算博客园用户排名

PageRank 通过网页与网页之间的链接关系计算各网页权重,一般权重高的网页特点是:链接向它的网页数量多.链向它的网页其权重也较高.PageRank 就是通过这样的连接关系,一轮轮迭代计算后得出各网页的权重. 思路拓展一下,其实人与人之间也是连接着的,在社会的人际关系网中,每个人的社会地位和身价也是不同的.以微博为例,我们都有关注者和粉丝(类似网页之间的链接),可以发现所谓的“大V”基本上粉丝数量多,并且粉丝里不乏很多其他“大V”,所以这个帐号的价值就大. 同样博客园也具有类似的社交关系,用户

python学习第一弹:爬虫(抓取博客园新闻)

前言 说到python,对它有点耳闻的人,第一反应可能都是爬虫~ 这两天看了点python的皮毛知识,忍不住想写一个简单的爬虫练练手,JUST DO IT 准备工作 要制作数据抓取的爬虫,对请求的源页面结构需要有特定分析,只有分析正确了,才能更好更快的爬到我们想要的内容. 打开博客园任何一个新闻页面,比如https://news.cnblogs.com/n/570973/,思路是通过这个源页面,并且根据页面中的“上一篇”.“下一篇”等链接,源源不断的爬取其它新闻内容. 浏览器访问https://

博客园客户端UAP开发随笔 -- App连接云端内容的桥梁:WebView

当你辛苦的从网上爬下来一篇文章之后,怎么在你的应用内展示这些包含HTML标记的文章?如果你使用的是Javascript开发应用,恭喜你,直接塞进页面就可以了,同时说明你很熟悉页面开发,而现在windows也支持这种方式.但是对于使用XAML开发的应用怎么办呢?我们还有WebView控件可以用. 越来越多的服务器端API返回的数据使用HTML了,所以我们也不得不对WebView多了解一些. WebView有个Bug:放在Grid里时,最右侧有一个pixel缝隙时隐时现.要小心,别让PM抓住你的小辫

安卓开发笔记——打造属于自己的博客园APP(二)

在上一篇文章<安卓开发笔记——打造属于自己的博客园APP(一)>中,我们基本上实现了博客园的主体UI框架(后面可能会有些小变化,等遇到了再说).今天来讲讲博客园首页模块的大体实现,国际惯例,先来看下效果图: 整体UI效果: 下拉刷新和上拉加载的动画效果: 在上篇文章中,我们定义的Tabs主题文字分别是(首页,精华,候选,推荐),这边的命名我是根据博客园网站首页的栏目来命名的,那时候我还没仔细看过博客园的开放接口,后来才发现原来博客园没有对应开放这些栏目的接口,博客园只开放了(文章列表,48小时

一个博客园代码高亮的方案

前言 博客园虽然可定制度高,但是在代码高亮这一块做的并不是很好,默认的配色方案看着很不舒服,而且影响页面的整体协调感. 但正因为博客园的可定制度高,所以我们可以自定义代码高亮的风格. 使用纯 CSS 实现,不需要 JS 权限. 关于博客园的插入代码 本章节只针对博客园的 TinyMce 编辑器讨论,我没有测试其他编辑器(例如 Markdown)的代码高亮解析方案. 博客园的插入代码是有两种方案的. 如图所示. 两种插入代码使用的高亮解析方案不同,各有利弊.我对两种方案都做了适配. 我个人推荐使用

个人技术博客的选择:CSDN、博客园、简书、知乎专栏还是Github Page?(转)

个人技术博客的选择:CSDN.博客园.简书.知乎专栏还是Github Page? 有很多技术人员在学习到一定程度后发现了写博客的重要性,一方面帮助自己记忆,一方面也能帮助他人解决问题,于是会选择自己开始写博客,之后又发现平台太多不知从何下手,在这里我根据自己写博客的经验比较一下各个平台的优缺点. 这里主要对比CSDN.博客园.简书.知乎专栏.Github Page.个人建站和其他 CSDN 笔者是CSDN的长期用户,也见到了很多不错的CSDN博客 优点 SEO做得好,无论是百度还是google(