黄老师 发表于 2013-7-31 10:00:59

大工13春《汇编语言程序设计》辅导资料二

大工13春《汇编语言程序设计》辅导资料二
主    题:第二章80x86计算机组织(第1-2节)
学习时间:2013年4月8日-4月14日
内    容:
第二章概述
这周我们将学习第二章中的第1-2节。这两节主要介绍80x86计算机组织的中的微处理器和存储器部分,需要了解基于微处理器的计算机组成结构,掌握计算机访存的的过程和存储器的分段原理。
第一节80x86计算机的组织
1、80x86微处理器
1)总线:符合一定通信协议的通信通道就称为总线。计算机系统总线分为地址总线、数据总线和控制总线
2)80x86微处理器的总线:80x86系列机是Intel公司于1978年发布的,最低端的8086机器字长是16位,可以看出,系列机的数据总线经历了小于、等于、大于地址总线的过程
3)微处理器的寻址范围(空间)和存储单元:8086的地址总线宽度是20位,因此它的寻址范围就是220=1MB,对于总线宽度为32位的80386来说,寻址范围就是:232=4GB。其中B就是字节Byte的首字母,在计算机的存储器中一般都是以字节作为一个存储单元的,因此1B就是一个存储单元
2、基于微处理器的计算机系统构成
1)计算机构成:主要由CPU、存储器、输入输出子系统(I/0)三部分构成
2)中央处理机:CPU由算术逻辑单元(ALU)和控制逻辑单元以及工作寄存器组三部分构成,80386以后还在CPU中集成了高速缓冲存储器(cache),以实现运算器与存储器的速度匹配,现代的CPU有时还集成了显卡等芯片
3)计算机存储器的分层结构:因为CPU运算器是非常快的,需要存储器不停的提供指令给CPU,这就要对存储器进行分层设计。计算机的存储器分为高速缓冲处理器、主存和外存。Cache是速度最快也是层次最高的存储器;主存和外存的区别就是主存是通过系统总线直接挂到CPU上的,而外存需要通过I/0接口间接挂到系统总线上。系统程序存放在主存上,一般程序及大量数据是存放在外存中的
4)I/O子系统:I/O子系统包括I/O设备和大容量存储器两类外部设备。I/O设备包括显示终端,键盘,打印机等
第二节存储器
1、存储单元的地址和内容
   1)存储器的存储单元是一个字节
   2)每个存储单元分配唯一的一个地址
   3)地址用无符号的正数表示,并且用十六进制数表示
   4)存储字占用存储器中相继的两个存储单元,高位字节存入高地址,低位字节存入低地址
   5)字单元地址用它的低位地址表示
   6)计算机以偶地址访存(读和写)
说明:本门课程为了便于说明,用小括号括起来的内容代表存储器存储单元中的值也就是它的内容,比如(0001H)就代表地址单元0001H中存放的数据值,如果其中存放的内容是5CH,则表示为:(0001H)=5CH
   还有一种情况,比如指针结构数据或寄存器数据,其存储内容本身又代表一个地址,而为了取得这个指针或寄存器指向的值,可以采用小括号嵌套的方式表示,比如(005CH)=4D11H,就可以表示为
      ((0001H))=(005CH)=4D11H
    另外,因为计算机是偶地址访存的,因此在取奇地址字结构的内容时需要访存两次,这个需要注意。
   2、实模式的存储器寻址
   1)实模式和保护模式,保护模式是相对实模式而言的,可以简单的理解成真实的存储器模式和虚拟存储器模式,比如我们常用到的虚拟内存的就是在保护模式下工作的。保护模式是实现了系统多任务处理和虚拟内存寻址的工作模式。8086/8088只能工作在实模式下,其他微处理器则可以工作在两种模式下
   2)存储器的地址分段(实模式)
    我们知道8086的20位地址线寻址空间是1MB,但是它的机器字长只有16位,比如CPU需要访存,但是通过控制总线只能给地址线发送16位格式的地址数据,这就无法完成访存任务。
    但是存储器分段可以解决16位字长和20位地址线间的通信矛盾,我们分两次传送,每次都传送16位数据,通过CPU的地址累加器对这两次数据进行加法运算就可以产生20位地址值。这两次传送的数据分别称为段地址和偏移地址。
   3)8086实模式存储器分段采用了16的段地址和16的偏移地址格式,对于1MB存储器分段具体如下:
   第0段 00000,00001,00002, 00003,…………,0000F;
   第1段 00010,   00011,   00012,00013,………….,0001F;
   第2段 00020,   00021,   00022,00023,………….,0002F;
            …………………………………………………………….
            …………………………………………………………….
第32766段 FFFE0,   FFFE1,   FFFE2,FFFE3,………….,FFFEF;
第32767段 FFFF0,   FFFF1,   FFFF2,FFFF3,………….,FFFFF;
可见8086是采用64KB=216为段空间的,每个段大小为16B=24。段地址规定为每个段的首地址,如第一段的段地址就是00010,第32766段的段地址就是FFFE0,可见每个段的段地址后4位都是0,故可以将这20位段地址的高16位装入地址累加器作为段地址,地址累加器的计算公式如下:
      物理地址=16位段地址 16D+16偏移地址
乘数16D就是为了将段地址向左移动4位,从而与偏移地址相加后得到20位的物理地址
本周要求掌握的内容如下:
基本概念:总线宽度及分类、存储单元和内容、存储器寻址范围及分层结构、实模式与保护模式、段地址及偏移地址、逻辑地址与物理地址等。
基本理论:基于微处理器的计算机组织结构,CPU的三种主要构成部分,不同类型数据的存储器存储形式,存储器的分层结构及作用,存储器地址的分段和寻址。
练习:
1、有两个16位字1EE5H和2A3CH分别存放在80x86微机的存储器的000B0H和000B3H单元中,请画图表示出它们在存储器中的存放情况
2、:80x86微机的存储器中存放信息图如下,试读出30022H和30024H字节单元的内容,以及30021H和30022H字单元的内容。
         
……
12H
34H
ABH
CDH
EFH
……
30020
30021
30022
30023
30024

3、请简单描述下题目1中机器取30021H和30022字单元内容的过程及快慢。
4、实模式下,段地址和偏移地址为3017:000A的存储单元的物理地址是什么?
5、8086采用多少位的偏移地址,偏移地址的寻址空间是多大?
页: [1]
查看完整版本: 大工13春《汇编语言程序设计》辅导资料二