第二章 寄存器

CPU中的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。寄存器包括:AX、BX、CX、DX、SI、DI、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。

2.1 通用寄存器

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

  8086CPU的AX,BX,CX,DX这四个寄存器都可分为两个可独立使用的8位寄存器使用:

2.2 字在寄存器中的存储

  字节:记为byte,一个字节由8个bit组成,可以存在8位寄存器中。

  字:记为word,一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节。

  tips:在十六进制表示的数据后面加H,在二进制表示的数据后面加B,十进制表示的数据后面什么也不加。

2.3 几条汇编指令

  为了使具有高级语言基础的读者更好地理解指令的含义,有时会用文字描述和高级语言描述这两种方式来描述一条汇编指令的含义。

  在进行数据传送或运算时,要注意指令的两个操作对象的位数应该是一致的。

2.4 物理地址

  CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址。在CPU向地址总线上发出物理地址之前,必须要在内部先形成这个物理地址。

2.5 16位结构的CPU

  16位结构的CPU的结构特性:

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

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

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

2.6 8086CPU给出物理地址的方法

  8086CPU有20位地址总线,可以传送20位数据。

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

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

2.7 段地址*16+偏移地址=物理地址 的本质含义

  本质含义:CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。

2.8 段的概念

  内存并没有分段,段的划分来自于CPU,将若干地址连续的内存单元看作一个段,用段地址*16定位段的起始地址(基础地址)。

2.9 段寄存器

  4个段寄存器:CS,DS,SS,ES。

2.10 CS和IP

  CS和IP是8086CPU中两个最关键的寄存器。CS为代码段寄存器,IP为指令指针寄存器。

2.11 修改CS、IP的指令

  jmp指令

  mov指令不能用于设置CS、IP的值。jmp 段地址:偏移地址 指令的功能为:用指令中给出的段地址修改CS,偏移地址修改IP。

 

转载于:https://www.cnblogs.com/lx913/p/9794410.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序算法之选择法排序(Java)

选择排序 时间复杂度 O(n*n) 不稳定的排序算法 思想是:每一趟从待排序的数据元素中选出最小的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 下面是关键部分代码: public static void select_so…

周末生活日记|我们和楠哥

这周是双休,早上跟楠哥一起睡了一个大懒觉。早上11点起来,不过小米音箱在9点的时候就在客厅响音乐,我大叫一声「小爱同学,停止播放」,然后继续蒙头大睡。11点起来,哦,在我们家我还算起的早的&am…

lnmp基于fastcgi实现nginx_php_mysql的分离_LNMP基于FastCGI实现Nginx,PHP,MySQL的分离

LNMP基于FastCGI实现Nginx,PHP,MySQL的分离[日期:2012-11-12]来源:Linux社区作者:laoguang[字体:大 中 小]平时安装LNMP是把它们安装到同一台机器上,我想这个对大家来说丝毫没有挑战,下面我们实现把他们剥离…

green ethernet

green ethernet 今天老大让我测试交换机那个green ethernet 功能,我当时还纳闷,没听说这个概念,上网查了一下,原来是节能的一个功能。其主要作用有两个: 1,绿色节能交换机将自动侦测端口状态,如果某端口呈…

学习笔记=《你不知道的JavaScript(上卷)》第三章:函数作用域和块级作用域...

3.1 函数中的作用域 (1)JavaScript具有基于函数的作用域,每声明一个函数的时候会为其自身创建一个‘气泡’,这个气泡内声明的变量或函数外界无法访问。 函数作用域的含义是指,属于这个函数的全部变量都可以在整个函数范…

使用python game写一个贪吃蛇游戏

前言 最近在用python 做项目,也想对python有多一些了解,之前有用C语言和C写过python游戏,刚好可以通过这个游戏来对python多一些了解。 文章内容翻译自以下链接 https://www.edureka.co/blog/snake-game-with-pygame/ pygame 介绍 pygame是…

艾伟也谈项目管理,我是如何带领团队开发项目的

最近有不少朋友写信问我一些关于团队开发的问题,由于这段时间有些忙,没有回复.今天写一篇这方面的文章向大家介绍一下我是如何带领团队开发工作流项目的 关于团队建设,项目管理的文章网上已经有很多了,在这里我就不谈这些理论了,直接给大家展示一个我在 项目开发方,后台服务开…

mysql 动态索引_MySQL的索引

在日常工作中,我们经常会用到mysql的索引。使用索引的目的基本上就是为了在大量的数据中快速找出某个列中一个特定值的行,简单说就是提高查询效率。使用索引的优点:可以快速检索,减少I/O次数,加快检索速度;…

排序算法之简单插入法排序(Java)

简单插入排序 时间复杂度 O(n*n) 稳定的排序算法逐一取出元素,在已排好的元素序列中从后向前扫描,插入到适当的位置 部分代码如下: public static void insert_sort(int[] data){int i 0;int j 0;int len 0;int tmp 0; //局部变量if…

牛客提高R5 A.同余方程

题意 题目链接 Sol 设\(solve(x, y)\)表示\(i \in [0, x], j \in [0, y]\)满足题目要求的方案数 首先容斥一下,\(ans solve(r_1, r_2) - solve(l_1 - 1, r_2) - solve(l_2 - 1, r_1) solve(l_1 -1, l_2 - 1)\) 然后按照套路按位拆分,这里拆的时候是直接…

移植U-Boot思路和实践 | 基于RK3399

0. 背景介绍我们手里这块RK3399开发板出厂时带的是2017.09版本的U-Boot。U-Boot 2017.09 (Sep 26 2021 - 08:53:15 0000)Model: Forlinx OK3399 Evaluation Board PreSerial: 2 DRAM: 2 GiB Sysmem: init Relocation Offset is: 7dbe9000 Using default environment在这个基础…

mysql 查询 集合_MySQL使用集合函数进行查询操作实例详解

本文实例讲述了MySQL使用集合函数进行查询操作。分享给大家供大家参考,具体如下:COUNT函数SELECT COUNT(*) AS cust_num from customers;SELECT COUNT(c_email) AS email_num FROM customers;SELECT o_num, COUNT(f_id) FROM orderitems GROUP BY o_num;…

一起谈.NET技术,WPF 基础到企业应用系列5——WPF千年轮回2

一,摘要 首先很高兴这个系列能得到大家的关注和支持,前端时间身体状况不适,所以暂停了更新,对此表示非常抱歉,以后会逐渐加快进度,不过由于这是一个很长的系列,我也想把它写好,所以以…

排序算法之希尔排序(Java)

希尔排序 平均时间复杂度:O(nlogn) 不稳定的排序算法 v[0]与v[0n/2]比较,v[1]与v[1n/2]比较,v[2]与v[2n/2]比较,小的放到前面,以此类推.............. 关键部分代码如下: public static void shell_so…

AOP和IOC

AOP切面编程,作用:事务,日志,统一调用,统一实现,拦截,分发; 切点:告诉编译器切面作用于哪个package中的class IOC:控制反转,相对于new 对象来说的&#xff0c…

手把手教你|拦截系统调用

一、什么是系统调用系统调用 是内核提供给应用程序使用的功能函数,由于应用程序一般运行在 用户态,处于用户态的进程有诸多限制(如不能进行 I/O 操作),所以有些功能必须由内核代劳完成。而内核就是通过向应用层提供 系…

mysql修改列明sql语句_SqlServer修改表名、修改列名T-SQL语句

前面介绍了SQL基本用法《MSSQL数据库常见操作 SQL语句》,但是没有介绍sql修改表的相关操作,本篇文章将介绍T-SQL修改表的相关操作。1。修改表名:execute sp_rename department.mgrig ,mgrid;详述:EXEC sp_rename 表名.[原列名], 新列名, columnTransact-SQL参考sp_rename----…

求2个数的最大公约数

求2个数的最大公约数 该方法只适用于部分数 int gongyueshu(int m, int n) {if ((0 m) || (0 n)){return 0;}while (n)//考虑到n是负数{int temp n;n m % n;m temp; }return m; }

[转载]C 指针

一、认识存储单元指针是C语言最显著的特色。要理解指针的概念,需要先理解计算机读写内存的的方式以及变量的概念。计算机内存是以字节为单位划分内存单元的,每个内存单元占用一个字节,每个内存单元都有自己的地址编号,操作系统或软…

公司年会

没有抽奖的年会肯定是不完美的。有抽奖没有饭局的年会也是很香的。因为疫情,我们没有年终饭局,我也不知道过去那些年腾讯是怎么开年会的,不过今年,我觉得挺不错。上周我们搞了年终活动,我那时候还在开会,CG…