汇编语言程序设计-第二章_80X86计算机组织.ppt_第1页
汇编语言程序设计-第二章_80X86计算机组织.ppt_第2页
汇编语言程序设计-第二章_80X86计算机组织.ppt_第3页
汇编语言程序设计-第二章_80X86计算机组织.ppt_第4页
汇编语言程序设计-第二章_80X86计算机组织.ppt_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

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

文档简介

第二章 80x86计算机组织,河南师范大学计算机与信息技术学院,2,2019/2/6,本章内容提要,河南师范大学计算机与信息技术学院,3,2019/2/6,2.1 80x86微处理器,几个名词术语:,晶体管数:是指芯片中所包含的晶体管数,它说明器件的集成度。,主频:是指芯片所用的主时钟频率,它直接影响计算机的运行速度,是反映计算机速度的一个重要指标。,数据总线宽度:数据总线负责计算机中数据在各组成部分之间的传送,数据总线宽度是指在芯片内部数据传送的宽度。,河南师范大学计算机与信息技术学院,4,2019/2/6,2.1 80x86微处理器,几个名词术语:,外部数据总线宽度:是指芯片内和芯片外交换数据的宽度。,地址总线宽度:是指专用于传送地址的总线宽度,根据这一数值可确定处理机可以访问的存储器的最大范围(寻址空间)。如8086cpu有20位地址总线,可访问220个存储单元,即1mb空间;80286cpu有24位地址总线,可访问224个存储单元,即16mb空间。80386cpu有32位地址总线,可访问232个存储单元,即4gb空间。,河南师范大学计算机与信息技术学院,5,2019/2/6,2.1 80x86微处理器,层次结构的存储器组织,目的:为了使存储器匹配处理器的速度。,层次结构组成:,高速缓冲存储器cache:比主存速度更高,但容量小。 主存储器:为中间层。 外存储器:比主存速度慢,但容量大。,河南师范大学计算机与信息技术学院,6,2019/2/6,2.1 80x86微处理器,为提高计算机的可用性而开发的一些措施:,提高计算机的工作速度是微处理器芯片发展的核心问题。,从80486起,芯片中集成了协处理器,提高了浮点处理速度;,字长的增加提高了计算机运算的精度。,从80286开始,除了8086提供的实模式外,增加了保护模式的工作方式。实现了虚拟存储(使计算机可以运行程序空间大于主存空间的用户程序)和多任务管理(允许多个用户可以同时在机器上工作)。,从80386开始,又增加了虚拟86的工作模式。在此模式下,一台机器可同时模拟多个8086处理器的工作。,河南师范大学计算机与信息技术学院,7,2019/2/6,2.2 基于微处理器的计算机系统构成,河南师范大学计算机与信息技术学院,8,2019/2/6,2.2.1 硬件,计算机的硬件分为五大组成部分:运算器、控制器、存储器、输入设备和输出设备。(如图所示),运算器和控制器是计算机的核心,合成中央处理单元cpu(central processing unit)或处理机、处理器(processor)。,输入设备和输出设备往往通称为外部设备(peripheral),简称外设或i/o设备。,在微型计算机中,cpu由一个大规模集成电路芯片构成,被称为微处理器(microprocessor)。,河南师范大学计算机与信息技术学院,9,2019/2/6,2.2.1 硬件,运算器执行所有的算术和逻辑运算。,中央处理单元,控制器负责把指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令。,cpu内部还有一些高速存储单元,称为寄存器(register)。它们为处理单元提供各种操作所需的数据。,河南师范大学计算机与信息技术学院,10,2019/2/6,2.2.1 硬件,存储器是计算机的记忆部件。,存储器,它用来存放程序以及程序中所涉及的数据。,按所在位置,存储器可以分为主存储器(主存、内存)和辅助存储器(辅存、外存)。(二者区别),按读写能力,存储器可以分为随机存储器ram(读写存储器)和只读存储器rom。(二者区别),存储器地址(address)、存储器容量。,主存与寄存器的区别。,河南师范大学计算机与信息技术学院,11,2019/2/6,2.2.1 硬件,外部设备是实现人机交互和机间通信的一些机电设备。,外部设备,输入设备用来接受用户输入的原始数据和程序,并将它们转化为计算机可识别的形式存放到内存中。常用的输入设备有键盘、鼠标等。,输出设备用来将存放在内存中由计算机处理的结果转变为人们所能接受的形式。常用的输出设备有显示器、打印机等。,每个外设必须通过输入输出接口电路(i/o接口)与系统连接。,河南师范大学计算机与信息技术学院,12,2019/2/6,2.2.1 硬件,数据寄存器:用来存放要在外设和主机间传送的数据,实际起了缓冲器的作用。,外部设备,状态寄存器:用来保存外设或接口的状态信息,以便cpu在必要时检测外设的状态,了解外设的工作情况。,命令寄存器:又称控制寄存器,cpu给外设或接口的控制命令通过此寄存器送给外设。,程序员所见的i/o接口由一组寄存器组成。一般说来,这些寄存器有三种不同的用途:,河南师范大学计算机与信息技术学院,13,2019/2/6,2.2.1 硬件,各种外部设备都有以上三种类型的寄存器,只是每个接口所配备的寄存器数量是根据设备的需要确定的。,外部设备,为了区别这些寄存器,各个寄存器进行了编号,形成i/o地址,通常被称作i/o端口(port)。这样就组成了一个独立于内存储器的i/o地址空间。,实际上,系统就是通过这些端口与外设进行通信的。,河南师范大学计算机与信息技术学院,14,2019/2/6,2.2.1 硬件,系统总线把cpu、存储器和i/o设备连接起来,用来传送各部分之间的信息。,系统总线包括数据线、地址线和控制线三组。,数据线:双向的,用来传送信息。,地址线:单向的,用来指出信息的来源和目的地。,控制线:双向的,用来规定总线的动作,如方向等。,系统总线的工作由总线控制逻辑负责指挥。,河南师范大学计算机与信息技术学院,15,2019/2/6,2.2.2 软件,一个完整的计算机系统分为硬件和软件两大部分。,硬件(hardware)是计算机系统的机器部分,是计算机工作的物质基础。,软件(software)是为了运行、管理和维护计算机而编制的各种程序的总和,广义的软件还应该包括与程序有关的文档。,软件可以分为系统软件和应用软件。,见图2.2 计算机软件层次图。,河南师范大学计算机与信息技术学院,16,2019/2/6,2.2.2 软件,系统软件是指为了方便使用、维护和管理计算机系统而编制的一类软件及其文档。,操作系统(operating system)是系统软件的核心。,操作系统是系统程序的集合。它负责管理系统的软硬件资源,向用户提供方便、有效和可靠的工作环境。,操作系统的主要部分是常驻内存监督程序(monitor),只要一开机它就存在于内存中,它可以从用户接收命令,并使操作系统执行相应的动作。,河南师范大学计算机与信息技术学院,17,2019/2/6,2.2.2 软件,i/o驱动程序(i/o driver)用来对i/o设备进行控制或管理。,文件管理程序(file management)用来处理存储在外存中的大量信息,对其中的信息以文件(file)的形式进行存取、复制及其他操作。,文本编辑程序(text editor)用来建立、输入或修改文本,并使它存入内存或大容量存储器中。,翻译程序(translator):系统程序中的翻译程序包括汇编程序、解释程序和编译程序。,河南师范大学计算机与信息技术学院,18,2019/2/6,2.2.2 软件,连接程序(linker)用来把要执行的程序与库文件或其他已经翻译好的子程序(能完成独立功能的程序模块)连接在一起,形成机器能执行的程序。,装入程序(loader)用来把程序从外存传送到内存,以便机器执行。,调试程序(debug)是系统提供给用户的能监督和控制用户程序的一种工具。,系统程序库(syster library)和用户程序库(user library),各种标准程序、子程序和一些文件的集合称为程序库,它可以被系统程序或用户程序调用。,河南师范大学计算机与信息技术学院,19,2019/2/6,2.2.2 软件,应用软件是解决某一问题的程序及其文档。,河南师范大学计算机与信息技术学院,20,2019/2/6,进行汇编语言程序设计所需要的软件,dos平台,windows的虚拟ms-dos环境,文本编辑器:用来录入、修改源程序。常用的有:,dos的edit全屏幕编辑器;,河南师范大学计算机与信息技术学院,21,2019/2/6,进行汇编语言程序设计所需要的软件,windows的notepad计事本;,程序开发系统中的程序编辑器,例如你熟悉的turbo c编辑器;,masm集成开发环境pwb的编辑器。,汇编程序:将汇编源程序翻译成目标程序。微机的汇编程序有多种版本,如masm、tasm等。本书采用微软的masm 6.x。,河南师范大学计算机与信息技术学院,22,2019/2/6,进行汇编语言程序设计所需要的软件,应用软件,连接程序link.exe:将目标程序转换成可执行程序。,调试程序:进行程序排错。常用的有:,dos的debug程序;(建议使用),masm的code view;,turbo debugger等。,河南师范大学计算机与信息技术学院,23,2019/2/6,进行汇编语言程序设计所需要的软件,应用软件,集编辑、汇编、连接和调试为一体的综合开发环境。如masm的程序员平台pwb。,河南师范大学计算机与信息技术学院,24,2019/2/6,2.3 中央处理机,河南师范大学计算机与信息技术学院,25,2019/2/6,2.3.1 中央处理机cpu的组成,河南师范大学计算机与信息技术学院,26,2019/2/6,2.3.1 中央处理机cpu的组成,总线接口单元biu(bus interface unit):管理着8086与外部总线的接口,负责cpu对存储器和外设进行访问。,执行单元eu(execution unit):负责指令的译码、执行和数据的运算。,完成一条指令的功能可以分成两个主要阶段:取指和执行。,取指是从主存中取出指令代码进入cpu。biu负责从存储器中取出指令代码,送入指令队列。,执行是将指令翻译成它代表的功能(被称为译码),并发出有关控制信号实现这个功能。指令执行过程中需要的操作数有些来自cpu内部的寄存器,有些来自指令队列,还有些来自存储器和外设(此时,eu控制总线接口单元biu从外部获取)。,河南师范大学计算机与信息技术学院,27,2019/2/6,2.3.2 80x86寄存器组,河南师范大学计算机与信息技术学院,28,2019/2/6,2.3.2 80x86寄存器组,寄存器分为:,程序可见的寄存器:在汇编语言程序设计中用到的寄存器,它们可以由指令来指定。,程序不可见的寄存器:一般应用程序中不用而由系统所用的寄存器。,程序可见的寄存器分为通用寄存器、专用寄存器和段寄存器三类。,如图2.3所示。,河南师范大学计算机与信息技术学院,29,2019/2/6,2.3.2 80x86寄存器组,ax bx cx dx,eax ebx ecx edx esp ebp edi esi,eip eflags,32位名称,16位名称,名称 累加器 基址变址 计数 数据 堆栈指针 基址指针 目的变址 源变址 指令指针 标志 代码 数据 附加 堆栈,对于8086、8088或80286, 阴影区域是不可用的。 fs和gs寄存器无专用名称。,河南师范大学计算机与信息技术学院,30,2019/2/6,1. 通用寄存器,8086/8088、80286所具有的寄存器,图中阴影部分除外的寄存器,它们都是16位寄存器。,数据寄存器:包括ax、bx、cx、dx,用来暂时存放计算过程中所用到的操作数、结果或其他信息。它们都可以分成高8位和低8位两个独立的寄存器;即它们既可以以字(16位)形式访问,又可以以字节(8位)形式访问。,河南师范大学计算机与信息技术学院,31,2019/2/6,1. 通用寄存器,8086/8088、80286所具有的寄存器,ax(accumulator)称为累加器,用于算数、逻辑运算以及与外设传送信息(in/out指令中)等。 bx(base)称为基址寄存器,常用做存放存储器地址。 cx(count)称为计数器,常用来保存计数值,作为循环和串操作等指令中的隐含计数器。 dx(data)称为数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。,河南师范大学计算机与信息技术学院,32,2019/2/6,1. 通用寄存器,8086/8088、80286所具有的寄存器,指针及变址寄存器 包括si(source index)、di(destination index)、bp(base pointer)、sp(stack pointer)四个16位寄存器,常用于存储器寻址时提供地址。,河南师范大学计算机与信息技术学院,33,2019/2/6,1. 通用寄存器,8086/8088、80286所具有的寄存器,si是源变址寄存器,di是目的变址寄存器;,一般与ds联用, 用来确定数据段中某一存储单元的地址;,在串指令中,si与ds联用、di与es联用,分别寻址数据段和附加段;,在串指令中,si与di还具有自动增量或减量的功能。,河南师范大学计算机与信息技术学院,34,2019/2/6,1. 通用寄存器,8086/8088、80286所具有的寄存器,sp为堆栈指针寄存器,bp为基址指针寄存器;,二者均可以与ss联用来确定堆栈段中的某一存储单元的地址;,sp用来指示栈顶的偏移地址,bp表示堆栈段中的基地址。,堆栈(stack)是主存中一个特殊的区域,采用先进后出filo(first in last out)或后进先出lifo(last in first out)的操作方式。,河南师范大学计算机与信息技术学院,35,2019/2/6,1. 通用寄存器,它们都是32位寄存器,包括eax、ebx、ecx、edx、ebp、edi、esi。,这8个寄存器可以以双字(16位)的形式或对其低16位以字的形式被访问。,eax、ebx、ecx和edx的低16位还可以以字节的形式被访问。,在80386及其后继机型中,所有32位通用寄存器既可以存放数据,也可以存放地址。,这8个通用寄存器的专用特性与8086/8088和80286的ax、bx、cx、dx、sp、bp、di、si是一一对应的。,80386及其后继机型所具有的寄存器,河南师范大学计算机与信息技术学院,36,2019/2/6,2. 专用寄存器,包括ip、sp、flags三个16位寄存器。,ip(instruction pointer)指令指针寄存器,它用来指示代码段中指令的偏移地址,它与代码段寄存器cs联用,以确定下一条指令的物理地址;,处理器利用cs:ip取得下一条要执行的指令,然后修改ip内容,使之指向下一条指令的存储器地址;,计算机就是通过cs:ip寄存器来控制指令序列的执行流程的。,8086/8088、80286所具有的寄存器,河南师范大学计算机与信息技术学院,37,2019/2/6,2. 专用寄存器,sp堆栈指针寄存器,它与ss联用用来确定堆栈段中栈顶的地址,即sp用来存放栈顶的偏移地址。,flags标志寄存器:如图2.4所示。,又称程序状态寄存器(program status word,psw);,用来存放条件码标志、控制标志和系统标志。,8086/8088、80286所具有的寄存器,河南师范大学计算机与信息技术学院,38,2019/2/6,2. 专用寄存器,包括三个32位专用寄存器,分别是eip、esp、eflags;它们的作用和相应16位寄存器相同。,80386及其后继机型所具有的寄存器,河南师范大学计算机与信息技术学院,39,2019/2/6,图2.4 80x86的标志寄存器,8086/8088,80286,80386,80486,pentium,河南师范大学计算机与信息技术学院,40,2019/2/6,80x86的标志寄存器,用来记录程序中运行结果的状态信息,它们是根据有关指令的运行结果由cpu自动设置的。,这些状态信息往往作为后续条件转移指令的转移控制条件,所以称为条件码。它包括of、sf、zf、af、pf和cf。,条件码标志(状态标志),河南师范大学计算机与信息技术学院,41,2019/2/6,80x86的标志寄存器,该标志用于串操作指令中,控制地址的变化方向。,当df=1时,每次串操作后使变址寄存器si和di的值自动减少,即串操作从高地址向低地址方向进行。当df=0时,每次串操作后使变址寄存器si和di的值自动增加,即串操作从低地址向高地址方向进行。,控制标志方向标志df(direction flag),方向标志可以用cld指令复位(df=0),std指令置位(df=1)。,河南师范大学计算机与信息技术学院,42,2019/2/6,80x86的标志寄存器,可以用于i/0、可屏蔽中断、程序调试、任务切换和系统工作方式等的控制。,下面简单介绍某些位的情况。,系统标志位,陷阱标志tf,中断标志if,i/o特权级iopl,河南师范大学计算机与信息技术学院,43,2019/2/6,陷阱标志tf(trap flag),也常称为单步标志。,用于控制处理器是否进入单步操作方式。,当tf=1时,处理器单步执行指令,每条指令执行完后产生编号为1的中断,由系统控制计算机;,当tf=0时,处理器正常工作。,河南师范大学计算机与信息技术学院,44,2019/2/6,中断标志if(interrupt flag),该标志用于控制外部可屏蔽中断是否可以被处理器响应。,当if=1时,允许cpu响应可屏蔽中断请求;,当if=0时,则禁止中断。,河南师范大学计算机与信息技术学院,45,2019/2/6,i/o特权级iopl(i/o privilege level),在保护模式下,用于控制i/o地址空间的访问。(有关内容见第8章。),of表示的是有符号数运算结果是否超出了范围;即对于n位二进制有符号数来说,如果运算结果超出了-2n-1 2n-1-1这个范围,则认为产生了溢出。运算结果已经不正确。,在调试程序debug中提供了测试标志位的手段,它用符号表示某些标志位的值。(见表2.2),河南师范大学计算机与信息技术学院,46,2019/2/6,表2.2 标志位的符号表示,河南师范大学计算机与信息技术学院,47,2019/2/6,3. 段寄存器,段寄存器也是一种专用寄存器;,专用于存储器寻址,用来直接或间接地存放段地址。,80286以前的cpu包括:cs、ds、ss、es;,从80386起增加了两个附加的数据段寄存器fs、gs。,段寄存器是16位的,河南师范大学计算机与信息技术学院,48,2019/2/6,2.4 存储器,河南师范大学计算机与信息技术学院,49,2019/2/6,2.4.1 存储单元的地址和内容,二进制位(bit):是计算机存储信息的基本单位,一个位可存储一位二进制数:0或1。,字节(byte):8个二进制位组成一个字节。,字(word):由两个字节组成,即16位数据。,双字(double word):由两个字组成,即4字节数据,共32位。,4字:由8个字节组成,64位数据。,河南师范大学计算机与信息技术学院,50,2019/2/6,2.4.1 存储单元的地址和内容,8086/8088,80286的字长为16位;,80386到pentium ii的字长为32位。,河南师范大学计算机与信息技术学院,51,2019/2/6,2.4.1 存储单元的地址和内容,存储器里以字节为单位存储信息。,每一个字节单元被赋予一个惟一的存储器地址,称为物理地址。,地址从0开始编号,顺序地每次加1;,机器里,地址是一个无符号二进制整数,书写时常用十六进制数表示。,河南师范大学计算机与信息技术学院,52,2019/2/6,2.4.1 存储单元的地址和内容,一个存储单元中存放的信息称为该单元的内容。,每个存储单元中存放一个字节的内容。(如图所示),在存储器中如何存放一个字或双字?,河南师范大学计算机与信息技术学院,53,2019/2/6,2.4.1 存储单元的地址和内容,在8086和80286中,访问存储器都是以字为单位进行的,即机器是以偶地址访问存储器的。对于奇地址的字单元,要取一个字需要访问二次存储器,浪费时间。,将字单元安排在偶地址(xxx0b),双字单元安排在4的整数倍地址(xx00b),被称为“地址对齐”;同样地,4字单元安排在8的整数倍地址,这样处理器访问存储器时,就不需要额外的访问时间,提高了存取速度。,河南师范大学计算机与信息技术学院,54,2019/2/6,2.4.2 实模式存储器寻址,河南师范大学计算机与信息技术学院,55,2019/2/6,2.4.2 实模式存储器寻址,80x86中,8086/8088只能在实模式下工作,其他微处理器均可在实模式或保护模式下工作。,实模式下允许的最大寻址空间为1mb。,8086/8088的地址总线宽度为20位,其最大寻址空间正好为220=1mb。,其他微处理器在实模式下只能访问前1mb的存储器地址。,实模式就是为8086/8088而设计的工作方式。,河南师范大学计算机与信息技术学院,56,2019/2/6,1. 存储器地址的分段,8086/8088的地址总线宽度为20位:,8086cpu将1mb存储器空间分成许多逻辑段:,最大寻址空间为2201mb;,物理寻址范围:00000h fffffh;,而它们的机器字长为16位。,每个段最大限制为64kb;,逻辑地址=段基地址:段内偏移地址;,河南师范大学计算机与信息技术学院,57,2019/2/6,1. 存储器地址的分段,在1mb的存储器里,每个存储单元都有一个唯一的20位地址,称为该存储单元的物理地址。,cpu访问存储器时,必须先确定所要访问的存储单元的物理地址,才能访问该单元。,物理地址和逻辑地址的转换,河南师范大学计算机与信息技术学院,58,2019/2/6,2. 段寄存器,8086、80286有4个16位段寄存器,每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途。,cs(代码段)指明代码段的起始地址,ss(堆栈段)指明堆栈段的起始地址,ds(数据段)指明数据段的起始地址,es(附加段)指明附加段的起始地址,在80386及其后继的80x86中,新增两个段寄存器fs和gs,它们也是附加的数据段寄存器。,河南师范大学计算机与信息技术学院,59,2019/2/6,各逻辑段的分配,程序的指令序列必须安排在代码段。,程序使用的堆栈一定在堆栈段。,程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段。,数据的存放比较灵活,实际上可以存放在任何一种逻辑段中。,默认的情况允许改变,需要使用段超越前缀指令:cs:、ss:、ds:、es:、fs:、gs:。,没有段超越的指令实例: mov ax,2000h ;axds:2000h ;从默认的ds数据段取出数据 采用段超越前缀的指令实例: mov ax,es:2000h ;axes:2000h ;从指定的es附加段取出数据,河南师范大学计算机与信息技术学院,60,2019/2/6,表2.3 8086/8088、80286的段寄存器和相应存放偏移地址的寄存器之间的默认组合,河南师范大学计算机与信息技术学院,61,2019/2/6,表2.4 80386及其后继机型的段寄存器和相应存放偏移地址的寄存器之间的默认组合,河南师范大学计算机与信息技术学院,62,2019/2/6,图2.9 段分配方式之一,cs ds ss es,各段独立,河南师范大学计算机与信息技术学院,63,2019/2/6,图2.10 段分配方式之二,cs ds ss es,各段重叠,河南师范大学计算机与信息技术学院,64,2019/2/6,1mb空间的分段,河南师范大学计算机与信息技术学院,65,2019/2/6,2.4.3 保护模式存储器寻址,河南师范大学计算机与信息技术学院,66,2019/2/6,2.4.3 保护模式存储器寻址,从80286开始,引入保护模式的存储器寻址。,主要原因:,实模式下允许的最大寻址空间为1mb;不够用。,对于80286及其后继机型提供的更大地址空间,如何寻址;,使微机系统能支持多任务处理。,实现了多任务处理和虚拟存储。,河南师范大学计算机与信息技术学院,67,2019/2/6,1. 逻辑地址,由段选择器和偏移地址两部分组成;,16位段寄存器的内容是段选择器;段选择器指向段描述符,由段描述符中取得32位段基地址;(如图2.11所示),32位偏移地址由各种32位寻址方式得到;,基地址加上偏移地址就得到32位物理地址。,河南师范大学计算机与信息技术学院,68,2019/2/6,2. 描述符,用来描述段的大小、段在存储器中的位置及其控制和状态信息;,由基地址、界限、访问权和附加字段四部分组成。,基地址(base):用来描述指定段的起始地址;,界限(limit):存放该段的段长度;,访问权(access rights):说明该段在系统中的功能,并给出访问该段的一些控制信息;,附加字段:在80386及其后继机型中存在,用来表示该段的一些属性。,描述符的内容是由系统设置的,而不是由用户建立的。,河南师范大学计算机与信息技术学院,69,2019/2/6,图2.11 保护模式存储器寻址示意图,选择器,偏移地址,地址转换,16位,32位,段基地址,所选段 最大4gb,存储器,河南师范大学计算机与信息技术学院,70,2019/2/6,2.5 外部设备,外部设备与主机的通信是通过外设接口进行的。,每个接口都包含一组寄存器;,外设中的每个寄存器都有一个端口(port)地址,形成独立于内存的i/o地址空间。,80x86机的i/o地址空间可达64kb,端口地址范围是0000h ffffh,用16位二进制代码来表示。,端口可以是8位或16位的,还可以是32位的。,主机与外设传送信息的方式有直接、查询、中断、成组传送等。,河南师范大学计算机与信息技术学院,71,2019/2/6,2.5 外部设备,功能调用:,dos(磁盘操作系统:disk operating system)功能调用,bios(基本输入输出系统:base input/output system)功能调用,操作系统把一些复杂的外设操作编程例行程序,使用户用简单的中断指令(int)就可以进入这些例行程序,完成所需要的外设操作。,河南师范大学计算机与信息技术学院,72,2019/2/6,bios功能调用,bios存放在机器的rom中,可看作及其硬件的一个组成部分;,它的层次比dos更低,更接近硬件;,它的语句要完成每一个对设备的直接命令或信息传送。,河南师范大学计算机与信息技术学院,73,2019/2/6,dos功能调用,它是操作系统dos的一个组成部分,在开机时由磁盘装入存储器;,在它的例行程序中可以一次或多次调用bios,以完成比bios更高级的功能。,用户需要时,尽可能使用层次较高的dos功能调用。,河南师范大学计算机与信息技术学院,74,2019/2/6,本章主要内容,河南师范大学计算机与信息技术学院,75,2019/2/6,练习与作业,练习: 2.1、2.2、2.5、2.8、2.9 提交作业: 2.3、2.4、2.6、2.7,河南师范大学计算机与信息技术学院,76,2019/2/6,主存与辅存的主要区别,用于存放当前正在执行的程序和使用的数据;,用于长期保存大量程序和数据;,cpu可以直接存取。,由半导体芯片构成,其成本高、容量小、速度快。,cpu要通过i/o接口访问。,由磁盘或光盘构成,其成本低、容量大、速度较慢。,河南师范大学计算机与信息技术学院,77,2019/2/6,ram与rom的主要区别,ram可以按地址随机读写。,其中的信息只能被读出。,断电后不能保存信息。断电后不能保存信息。,断电后仍能保存信息。,河南师范大学计算机与信息技术学院,78,2019/2/6,存储器地址、存储容量,存储器由大量存储单元组成。为了区别每个单元,对它们进行编号,每个存储单元就有了一个惟一的存储器地址(address)。每个存储单元存放一个字节的数据,一个字节b(byte)包含了8个二进制位b(bit)。,存储容量是指存储器所具有的存储单元个数,其基本单位是字节b。常用的单位是kb(千字节),mb(兆字节),gb(吉字节),tb(太字节)。,1kb=210b=1024b,1mb=210kb=220b,1gb=210mb=230b,1tb=210gb=240b。,河南师范大学计算机与信息技术学院,79,2019/2/6,主存与寄存器的主要区别,存放二进制信息,位置:寄存器在cpu;主存在cpu外部。,访问方式:对寄存器按名访问;对主存按地址访问。,河南师范大学计算机与信息技术学院,80,2019/2/6,图2.1 计算机结构,河南师范大学计算机与信息技术学院,81,2019/2/6,图2.2 计算机软件层次图,河南师范大学计算机与信息技术学院,82,2019/2/6,溢出标志of(overflow flag),在运算过程中,如操作数超出了机器能表示的范围就是发生了溢出,则of=1;否则of=0。,例: 3ah + 7chb6h,产生溢出:of = 1 aah + 7ch(1)26h,没有溢出:of = 0,河南师范大学计算机与信息技术学院,83,2019/2/6,符号标志sf(sign flag),运算结果的最高有效位就是符号标志的状态。运算结果最高位为1,则sf=1;否则sf=0。,例: 3ah + 7chb6h,最高位d71:sf = 1 84h + 7ch(1)00h,最高位d70:sf = 0,河南师范大学计算机与信息技术学院,84,2019/2/6,零标志zf(zero flag),运算结果为0时,zf=1,否则zf=0。,例: 3ah + 7chb6h,结果不是零:zf = 0 84h + 7ch(1)00h,结果是零:zf = 1,河南师范大学计算机与信息技术学院,85,2019/2/6,进位标志cf(carry flag),当运算结果的最高有效位有进位(加法)或借位(减法)时,cf=1;否则cf=0。,例: 3ah + 7chb6h,没有进位:cf = 0 aah + 7ch(1)26h,有进位:cf = 1,进位与溢出有什么区别?,如何判断溢出?,如何运用进位与溢出?,河南师范大学计算机与信息技术学院,86,2019/2/6,辅助进位标志af(auxiliary carry flag),运算时d3位(低半字节)有进位或借位时,af=1;否则af=0。,例: 3ah + 7chb6h,d3有进位:af = 1,该标志主要是由处理器内部使用,用于十进制算数运算指令中,用户一般不必关心。,河南师范大学计算机与信息技术学院,87,2019/2/6,奇偶标志pf(parity flag),当运算结果的最低字节中“1”的个数为0或偶数时,pf=1;否则pf=0。,例: 3ah + 7chb6h10110110b 结果中有5个1,是奇数:pf = 0,注意:pf标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位或32位数据操作时。,河南师范大学计算机与信息技术学院,88,2019/2/6,进位与溢出的区别,cf表示的是无符号数运算结果是否超出范围;即对于n位二进制无符号数来说,如果运算结果超出了0 2n-1这个范围,则认为产生了进位。但运算结果仍然正确。,of表示的是有符号数运算结果是否超出了范围;即对于n位二进制有符号数来说,如果运算结果超出了-2n-1 2n-1-1这个范围,则认为产生了溢出。运算结果已经不正确。,注:处理器内部以补码形式表示有符号数: n=8时,表示的无符号数的范围是:0 255; 表示的有符号数的范围是:-128 +127; n=16时,表示的无符号数的范围是:0 65535; 表示的有符号数的范围是:-32768 +32767。,河南师范大学计算机与信息技术学院,89,2019/2/6,判断溢出的方法,如果两个符号相同的数相加,而运算结果的符号与它们的符号相反,则产生溢出。,如果两个符号相反的数相减,而运算结果的符号与被减数的符号相反,则产生溢出。,其他情况下,不会产生溢出。(举例),河南师范大学计算机与信息技术学院,90,2019/2/6,如何运用进位与溢出,处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志cf;同时,根据是否超出有符号数的范围设置溢出标志of。,应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。,河南师范大学计算机与信息技术学院,91,2019/2/6,进位与溢出的对比,例1:3ah + 7chb6h 无符号数运算:58124182 范围内,无进位,则cf=0 有符号数运算: 58124182 范围外,有溢出,则of=1 例2:aah + 7ch(1)26h 无符号数运算:170124294 范围外,有进位,则cf=1 有符号数运算:8612428 范围内,无溢出,则of=0,河南师范大学计算机与信息技术学院,92,2019/2/6,进位与溢出的对比,例3:0dh+79h=86h 无符号数:00001101b+01111001b=10000110b 无进位,cf=0 有符号数:两个正数相加,结果为负数,溢出,of=1 例4:86h+f5h=7bh 无符号数:10000110b+11110101b=(1)01111011b 有进位,cf=1 有符号数:两个负数相加,结果为正数,溢出,of=1,河南师范大学计算机与信息技术学院,93,2019/2/6,进位与溢出的对比,例5:06h-09h=fdh 无符号数:00000110b-00001001b=(借位1) 11111101b 有借位,cf=1 有符号数:两个符号相同的数相减,不会产生溢出,of=0 例6:80h-01h=7fh 无符号数:10000000b-00000001b=01111111b 无借位,cf=0 有符号数:两个符号不同的数相减,结果的符号与被减数相反,溢出,of=0,河南师范大学计算机与信息技术学院,94,2019/2/6,图2.5 数据类型,最低位称为最低有效位lsb(least significant bit),即d0位; 最高位称为最高有效位msb(most significant bit),对字节、字、双字、4字分别指d7、d15、d31、d63。,河南师范大学计算机与信息技术学院,95,2019/2/6,存储单元的内容,如果用x表示某存储单元的地址,则x单元的内容可以表示为(x);假如x单元中存放着y,而y又是一个地址,则可用(y)=(x)来表示y单元的内容。如左图中 (0003h)=5612h 而 (5612h)=4030h 则 (0003h)=4030h,存储单元的内容可以重复取出,直到有新的内容写入。,河南师范大学计算机与信息技术学院,96,2019/2/6,多字节数据的存放,多字节数据在存储器中占连续的多个存储单元:,存放时,低字节存入低地址,高字节存入高地址;,多字节数据的地址用其低地址表示。,这种“低对低,高对高”的存储形式,被称为“小端方式”。,如图所示,河南师范大学计算机与信息技术学院,97,2019/2/

温馨提示

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

评论

0/150

提交评论