第2章计算机基本原理_第1页
第2章计算机基本原理_第2页
第2章计算机基本原理_第3页
第2章计算机基本原理_第4页
第2章计算机基本原理_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本章重点本章重点2.1微型计算机系统 硬件结构2.1微型计算机系统 硬件结构2.1微型计算机系统主板内存储器内存储器Inner Memory输入设备输入设备Input Device中央处理器中央处理器输出设备输出设备Output DeviceA-BUS输入接口输入接口输出接口输出接口2.12.1微型计算机系统微型计算机系统抽象结构抽象结构硬件的本质输出设备输出设备输入设备输入设备运算器运算器控制器控制器存储器存储器计算结果计算结果程序和数据程序和数据控制流控制流CSCS 数据流数据流DSDS控制流(反馈)控制流(反馈) 冯冯诺依曼型计算机系统结构图诺依曼型计算机系统结构图2.1 2.1 冯冯诺

2、依曼计算机的基本结构诺依曼计算机的基本结构中央处理器中央处理器CPU 存储器存储器 输入输出设备输入输出设备 总线及接口总线及接口 2.1 微型计算机系统微型计算机系统u冯冯诺依曼机原理诺依曼机原理2.2 2.2 汇编语言与微型计算机系统汇编语言与微型计算机系统 2.2.1 微型计算机系统概念微型计算机系统概念2.2 2.2 汇编语言与微型计算机系统汇编语言与微型计算机系统2.2.2 微处理器微处理器 2.3 80X86寄存器寄存器2.3.1 8086寄存器组寄存器组 分类数据寄存器数据寄存器 表示为表示为(DX)=2345H,(AX)=6789H,存放,存放形式为:形式为: 例例1 用用DX

3、、AX寄存器保存双精度数寄存器保存双精度数23456789H。例例2 用用AX寄存器存放一个字寄存器存放一个字1234H,表示为表示为(AX)=1234H,存放形式为:,存放形式为:地址寄存器地址寄存器 SI 源变址寄存器,可用于存放源缓源变址寄存器,可用于存放源缓冲区的偏移地址。冲区的偏移地址。 DI 目的变址寄存器,可用于存放目目的变址寄存器,可用于存放目的缓冲区的偏移地址。的缓冲区的偏移地址。SP 堆栈指针寄存器,用于指出堆栈堆栈指针寄存器,用于指出堆栈区的栈顶的偏移地址。区的栈顶的偏移地址。BP 基址指针寄存器,用于指出堆栈基址指针寄存器,用于指出堆栈区的某个单元的偏移地址。区的某个单

4、元的偏移地址。段寄存器段寄存器 CS 代码段寄存器,用于指出存放程序的代代码段寄存器,用于指出存放程序的代码段的段地址。码段的段地址。 DS 数据段寄存器,用于指出存放数据的数据段寄存器,用于指出存放数据的数据段的段地址。数据段的段地址。 ES 附加段寄存器,用于指出存放附加数据附加段寄存器,用于指出存放附加数据的附加段的段地址。的附加段的段地址。 SS 堆栈段寄存器,用于指出堆栈区的堆栈堆栈段寄存器,用于指出堆栈区的堆栈段的段地址。段的段地址。控制寄存器控制寄存器 FLAGS标志寄存器:其中的某位代表标志寄存器:其中的某位代表CPU的一个标志,的一个标志,最低位为最低位为D0,最高位为,最高

5、位为D15。8086CPU的标志寄存的标志寄存器共有器共有9个标志,分别为个标志,分别为6条件码标志和条件码标志和3控制标志。控制标志。其含义如下:其含义如下: 溢出标志溢出标志 方方向向标标志志 中断标志中断标志 陷阱标志陷阱标志 符号标志符号标志 零标志零标志 辅助进位标志辅助进位标志 奇偶标志奇偶标志 进位标志进位标志 IP 指令指针寄存器:用来存放代码段中的偏移地址,指令指针寄存器:用来存放代码段中的偏移地址,指出当前正在执行指令的下一条指令所在单元的偏指出当前正在执行指令的下一条指令所在单元的偏移地址。移地址。 在在DEBUG调试环境下以字母缩写的形式表调试环境下以字母缩写的形式表示

6、各个标志位的状态。示各个标志位的状态。 进入进入DEBUG后,用后,用R命令查看寄存器状态时,命令查看寄存器状态时,可以看到除了陷阱标志以外的标志位的状可以看到除了陷阱标志以外的标志位的状态。如表态。如表2-1所示。所示。 标志名标志名标志标志值为值为1值为值为0进位标志进位标志CFCYNC符号标志符号标志SFNGPL零标志零标志ZFZRNZ溢出标志溢出标志OFOVNV辅助进位辅助进位标志标志AFACNA奇偶标志奇偶标志PFPEPO方向标志方向标志DFDNUP中断标志中断标志IFEIDI 例例1 两个二进制数相加运算,有关标志位两个二进制数相加运算,有关标志位自动发生变化。自动发生变化。 10

7、011010+ 01001011 11100101 CPU会自动地把标志位设为:会自动地把标志位设为:CF=0,SF=1,ZF=0,OF=0,即无进位,结果为负数,结,即无进位,结果为负数,结果不为果不为0,没有溢出。,没有溢出。 练习:写出下列二进制运算的练习:写出下列二进制运算的结果以及标志位的变化:结果以及标志位的变化:(1) 10101110+00110011(2) 11001101-101000112.3.2 80X86寄存器组寄存器组 Intel 8086、80286都是都是16位的寄存器。位的寄存器。从从80386开始,寄存器扩展为开始,寄存器扩展为32位。位。 2.4 存储单元

8、 存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号; 例如: 一个存储器有128个存储单元, 编号从0127。 如右图示:2.4.1 存储单元存储单元 在汇编语言中,把存储单元分为字节在汇编语言中,把存储单元分为字节单元、字单元、双字单元等,称为存单元、字单元、双字单元等,称为存储单元的属性。储单元的属性。 存储单元中的数据称为存储单元内容,存储单元中的数据称为存储单元内容,存储单元的地址和内容的表示形式为存储单元的地址和内容的表示形式为用括号将地址括起来以代表单元的内用括号将地址括起来以代表单元的内容。容。 如(如(3075AH)=12H表示表示3075AH号单元中的内容是号单元中

9、的内容是12H (3075BH)=34H表示表示3075BH号单元中的内容是号单元中的内容是34H 若(若(37692H)=5678H表示表示37692H单元和单元和37693H单元一起存单元一起存放放5678H 在存储的时候,高字节放在高地址单元,在存储的时候,高字节放在高地址单元,低字节放在低地址单元低字节放在低地址单元 。如图所示。如图所示。存储单元的地址和内容存储单元的地址和内容 由于字单元是由两个相邻的字节单元构成的,由于字单元是由两个相邻的字节单元构成的,那么对于同一个地址而言,它既可以看成字那么对于同一个地址而言,它既可以看成字节单元,又可以看成字单元。节单元,又可以看成字单元。

10、 如把上图中的字节单元如把上图中的字节单元3075AH看成是字单看成是字单元,则:元,则:(3075AH)=3412H存储单元还分为偶地址单元和奇地址单元。存储单元还分为偶地址单元和奇地址单元。例如上图中的字节单元例如上图中的字节单元3075AH和字单元和字单元37692H都是偶地址单元,而字节单元都是偶地址单元,而字节单元3075BH是奇地址单元。是奇地址单元。 练习:有若干个数据需要存放练习:有若干个数据需要存放在存储单元中,请画图表示,在存储单元中,请画图表示,并标出存储单元的属性。并标出存储单元的属性。 (23560H) =37H (23562H) =2D18H (23620H) =1

11、2345678H 2.4.2存储单元容量 对于大容量的存储器一般还用以下单位来计量容量(以下用B来代表Byte): 1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB 磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位。 存储容量:是该存储设备上可以存储数据的最大数量,通常使用千字节(kb kilobyte)、兆字节(MB megabyte)、吉字节(GB, gigabyte)、太字节(TB ,terabyte)和PB(Petabyte)、EB(Exabyte)等来衡量。 1TB=2的40次方Byte1099511627776 Byte1PB=2

12、的50次方Byte1125899906842624Byte1EB=2的60次方Byte 1152921504606846976 Byte1ZB=2的70次方Byte 1180591620717411303424 Byte1YB=2的80次方Byte 1208925819614629174706176 Byte1DB=2的90次方Byte 1237940039285380274899124224 Byte1NB=2的100次方Byte 1267650600228229401496703205376 Byte2.4.3 CPU对存储器的读写对存储器的读写 CPU要想进行数据的读写,必须和外部器件(

13、标准的说法是芯片)进行三类信息的交互: 存储单元的地址(地址信息) 器件的选择,读或写命令(控制信息) 读或写的数据(数据信息)2.4.3 CPU对存储器的读写对存储器的读写 那么CPU是通过什么将地址、数据和控制信息传到存储芯片中的呢? 电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。 在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。 物理上:一根根导线的集合; 逻辑上划分为: 地址总线 数据总线 控制总线 图示2.4.3 CPU对存储器的读写对存储器的读写CPU对存储器的读写 总线在逻辑上划分的图示:CPU对存储器的读写 CPU在内存中读或写的数据演示: 读演示

14、写演示 从上面我们知道CPU是如何进行数据读写的。可是我们如何命令计算机进行数据的读写呢?CPU对存储器的读写CPU对存储器的读写CPU对存储器的读写 对于8086CPU,下面的机器码能够完成从3号单元读数据: 机器码: 101000000000001100000000 含义:从3号单元读取数据送入寄存器AX CPU接收这条机器码后将完成上面所述的读写工作。CPU对存储器的读写 机器码难于记忆,用汇编指令来表示,情况如下: 机器码:101000000000001100000000 对应的汇编指令:MOV AX,3 含义:传送3号单元的内容到AX地址总线 CPU是通过地址总线来指定存储单元的。

15、地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。地址总线 地址总线发送地址信息演示地址总线地址总线 一个CPU有N根地址总线,则可以说这个CPU的地址总线的宽度为N。 这样的CPU最多可以寻找的N次方个内存单元。数据总线 CPU与内存或其它器件之间的数据传送是通过数据总线来进行的。 数据总线的宽度决定了CPU和外界的数据传送速度。数据总线 我们来分别看一下它们向内存中写入数据89D8H时,是如何通过数据总线传送数据的: 8088CPU数据总线上的数据传送情况 8086CPU数据总线上的数据传送情况数据总线 8位数据总线上传送的信息数据总线 16位数据总线上传送的信息控制

16、总线 CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制线的集合。 有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。所以,控制总线的宽度决定了CPU对外部器件的控制能力。 控制总线上发送的控制信息控制总线控制总线控制总线 前面所讲的内存读或写命令是由几根控制线综合发出的: 其中有一根名为读信号输出控制线负责由CPU 向外传送读信号,CPU 向该控制线上输出低电平表示将要读取数据; 有一根名为写信号输出控制线负责由CPU向外传送写信号。2物理地址物理地址 3逻辑地址逻辑地址 逻辑地址是用户编程时使用的地址,分为逻辑地址是用户编程时使用的地址

17、,分为段地址和偏移地址两部分。段地址和偏移地址两部分。 在在8086汇编语言中,把内存地址空间划分汇编语言中,把内存地址空间划分为若干逻辑段,每段由一些存储单元构成。为若干逻辑段,每段由一些存储单元构成。用段地址指出是哪一段,偏移地址标明是该用段地址指出是哪一段,偏移地址标明是该段中的哪个单元。段地址和偏移地址都是段中的哪个单元。段地址和偏移地址都是16位二进制数。位二进制数。 逻辑地址的形式:逻辑地址的形式:段地址段地址:偏移地址偏移地址 例例1 用十六进制分别表示的三个逻辑地址用十六进制分别表示的三个逻辑地址如下:如下: 3020:055AH3021:054AH2C43:432AH 4逻辑

18、地址与物理地址的转换 用户编程时采用的逻辑地址在用户编程时采用的逻辑地址在CPU执行程序时执行程序时都要转换成实际的物理地址,这个转换过程是都要转换成实际的物理地址,这个转换过程是由由CPU中的地址加法器自动完成的。中的地址加法器自动完成的。 转换公式为:转换公式为: 物理地址物理地址=段地址段地址10H+偏移地址偏移地址 例例1 若逻辑地址为若逻辑地址为3020:055AH,其物理地,其物理地址址=3020H10H+055AH=3075AH。练习:练习: 根据给出的逻辑地址,计算物理地根据给出的逻辑地址,计算物理地址。址。逻辑地址逻辑地址= 2C43:432AH ,物理地址物理地址=? 2E

19、37:9822H , 886F:7911H , 1234:05ACH , 2.4.5 存储器分段存储器分段 1分段的概念分段的概念 8086CPU的地址寄存器只有的地址寄存器只有16位,如果位,如果直接从地址寄存器中发出地址信号,直接从地址寄存器中发出地址信号,所能访问的存储空间就只有所能访问的存储空间就只有216=64KB,达不到达不到20位地址线所提供的地址范围。位地址线所提供的地址范围。 将存储器划分为若干逻辑段,每段最将存储器划分为若干逻辑段,每段最大大64K字节单元。字节单元。 逻辑段的大小可变,每段最少逻辑段的大小可变,每段最少16个字个字节单元,也可以节单元,也可以100个、个、

20、1000个到最个到最大可达大可达65536个字节单元。个字节单元。 段地址和偏移地址构成逻辑地址。段地址和偏移地址构成逻辑地址。例如:逻辑地址为例如:逻辑地址为1200:2650H1200:2650H。 在存储器中,规定每在存储器中,规定每16个字节单元为一个字节单元为一小段,每小段的第一个单元的物理地址小段,每小段的第一个单元的物理地址称为小段的首地址,称为小段的首地址,8086的的1MB内存空内存空间的间的20位物理地址用十六进制表示如下:位物理地址用十六进制表示如下: 规定:存储器分段时,各段的起始地规定:存储器分段时,各段的起始地址必须是小段的首地址,即逻辑段必址必须是小段的首地址,即

21、逻辑段必须从任一个小段的首单元开始,而不须从任一个小段的首单元开始,而不能从其它的字节单元开始。能从其它的字节单元开始。小段首地址的共同的特点是十六进制表小段首地址的共同的特点是十六进制表示的物理地址的最低位都是示的物理地址的最低位都是0,如果把,如果把0去掉(二进制的地址去掉去掉(二进制的地址去掉4个个0),就可),就可以用以用16位段寄存器保存小段的首地址。位段寄存器保存小段的首地址。例例1 定义定义2个段,第一个段的段地址为个段,第一个段的段地址为0002H,共共16个单元;第二个段的段地址为个单元;第二个段的段地址为4123H,共共1024个单元。如图标出了各段首单元和末个单元。如图标

22、出了各段首单元和末单元的逻辑地址。单元的逻辑地址。每一个段内的偏移地址都每一个段内的偏移地址都是从是从0000H开始的。开始的。第一段的首单元的物理地第一段的首单元的物理地址址00020H,末单元的物理地,末单元的物理地址址0002FH第二段的首单元的物理地第二段的首单元的物理地址为址为41230H,末单元的物理,末单元的物理地址为地址为4162FH。2段的类型段的类型 8086汇编语言中把逻辑段分为四种类型,汇编语言中把逻辑段分为四种类型,分别是代码段、数据段、附加段和堆栈段。分别是代码段、数据段、附加段和堆栈段。 各段的逻辑地址对应表:各段的逻辑地址对应表: 段名段名段寄存器段寄存器偏移地

23、址偏移地址代码段代码段CSIP数据段数据段DSBX、SI、DI等地址等地址寄存器寄存器附加段附加段ESBX、SI、DI等地址等地址寄存器寄存器堆栈段堆栈段SSSP或或BP例例1段寄存器与其偏移地址如下,写出其相应段寄存器与其偏移地址如下,写出其相应的物理地址及含义。的物理地址及含义。 CS=1896H,IP=1655H当前要执行的当前要执行的指令的指令的物理地址物理地址=18960H+1655H=19FB5H DS=2896H,EA=1655H当前要访问的当前要访问的数据的数据的物理地址物理地址=28960H+1655H=29FB5H ES=1896H,EA=2655H当前要访问的当前要访问的

24、数据的数据的物理地址物理地址=18960H+2655H=1AFB5H SS=1896H,SP=3655H当前要访问的当前要访问的堆栈的堆栈的物理地址物理地址=18960H+3655H=1BFB5H例例2 段寄存器与内存的分段情况如图。观察各段寄存器与内存的分段情况如图。观察各段的大小及分布,判断其地址范围,标出每个段的大小及分布,判断其地址范围,标出每个段首地址和末地址。段首地址和末地址。 代码段共代码段共64KB单元,它的单元,它的地址范围应该是地址范围应该是210E0H310DFH。 附加段只有附加段只有2KB,地址范,地址范围在围在34600H34CFFH之间。之间。 数据段为数据段为1

25、6KB,其地址范,其地址范围为围为34D00H38CFFH。 堆栈段只有堆栈段只有512个字节单个字节单元,它的地址范围是元,它的地址范围是84180H8437FH。 你懂了吗?你懂了吗?2.5 实例二实例二 进入计算机进入计算机1DEBUG的主要命令的主要命令 2进入进入DOS 3. 进入进入DEBUG 2.5.1 调试工具调试工具DEBUG 1DEBUG的主要命令的主要命令 DEBUG命令有命令有20多个,先学习最常用的命令。多个,先学习最常用的命令。R 查看和修改寄存器查看和修改寄存器D 查看内存单元查看内存单元E 修改内存单元修改内存单元U 反汇编,将机器指令变为汇编指令反汇编,将机器

26、指令变为汇编指令T /P单步执行单步执行G 连续执行程序连续执行程序A 输入汇编指令输入汇编指令Q 退出退出 2进入进入DOSDEBUG要先进入要先进入DOS环境中再使用,在环境中再使用,在Windows下进入下进入DOS的方法可选择两种。的方法可选择两种。(1)在)在Windows桌面下单击开始菜单,选择运行桌面下单击开始菜单,选择运行命令;在弹出的文本框中输入命令;在弹出的文本框中输入cmd;按确定后;按确定后进入进入DOS环境环境 。(2)选择)选择“开始开始程序程序附件附件命令提示命令提示符符”进入进入DOS。 (3)DOS命令命令 本书用到的简单的本书用到的简单的DOS命令:命令:c

27、d 首先要用首先要用cd 退回到根目录退回到根目录C下下dir 显示文件列表显示文件列表cd hb 进入进入hb子目录子目录cd . 退回到上一级目录退回到上一级目录e:进入进入e盘盘cls 清屏清屏 DOS和和DEBUG命令都支持大小写。命令都支持大小写。 3. 进入进入DEBUG DEBUG的提示符是小短线的提示符是小短线 ,在其后输入命,在其后输入命令。令。(1)R命令命令查看和修改寄存器查看和修改寄存器 R命令有两种用法:命令有两种用法:直接键入直接键入R,将显示,将显示CPU所有的寄存器和标所有的寄存器和标志位;志位;修改寄存器:在修改寄存器:在R后跟写寄存器名,则先显后跟写寄存器名

28、,则先显示寄存器的内容,在冒号后可键入新的值示寄存器的内容,在冒号后可键入新的值 逻辑地址机器指令汇编指令标志位状态 (2)D命令命令查看内存单元查看内存单元 用用D命令可以查看存储单元的地址和内容。命令可以查看存储单元的地址和内容。 例如:例如:D DS:0 查看数据段,从查看数据段,从0号单元开始号单元开始D ES:0 查看附加段,从查看附加段,从0号单元开始号单元开始D DS:100 查看数据段,从查看数据段,从100H号单元开始号单元开始 D 0200:5 15 查看查看0200H段的段的5号单元到号单元到15H号号单元单元 D命令的执行情况如图所示。命令的执行情况如图所示。 逻辑地址

29、存储单元内容ASCII码显示 (3)E命令命令修改内存单元修改内存单元 用用E命令可以改写多个存储单元的内容。格命令可以改写多个存储单元的内容。格式为:式为:E 起始地址起始地址 修改值修改值 修改值修改值 例如:将数据段中的例如:将数据段中的0B05:3 0B05:5 三个单三个单元的内容修改为元的内容修改为14、15、16。命令为。命令为 E DS:3 14 15 16 再如:再如: E 10 修改当前数据段修改当前数据段10H号单元内容号单元内容 E ES:100 修改附加段修改附加段100H号单元内容号单元内容 (4)U命令命令 反汇编反汇编 程序员编写的汇编语言源程序经过汇编(编程序员编写的汇编语言源程序经过汇编(编译)后生成了二进制的机器指令代

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论