我是靠谱客的博主 直率紫菜,最近开发中收集的这篇文章主要介绍汇编语言(一)——80x86 计算机组织,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

2.1 80x86 微处理器

  • 计算机的主要组成:运算器、控制器、存储器和输入输出设备。
  • 运算器和控制器集成在一个芯片上,构成中央处理器(CPU)

2.2基于微处理器的计算机系统构成

2.2.1硬件

  • 四个主要组成部分:CPU、存储器、输入输出(I/O)子系统和系统总线
  • 系统总线把以上三个连接在一起
    HIT
  • CPU:核心部件,集成了运算器、控制器和寄存器组,执行程序指令,完成所有算术和逻辑运算及全机的控制工作。
  • 存储器:存放程序和数据。
    主存:内存,ROM(只读存储器)和RAM(随机存取存储器)。
    辅存:外存,速度慢,容量大。
  • I/O接口电路:主要完成数据缓冲、信号变换、以及与CPU联络等工作。
  • I/O设备:微型计算机配备的输入输出设备,也称外围设备。
  • 系统总线:CPU、存储器和I/O接口电路之间通过数据总线、地址总线和控制总线相连,这三组总线称为系统总线。数据总线:传送数据信息。地址总线:传送地址信息。控制总线:传送控制信息。

2.2.2软件

软件分为系统软件和应用软件两大类

  • 系统软件:面向所有用户的一类软件。系统软件的核心是操作系统,所有应用的程序都是在操作系统构筑的平台上运行的。
  • 应用软件:主要指用户围绕某项应用编写的各种程序。

2.3 中央处理机

2.3.1 中央处理器CPU的组成

8086CPU从功能上可分为两部分:总线接口部件BIU和执行部件EU

  • 总线接口部件(BIU):由段寄存器、指令指针寄存器、地址加法器、指令队列和输入输出控制电路等组成。
  • 执行部件(EU):由算术逻辑部件(ALU)、通用寄存器、标志寄存器和执行部件控制电路等组成,它负责指令的执行和数据的运算。

80x86寄存器组
在这里插入图片描述
寄存器是CPU内部重要的数据存储资源(寄存器的分类如上图)

1.通用寄存器

数据寄存器:共有四个AX、BX、CX、DX,用于保存操作数或运算结果等信息。

  • AX寄存器:称为累加器,用于算术、逻辑运算以及与外设传送信息等。
  • BX寄存器:称为基址寄存器,常用于存放存储器地址。
  • CX寄存器:称为计数器,一般作为循环或串操作等指令中的隐含计数器。
  • DX寄存器:称为数据寄存器,常用来存放双字数据的高16位。

变址寄存器:SI和DI称为变址寄存器,主要用于存放某个存储单元的偏移地址。

  • SI是源变址寄存器
  • DI是目的变址寄存器
    SI和DI一般都与数据段寄存器DS联用,用来确定数据段中某存储单元的地址
    在字符串操作中:
    SI与DS联用——确定源操作数地址
    DI与ES联用——确定目的操作数地址

指针寄存器:BP和SP称为指针寄存器,主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式

  • SP:堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址
  • BP:基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址

2.专用寄存器:IP、FLAGS

指令指针寄存器IP:它总是保存下一次将要从主存中取出指令的偏移地址,IP与CS段寄存器联用,可以确定下一条要取得指令的物理地址。

标志寄存器FLAGS:存放状态标志和控制标志的寄存器。

  • 状态标志:用于记录程序中运行结果的状态信息。
    溢出标志(OF):运算时溢出,则OF为1,否则为0。
    符号标志(SF):记录运算结果的符号,结果为负时置1,否则为0。
    零标志(ZF):运算结果为0时ZF位置1,否则置0。
    进位标志(CF):记录运算时从最高有效位产生的进位值。例如执行加法指令时,最高有效位有进位置1,否则置0.
    辅助进位标志(AF):记录运算时第3位产生的进位值。
    奇偶标志(PF):检验传输数据时可能产生的出错情况。当结果操作数中的1为偶数时置1,否则0.

  • 控制标志:可由程序根据需要用指令设置,用于控制处理器执行指令的方式。
    方向标志(DF):在串处理指令中控制处理信息的方向用。
    陷阱标志(TF):用于调试时的单步方式操作。
    中断标志(IF):IF为1时,允许CPU响应可屏蔽中断请求,否则关闭中断。

  • I/O特权级:在保护模式下,用于控制对I/O地址空间的访问。

3.段寄存器

8086CPU的4个16位的段寄存器分别称为:代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES。80386起增加了FS、GS两个段寄存器。

段寄存器用来确定该段在内存中的起始地址。

处理器利用CS:IP取得下一条要执行的指令
DS:EA存取数据段中某一存储单元的地址
SS:SP操作堆栈顶的地址

2.4 存储器

IBM PC机的两种主要存储器和主要的存储方式

  • ROM(只读存储器)永久保存计算机的启动程序和处理I/O的例行程序。

  • RAM(随机存储器)暂时保存计算机执行时驻留的程序的数据
    2.4.1 存储单元的地址和内容

  • 存储器以字节为编程单位

  • 地址用无符号整数来表示

  • 一个字要占用相继的两个字节

  • 低位字节存入低地址,高位字节存入高地址(注意:高地址在下,低地址在上,即地址序号是越往下越大)

  • 字单元地址用它的低地址来表示

内存单元的地址和内容的概念及其关系:

  • 若M表示内存单元的地址,则该内存单元的内容可表示为(M)。
  • 如果M单元存放着地址N,则((M))表示地址为N的单元的内容。

2.4.2 实模式存储器寻址

1.存储器地址的分段

  • 机器规定:从0地址开始,每16个字节为一小段。

  • 段起始地址:段起始位置必须是任一小段的首地址开始。

  • 小段:每16个字节一小段,共有64K个小段

  • 段的大小:0-64K范围内的任意字节

  • 段内偏移:存储单元的实际地址预期所在段的段地址之间的距离,也可称为有效地址(EA),偏移地址(Offset)。

  • 有了段地址和偏移地址,就能唯一地确定某一内存单元在存储器内的具体位置(物理位置(PA))。

  • 计算示意图
    在这里插入图片描述

  • 逻辑地址:段地址:偏移地址,机器获得逻辑地址后自动通过某种方法求得物理地址。

寄存器与存储器的比较
在这里插入图片描述

附上思维导图

在这里插入图片描述
在这里插入图片描述

最后

以上就是直率紫菜为你收集整理的汇编语言(一)——80x86 计算机组织的全部内容,希望文章能够帮你解决汇编语言(一)——80x86 计算机组织所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部