汇编第二章_寄存器

一个典型的CPU由 运算器,控制器,寄存器等器件构成.
(1) 运算器进行信息处理.
(2) 寄存器进行信息存储.
(3) 控制器控制各种器件进行工作.
(4) 内部总线连接各种器件,在它们之间进行数据的传送.

寄存器是CPU中程序员可以用指令读写的部件,
通过改变各种寄存器中的内容可以实现对CPU的控制.

8086CPU有14个寄存器,且都是16位的:
AX BX CX DX SI DI SP BP IP CS SS DS ES PSW
为了与上一代CPU兼容,8086CPU的AX BX CX DX这4个寄存器都可以分成两个独立使用8位寄存器.
AX : AH AL
BX : BH BL
CX : CH CL
DX : DH DL
注意 AL 和 AH 都是作为独立的8为寄存器来使用的.

8086CPU可以一次性处理以下两种尺寸的数据:
字节 字(word) 1 word = 2 byte(高位字节 低位字节)

通用寄存器: AX BX CX DX 这4个寄存器通常用来存放一般性的数据.

十六进制后面一般加H 二进制后边加B

8086CPU有20位地址总线,但是是16位结构,所以使用两个16位地址合成的方法来形成一个20位的物理地址.
地址加法器采用: 物理地址 = 段地址 * 16 + 偏移地址
同时定义: 段地址 = 起始地址(基础地址) / 16
本质含义是:
   CPU在访问内存时,
  用一个基础地址(段地址 * 16) 和
  一个相对于基础地址的偏移地址相加,
  给出内存单元的物理地址.

内存并没有分段, 端的划分来自于CPU.
在编程需要的时候,可以将若干地址连续的内存单元看作一个段,
用 段地址 * 16 定位段的 起始地址, 用 偏移地址 定位段中 内存单元.
由于段地址 * 16 是 16的倍数,所以一个段的起始地址一定也是16的倍数.
偏移地址为16位, 16位地址的寻址能力为64KB, 所以一个段的长度最大为64KB.

CPU如何区别内存中的数据和指令的: CS:IP寄存器指向的内存单元的内容是指令.

原文地址:https://www.cnblogs.com/cgjh/p/10351190.html

时间: 2024-08-15 04:49:02

汇编第二章_寄存器的相关文章

汇编第二章--基础知识梳理与总结

第一章,我们介绍了有关汇编语言的基础知识,在第二章我们主要介绍寄存器. CPU的主要部件是寄存器,在8086CPU有14个寄存器,它们分别是:AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW.8086CPU的所有寄存器都是16位的,可以存放两个字节.AX.BX.CX.DX这4个寄存器通常用来存放一般性的数据,称为通用寄存器.由于8086CPU的上一代CPU中的寄存器都是8位的,为了保持兼容,8086CPU的AX.BX.CX.DX这4个寄存器都可分为两个独立使用

汇编第二章知识总结

今天刚学完第二章,以下是一些学习到的内容. 首先是CPU的概述 1.一个典型CPU由运算器.控制器和寄存器等器件组成. 2.内部总线实现CPU内部各个部件之间的联系. 3.外部总线实现CPU和主板上其他器件的联系. 通用寄存器 1.8086CPU所用的寄存器都是16位的,可以存放2个字节.AX,BX,CX,DX这四个寄存器都唱用来存放一般性数据,被称为通用寄存器 2.为了保证与上一代8位CPU兼容,8086CPU的AX.BX.CX.DX可分为两个可独立使用的8位寄存器. AX可分为AH和AL B

汇编第二章梳理(期末复习)

(留着几个课后任务没写,临近学期末,全当复习了.因为是为复习用的,所以文章比较自闭,) 第二章标题叫寄存器,那么大概就是讲和寄存器有关的东西,准确说是单纯寄存器之间操作,还有 debug 的操作(在实验部分). 8086有14个寄存器,AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW.这些寄存器都是16位的,可以存放两个字节.其中,AX,BX,CX,DX 用来存放一般的数据,为通用寄存器.为了兼容性,这四个寄存器分别可以拆分为两个8位寄存器独立使用.高位字节为

[算法竞赛入门]第二章_循环结构程序设计

第2章 循环结构程序设计 [学习内容相关章节] 2.1for循环 2.2循环结构程序设计 2.3文件操作 2.4小结与习题 [学习目标] (1)掌握for循环的使用方法: (2)掌握while循环的使用方法: (3)学会使用计算器和累加器: (4)学会用输出中间结果的方法调试: (5)学会用计时函数测试程序效率: (6)学会用重定向的方式读写文件: (7)学会fopen的方式读写文件: (8)了解算法竞赛对文件读写方式和命名的严格性: (9)记住变量在赋值之前的值是不确定的: (10)学会使用条

汇编语言 (王爽 第三版)第二章:寄存器

(1)写出每条汇编指令执行后相关寄存器中的值(注意区别是mov还是add,操作对象是16位寄存器还是8位寄存器) mov ax,62627    AX=F4A3H mov ah,31H       AX=31A3H mov al,23H        AX=3123H add ax,ax          AX=6246H  (因为操作的对象是16位寄存器所以除了最高位都存在进位) mov bx,826CH   BX=826CH mov cx,ax          CX=6246H mov a

操作系统_第二章_进程与线程

2018-06-30 1.进程:对正在运行的程序的一个抽象 2.一个进程就是一个正在执行的程序的实例 3.快速的切换称为:多道程序设计 4.一个进程是某种类型的一个活动,它有程序,输入,输出,以及状态 5..四种主要的事件会导致进程的创建 系统初始化 正在运行的程序执行了创建进程的系统调用 用户请求创建一个新进程 一个批处理作业的初试化 6.停留在后台进程的称为守护进程 7.shell中键入sort就可以创建进程了 8.内存一般使用写时复制的方法进行内存共享 9.进程的终止 正常退出 出错退出

我的学习之路_第二章_接口/多态

接口 (1)当抽象类中的方法都是抽象的时候,java就提供了一种新的表现形式:接口.接口是功能的集合 接口不能创建对象 (2)格式: 父接口: public interface Inter { } 子类: public class InterImpl implements Inter { } (3)接口的特点: A:不需要被abstract修饰. B:类实现接口,可以单实现,还可以多实现. C:接口可以继承接口,可以单继承,也可以多继承. D:接口与父类的功能可以重复,均代表要具备某种功能. (

《Python编程从入门到实践》第二章_变量和简单数据类型

什么是变量呢? 举例: >>> message = "Hello,Python!" >>> print (message) Hello,Python! 这里的message就是变量.在程序中可随时修改变量的值,而python将始终记录变量的最新值. 变量命令的规则有哪些呢? 变量只能包含字母数字下划线. 变量名不能包含空格,但可以使用下划线来分割其中的单词 不要将python关键字和函数名作为变量名 变量名应既简单又具有描述性 慎用小写字符l和大写字

spring源码第二章_容器的基本实现

一.先用一个简单的获取bean实例的例子来了解 1.类结构如下: 2.MyTestBean.java为bean对象,实体类,代码如下: MyTestBean 3.BeanFactoryTest代码如下: package org.springframework.liulei; import java.io.IOException; import junit.framework.TestCase; import org.springframework.beans.factory.BeanFactor