8086汇编语言程序设计第2章+80x86计算机组织结构

上传人:j7****6 文档编号:61716494 上传时间:2018-12-10 格式:PPT 页数:50 大小:668KB
返回 下载 相关 举报
8086汇编语言程序设计第2章+80x86计算机组织结构_第1页
第1页 / 共50页
8086汇编语言程序设计第2章+80x86计算机组织结构_第2页
第2页 / 共50页
8086汇编语言程序设计第2章+80x86计算机组织结构_第3页
第3页 / 共50页
8086汇编语言程序设计第2章+80x86计算机组织结构_第4页
第4页 / 共50页
8086汇编语言程序设计第2章+80x86计算机组织结构_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《8086汇编语言程序设计第2章+80x86计算机组织结构》由会员分享,可在线阅读,更多相关《8086汇编语言程序设计第2章+80x86计算机组织结构(50页珍藏版)》请在金锄头文库上搜索。

1、艰苦奋斗、严谨治学、求实创新、为人师表,第2章 80X86计算机组织结构,1 80X86 计算机的基本结构 2 80X86 CPU的寄存器 3 内存组织结构 4 80X86 CPU的工作模式 5 存储器管理机制,2.1 80X86计算机的基本结构,中央处理器 总线结构 存储器 外部设备,图 2-1 计算机的基本结构,中央处理器-CPU,中央处理器又称为微处理器,内部包括运算器、控制器和寄存器三部分组成。 中央处理器CPU的主要功能是执行存放在内存储器中的指令。 执行步骤:取指-分析操作码-执行,运算器也称为算术逻辑部件,是用来执行指令所要求的算术运算、逻辑运算和数据传送等操作。 控制器是控制执

2、行步骤;从内存中取出指令,分析指令的操作码, 完成操作数的存取,发出相应的控制命令等。,总线结构,总线负责传送地址、数据和控制信息,因此包括: 数据总线DB(Data Bus) 地址总线AB(Address Bus) 控制总线CB(Control Bus) 三总线的主要任务是负责CPU与内存、外存、外部设备交换信息。,a. 数据总线DB 数据总线是用来传送数据的。 CPU与内存、I/O设备之间通过数据总线传送数据,80x86系列的数据总线有8位、16位、32位和64位。,b.地址总线AB 地址总线是用来传送地址的。 当CPU与内存、I/O设备之间交换信息时,首先要传送地址,内存中的每个字节都对

3、应着一个唯一的地址,I/O设备也是如此。 地址总线的位数与寻址空间有着直接的关系。 例如:8086/8088地址总线20根,则可访问的地址为: 220 =1,048,576 = 1M 则8086/8088最大可用的存储空间为1M字节。,c.控制总线CB 控制总线是传送控制信息的。 CPU与内存、外设备之间的数据传送操作为读写操作。 读写信息就是控制信息,是通过控制总线传送的。 不同型号的CPU总线位数不同,相应的字长与寻址空间也不同。,存储器,存储器是计算机的记忆部件,包括内存(主存)和外部存储器(辅助存储器), 存储器中存放的是指令和数据。 存储器由若干存储单元构成,存储单元的最小单位是字节

4、。 将所有的存储单元按顺序编号,即每一个字节有一个唯一的编号,这些编号称为存储单元的地址(也称为物理地址)。,若CPU要存取某个存储单元的内容,则首先提供该存储单元的地址,然后按地址选中对应的存储单元,就可以对单元内容进行存取操作。,IBM PC机及其兼容机的存储器系统主要分为3个主要部分:程序暂驻区(TPA)、系统内存区和扩展存储区(XMS),图2-2 IBM PC机及其兼容机的存储器映像,外部设备,在微机系统中最常用的外部设备有: 键盘 显示器 打印机 外部存储器等 CPU与外部设备交换信息是通过I/O接口电路来完成的。,2.2 80X86CPU的寄存器,通用寄存器 控制寄存器 段寄存器,

5、图 2-3 80X86寄存器组,通用寄存器,80x86CPU的通用寄存器包括:4个32位数据寄存器,2个32位指针寄存器,2个32位变址寄存器。 8个8位通用寄存器: AL、AH、BL、BH、CL、CH、DL、DH。 8个16位通用寄存器:AX、BX、CX、DX、SI、DI、BP、SP。 8个32位通用寄存器:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。,1. 数据寄存器 (AX、BX、CX、DX) 4个16位数据寄存器AX、BX、CX、DX,每个又可以分为两个独立的8位寄存器AH、AL、BH、BL、CH、CL、DH、DL。 4个32位通用寄存器:用于80386以上的机型:

6、EAX、EBX、ECX、EDX。,2.指针寄存器(SP、BP、IP) SP:堆栈指针寄存器,存放当前堆栈段栈顶的偏移地址,ES与SS堆栈寄存器配合存取堆栈中的数据。在实模式方式(SP),保护模式(ESP)。 BP:为基址指针寄存器,在间接寻址时,用来存放基地址,是相对于堆栈段的基地址。 IP:为指令指针寄存器,是存放当前正在执行的指令的下一条指令的偏移地址,该寄存器所指的地址为代码段的偏移地址。,3.变址寄存器(SI、DI) SI 为源变址寄存器,间接寻址时,在指令中用于地址寄存器和变址寄存器,在串操作时用于源串的地址。 DI 为目的变址寄存器,间接寻址时,在指令中用于地址寄存器和变址寄存器,

7、在串操作时用于目的串的地址。,控制寄存器,FLAGS为标志寄存器,用于表示程序运行时的状态和一些特殊控制. 8086/808880286的标志寄存器为16位,80386以上的标志寄存器为32位。,图2-4 8086/8088 标志寄存器,图2-5 80286 Pentium的标志寄存器,表2-3 8086/8088标志寄存器状态功能表,段寄存器 在PC机中存储器是采用分段管理的方法来组织数据,代码和数据是分开存放的,代码放在代码段中,数据放在数据段中. 所谓的段(segment)就是在内存中所定义的一片存储空间,因此某个存储单元的物理地址需要用段基地址和偏移地址表示. 段的基地址就存放在段寄存

8、器中,一个程序可以由多个段组成.,808680286,有4个段寄存器,即代码段CS、数据段DS、堆栈段SS、附加段ES。在程序执行过程中可以访问4个当前段。 80386及以上的机器,有6个段寄存器,增加了FS、GS为附加的数据段寄存器。在程序执行过程中可以访问6个当前段。,2.3 内存组织结构,内存的地址 字节、字的存放 堆栈,内存的地址 在存储器中内存单元的基本单位为字节,每个字节都有一个唯一的地址。,图2-6 内存单元的地址与内容,字的地址:字是由两个字节组成,如图2-6所示,则字1234H的地址为00002H,低字节在前(地址为00002H) 高字节在后(地址为00003H).,存储单元

9、的内容 一个存储单元存放的信息为存储单元的内容 字节单元内容:地址00002H的内容为34H,表示为(00002H)=34H。 字单元内容:多用偶地址来表示字单元的地址,字的低字节在偶地址上为偶地址,地址00002H的字单元内容为1234H,表示为(00002H)=1234H。如图2.6所示。 某单元内容的内容:某单元的内容为要寻找的单元地址,该地址所指的内容为要寻找的内容。,图2-7某单元内容的内容,(0004H)=1234H (1234H)=FFEEH 则记(0004H)=FFEEH;两个括号表示内容的内容,即地址0004H单元的内容的内容为FFEEH。,堆栈,堆栈(stack)是内存中的

10、一块特定区域,是一个常用的数据结构,在堆栈中的内容是按照“先进后出”的原则进行操作的。 通常用来暂存数据、子程序(过程)调用与返回,调用中断处理程序与从中断处理程序返回等。,2.4 80X86 CPU的工作模式,实模式 保护模式,实模式,内存地址的分段 8086/8088地址总线20根可访问的地址为: 220 =1,048,576 = 1M 分段方法 用16位段地址与16位段内地址的迭加形成20位物理地址,放在16位段寄存器内的段地址定义在任意64K字节存储段的起始地址上,段内地址(偏移地址)定义在64K字节存储段内的任意单元。,地址的组合:物理地址=段地址*16D(或10H)+偏移地址,即物

11、理地址等于2进制的16位段地址乘以16(左移4位)加2进制16位偏移地址。 为了书写方便一般采用16进制表示地址和数据,则物理地址等于16进制的4位段地址乘以10H(左移1位)加16进制4位偏移地址。 如图2-9所示。,图2-9 物理地址的组合,图2-10实模式下的存储器的段结构,物理地址、段地址、段内地址和逻辑地址 (1)物理地址:与内存单元一一对应的20位2进制(或5位16进制)表示的地址为物理地址。 1MB=00000H FFFFFH 每个物理地址代表一个唯一的内存单元。,(2)段地址:将1MB的内存空间分成长为64K字节的程序区和数据区为段,每个段用1个16位2进制地址表示。 在实模式

12、下的寄存器为16位寄存器,段地址是存放在段寄存器中 代码段是存放源程序的2进制程序代码,该段的段地址放在CS中 数据段是存放操作数据的,其段地址放在DS中 堆栈段是堆栈用的存储区,其段地址放在SS中 附加段的段地址放在ES中,(3)段内地址:(偏移地址或偏移值):16位2进制段内地址为偏移地址。 不同段内的偏移地址是存放在不同的寄存器中,段寄存器与装偏移地址的寄存器是按照一定的要求组合的。 组合方式如表 2-4 所示。对于808680286允许访问4个存储段,80386以上允许访问6个存储段,其段寄存器与偏移地址的寄存器的组合方法如表 2-5 所示。,(4)逻辑地址:用段地址和偏移地址来表示内

13、存单元的地址为逻辑地址,两地址之间用“:”隔开。 常写成:段地址:偏移地址 例如: 物理地址为00001H 逻辑地址为0000H:0001H 当物理地址为00001H时,其逻辑地址为0000H:0001H,段地址为0000H段内地址为0001H。,逻辑地址与物理地址的换算关系 逻辑地址是段地址和偏移地址的组合表示,物理地址是段地址和偏移地址的迭加表示。 物理地址=段地址*16D(或10H)+偏移地址 逻辑地址=段地址:偏移地址,【例2-7】设逻辑地址为1111H:2222H 则物理地址为:1111H10H+2222H=13332H 表示:当逻辑地址为1111H:2222H时物理地址为13332

14、H 假设段地址1111H为代码段地址, 则1111H存放在代码段寄存器CS中, 偏移地址2222H就放在指针寄存器IP中。如图2-12所示。,图2-12,【例2-8】167B6H为物理地址其逻辑地址为多种组合: 1000H:67B6H 1001H:67A6H 1002H:6796H 1366H:3166H 1367H:3156H 167BH:0006H 段地址加1,偏移地址就减10H(16)个字节,则每种组合的物理地址均为167B6H。,内存分配方法 例如,某一程序的长度为1020个字节,操作数占510个字节,堆栈段大约用250个字节, 在定义时将代码段长度定为1024D=400H ,数据段长

15、度 512D=200H,堆栈段长度256D=100H ,系统以节的边界对齐。 假设系统给程序分配的内存区从6100H开始。 代码段起始地址6100 H,代码段的偏移地址为000003FFH,即代码段长度为400H, 数据段起始地址6140 H ,数据段的偏移地址为000001FFH,即数据段长度为200 H, 堆栈段起始地址6160 H ,堆栈段的偏移地址为000000FFH,即堆栈段长度为100H。,所以代码段:6100 H10H+0000H +0001H 400H个字节(1024个字节) +03FFH 数据段:6140H*10H+0000H +0001H 200 H个字节(512个字节) +01FFH 堆栈段:6160H*10H+0000H +0001H 100H个字节(256个字节) 00FFH,图2-13 内存分配方法,段与段之间的关系 8088/8086 CPU 是把1M的存储空间划分成若干个逻辑段,每个段的起始地址必须是能够被16整除的数,逻辑段的最大长度为64K,因此,1M字节的存储空间最多可以分成64K个逻辑段,段与段之间可以相邻,分离,重叠,部分重叠,这种分段方法便于数据与代码之间的隔离,段与段的互访和共享内存,带来了灵活性。,段与段之间的关系如图 2-14所示。,2.5 存储器管理机制,分段管理机制 分页管理机制,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号