《汇编原理 基础知识.ppt》由会员分享,可在线阅读,更多相关《汇编原理 基础知识.ppt(80页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、云南大学软件学院本科教学课程云南大学软件学院本科教学课程教学单位:云南大学软件学院教学单位:云南大学软件学院教师:王逍教师:王逍80X8680X86计算机组成与汇编语言计算机组成与汇编语言一些基本问题课程内容课程内容 组成原理的问题与汇编程序的问题 学习方法学习方法 编程、编程、编程 学习目的学习目的 理解、融合、贯通 编程环境编程环境 IDE与debug辅导与答疑辅导与答疑?考核考核 平时0.1+期中0.2+1期末0.7 第一章第一章 基础知识基础知识 计算机由硬件系统和软件系统的协同工作完成相应的功能,计算机是硬件和软件的综合体。计算计算机系机系统组统组成成计算机软件计算机系统主存运算器控
2、制器内部寄存器组CPU主机辅存I/O设备外设计算机硬件1.1 基本概念 定义 电子式数字计算机,即通常所说的计算机,是一种把程序以及数据用二进制的形式进行存储,并根据程序的功能自动连续的对数据进行算术运算和逻辑运算的工具。定义 计算机系统,由计算机硬件(Hardware)系统与软件(Software)系统两部分组成。定义 硬件系统,即计算机的硬件设备,指计算机系统中各种电子的、机械的、磁性的、光的器件或装置;硬件系统是计算机系统中看得见、摸得着的物理实体,是计算机的“躯体”。定义 软件系统,指控制、管理计算机硬件以及解决各类应用问题的所有程序的总和;软件系统看不见、摸不着,是计算机的“灵魂”。
3、1.1.1 冯冯诺依曼计算机诺依曼计算机 根据计算机的特点,计算机要实现的基本功能是:数据处理数据处理:可以进行数值处理和非数值处理。数据传送数据传送:计算机与外界交换数据。数据存储数据存储:存储程序和数据。1945年,美籍匈牙利数学家John Von Neumann提出冯诺依曼计算机,其特点为:采用二进制代码表示数据与指令。采用储存程序工作方式。运算器、储存器、控制器、I/O设备构成计算机硬件系统。冯诺依曼计算机工作原理核心是存储程序的工作方式存储程序的工作方式。1.2.1 计算机的硬件系统 根据冯诺依曼提出的计算机工作原理,计算机硬件的基本组成主要有输入设备、存储器、运算器、控制器、输出设
4、备5大部件,在计算机程序的控制下,完成信息的输入、存储、处理、控制以及输出等功能。组成框图如图1-1所示。运算器和控制器合称中央处理器,简称cpucpu;运算器、控制器、内存储器以及输入、输出接口电路合称主机主机;各种输入、输出设备和外存储器合称计算机外围设备,简称外设外设。输输入入设设备备控制器控制器输输出出设设备备 CPUCPU运算器运算器ALU ALU 存储器存储器指指令令数数据据结结果果请请求求命命令令状状态态请请求求命命令令命命令令数数据据结结果果地地址址指指令令图1-1计算机硬件的基本组成 计算机的硬件系统各个组成部分的功能:1.1.控制器控制器:是计算机中控制执行指令的部件,其主
5、要功能包括:正确执行每条指令:首先是取来一条指令,接着分析这条指令,再按指令格式和功能执行这条指令 保证指令按规定序列自动连续地执行。对各种异常情况和请求及时响应和处理。说到底,控制器要向计算机各功能部件提供每一时刻协同运行所需要的控制信号。计算机的硬件系统各个组成部分的功能:2.2.运算器运算器:是计算机中进行数据加工的部件,其主要功能包括:执行数值数据的算术加减乘除等运算,或执行逻辑数据的与或非等逻辑运算,由一个被称为 ALU 的线路完成。暂时存放参加运算的数据和中间结果,由多个通用寄存器来承担。运算器通常也是数据传输的通路。计算机的硬件系统各个组成部分的功能:3.3.存储器存储器:由高速
6、缓冲存储器(cache),主存储器(内存),外存储器(硬盘、光盘)所组成的多级(层)存储器系统,是计算机中用于存储程序和数据的系统。这三级存储器各自的功能分工、所用的存储介质的工作原理和特性各不相同。4.4.输入设备输入设备:输入设备是向计算机中送入程序和数据的有一定独立功能的设备,用于人机交互联系,如计算机键盘和鼠标等。5.5.输出设备输出设备:输出设备是计算机中用于送出计算机内部信息的设备,例如打印机、显示器等。总线总线 使用总线连接计算机各个组成部件,构成各组成部件之间信息传输通道。定义 总线,是一组能为计算机内部多个部件分时共享的公共信息传送线路。说明共享,一组总线可以挂接多个部件。说
7、明分时,同一时刻,同一组总线只能有一个发送源;不同的时刻,同一组总线可以有不同的发送源。说明分时共享,挂接在同一组总线的部件在不同的时刻使用同一组总线发送与接受信息。1.总线分类 按传输方向单向总线、双向总线。按总线条数单总线、多总线。按传输信息地址总线(address bus,简称ab)、数据总线(data bus,简称db)、控制总线(control bus,简称cb)。2.常用总线结构-单总线结构单总线结构特点 同一时刻只允许有一个部件拥有对总线的控制权 总线上的主设备:拥有对总线控制权的部件 同一时刻只允许有一个总线的主设备如图1-2所示。图1-2 单总线结构 CPU主存接口1接口nI
8、/O设备I/O设备总线主设备常用总线结构-双总线结构双总线结构双总线指存储总线、I/O总线方式1 以cpu为核心的连接方式,如图1-3所示。CPU主存接口1接口nI/O设备I/O设备I/OI/O总线总线存储总线存储总线图1-3 cpu为核心的双总线结构 方式2 以存储器为核心的连接方式,如图1-4所示。主存cpu接口1接口nI/O设备I/O设备I/OI/O总线总线存储总线存储总线图1-4 存储器为核心的双总线结构 常用总线结构-多总线结构多总线结构如图1-6所示。cpucache高速总线存储管理部件ram次高速总线总线控制器总线控制器低速外部总线高速外部总线图形卡dmac网 卡键 盘软 盘串行
9、接口音频口图1-6 多层总线结构 1.2.2 计算机的软件系统 计算机的软件系统可以分为系统软件和应用软件,简单分类如下图1-7所示。软件软件系统系统科学计算类程序工程设计类程序数据处理类程序信息管理类程序自动控制类程序情报检索类程序操作系统语言处理程序数据库管理系统各种服务性支撑软件各种标准程序库系统软件系统软件应用软件应用软件图1-7 计算机软件系统 1.3计算机的层次结构 计算机系统以硬件硬件为基础,通过配置各种软件软件,形成一个有机组合的系统。对其通常采取一种层次结构观点去进行分析或设计,也就是从不同的角度将计算机系统分成若干级(层次)。硬件逻辑部件硬件逻辑部件微程序控制器微程序控制器
10、用户程序用户程序硬核硬核机器语言(指令系统)机器语言(指令系统)操作系统操作系统语言处理程序(解释、编译)语言处理程序(解释、编译)作为软件资源的应用程序作为软件资源的应用程序数学模型、算法数学模型、算法系统分析级系统分析级用户程序级用户程序级操作系统级操作系统级机器语言级机器语言级微程序级微程序级计计算算机机系系统统逐逐级级生生成成过过程程应应用用计计算算机机系系统统求求解解问问题题过过程程1 1:从组成计算机硬件软件划分的层次结构,如图1-8所示。计算机分为系统分析级、用户程序级、操作系统级、机器语言级和微程序级5个层次。图1-8 计算机硬件软件组成层次结构 2 2:从计算机语言级划分的层
11、次结构,如图1-9所示。计算机分为机器语言物理机、汇编语言虚拟机、高级语言虚拟机、专用语言虚拟机4个层次。定义语言级,将计算机的功能描述为能执行某些程序设计语言编写的程序。定义 虚拟机,通过配置软件扩展机器功能后所形成的一台计算机,即采用软件形式表示出来的计算机。专用语言虚拟机高级语言虚拟机汇编语言虚拟机实际机器(机器语言物理机)程序图1-9 计算机语言级层次结构 数字逻辑级级0硬件电路微程序机器级级1微程序机器语言级级2机器语言操作系统机器级级3操作系统汇编语言级级4汇编程序面向问题的语言级级5编译程序面向用户支持高一级语言的编译或解释程序3 3:从实际应用划分的层次结构,如图1-10,计算
12、机分为数字逻辑级、微程序机器级、机器语言级、操作系统机器级、汇编语言级、面向问题的语言级6个层次。图1-10 计算机实际应用层次结构 1.41.4 计算机的性能指标计算机的性能指标定义 位(bit),指计算机能表示的最基本最小的单位。在计算机中采用二进制表示数据和指令,故:位就是一个二进制位,有两种状态,“0”和“1”。定义 字节(byte,简写为b),相邻的任意8位二进制数称为一个字节。1 Byte=8 bit 计算机中一个字节可以表示为:1100 0011 或者 0101 0111字节单位(k,m,g,t)的换算关系 1K=1024B=1024*8bit;1M=1024K;1G=1024M
13、;1T=1024M定义 字(word,简写为w),是CPU内部进行数据处理的基本单位。定义 字长,每一个字(word)所包含的二进制位数。常与CPU内部的寄存器、运算装置、总线宽度一致。字长是衡量cpu工作性能的一个重要参数,不同类型的cpu有不同的字长。如:Intel 4004cpu是4位Intel 8080cpu是8位(一个字节)Intel 8088/8086/80286cpu是16位(两个字节)Intel 80386/80486、Pentiumcpu是32位(双字)一般把一个字定为16位,则1word=2byte,10110011(高8位)10011001(低8位)高字节 低字节同理一个
14、双字(dword)定为32位,则1dword=2word=4byte 高字 低字定义 位编号,为便于描述,对字节,字和双字中的各位二进制数进行编号。从低位开始,从右到左依次为0、1、2、。若丐位二进制数表示数值,可以使用位编号d0、d1、d2、表示;若该位二进制数表示地址,可以使用位编号a0、a1、a2、表示。编号7654321010100010d7d6d5d4d3d2d1D0a7a6a5a4a3a2a1a0字节数值data地址addressD0D7D15D8158101010101010101070A0A7A15A8字的编号为15-0双字的编号依此类推,为31-0定义 主频,也叫做时钟频率,
15、用来表示微处理器cpu的运行速度,主频越高表明微处理器运行越快,主频的单位是MHz或GHz。早期微处理器的主频与外部总线的频率相同,从80486DX2开始,主频=外部总线频率倍频系数,外部总线频率通常简称为外频,它的单位也是MHz。外频越高说明微处理器与系统内存数据交换的速度越快,因而微型计算机的运行速度也越快。倍频系数是微处理器的主频与外频之间相对比例系数。通过提高外频或倍频系数,可以使微处理器工作在比标称主频更高的时钟频率上,这就是所谓的超频超频。1.51.5 计算机中的信息表示计算机中的信息表示 数据信息数据信息指令信息指令信息数值型数据数值型数据非数值型数据非数值型数据产生控制信号的基
16、本依据产生控制信号的基本依据带符号数的表示带符号数的表示1、真值与机器数真值与机器数机器数:机器数:在计算机中使用的连同数符一起数码化的数。在计算机中使用的连同数符一起数码化的数。真值:真值:正负号加绝对值表示的数值。正负号加绝对值表示的数值。常用的机器数表示形式有常用的机器数表示形式有原码、补码和反码原码、补码和反码。例如:设机器字长为例如:设机器字长为8位,有如下真值的原、补、反码位,有如下真值的原、补、反码 真值x x 原 x 补 x 反 1101000011010000110100001101 0000000000000000000000000 -0100000000000000011
17、111111 -1101100011011111001111110010 1.5.1 1.5.1 数值型数据的表示数值型数据的表示 定点数和浮点数是计算机中保存带小数的数值数据的两种编码方式。定义 定点数,在计算机中表示带小数的数值数据时,约定小数点的位置固定在某处不变。根据小数点的位置不同,定点数分为定点整数和定点小数两种。定义 定点整数,小数点位置固定在最低位之后(即最低位的右边),即数值数据为纯整数。根据数值数据是否带符号,定点整数分为带符号的定点整数和不带符号的定点整数。定义 定点小数(纯小数),小数点位置固定在最高数值位之前,符号位之后,即数值数据为带符号的纯小数。定点数与浮点数定点
18、数与浮点数定义 浮点数,在计算机中表示带小数的数值数据时,小数点的位置根据需要可以改变。不管是采用定点数还是浮点数表示带小数的数值数据,小数点都不需要出现在计算机内部的编码中,小数点的位置由编码方式确定。定点数与浮点数定点数与浮点数无符号整数无符号整数定点整数定点整数定点小数定点小数0000000011111111 025511111111 01111111原原原原-127127补补10000000 01111111补补-1281271.1111111 0.1111111原原原原-(1-2-7)(1-2-7)1.0000000 0.1111111补补补补 -1(1-2-7)1、定点数定点数设机
19、器字长设机器字长8 8位,则一些定点数的表示范围如下:位,则一些定点数的表示范围如下:E E浮点数真值:浮点数真值:N=N=+R M R M 浮点数机器格式:浮点数机器格式:阶码阶码MsMs Es EEs E1 1 E Ek M M1 M Mn尾数尾数阶符阶符数符数符R R:阶码底,隐含约定,与尾数基数相同。:阶码底,隐含约定,与尾数基数相同。E E:阶码,为定点整数,补码或移码表示。:阶码,为定点整数,补码或移码表示。其其位数位数决定决定数值范围数值范围;阶符阶符表示表示数的大小数的大小。M M:尾数,为定点小数,原码或补码表示。:尾数,为定点小数,原码或补码表示。其其位数位数决定决定数的精
20、度数的精度;数符数符表示表示数的正负数的正负。尾数规格化:尾数规格化:1/2 M 1/2 M 1 1最高有效位绝对值为最高有效位绝对值为1 12、浮点数浮点数(1 1)典型浮点数格式)典型浮点数格式MsMs:尾数的符号位,也是整个浮点数的符号位。:尾数的符号位,也是整个浮点数的符号位。尾数规格化尾数规格化在浮点数编码格式中,为了充分利用尾数的有效位数,同时使一个浮点数具有确定的表示形式,通常采用浮点数规格化形式,即将尾数的绝对值限定在某个范围之内。如果阶码的底为2(即尾数采用二进制表示),则规格化浮点数的尾数应满座条件:1/2=|M|11/2=|M|1(保证小数点后第一位为1),即尾数一般作为
21、定点纯小数,其绝对值应该小于1。一般说来,若采用补码表示尾数,对于正数,规格化尾数最高数位m m1 1=1;对于负数,规格化尾数最高数位m m1 1=0。1001110101100101010例 某计算机内部浮点数编码格式位长12,其中阶码采用4位补码表示;尾符1位,尾数7位采用补码表示。写出二进制数(-101.011)规格化浮点数代码:(-101.011)B=(-0.101011)2-101.011)B=(-0.101011)2+3+3 阶码=+3=0 011尾符=“-”=1,尾数=101011尾数=(1010110)补码=(0101001+1)=0101010(2)表示范围表示范围表示范围
22、:表示范围:-231 231(1-2-9)例:某规格化浮点数用补码表示,其中阶码例:某规格化浮点数用补码表示,其中阶码6位,含位,含1位阶位阶符;尾符符;尾符1位,尾数位,尾数9位。位。阶符阶符1 1位,阶码位,阶码k位,补码表示,以位,补码表示,以2 2为底;为底;数符数符1 1位,尾数位,尾数n位,补码表示,规格化。位,补码表示,规格化。绝对值最大浮点负数绝对值最大浮点负数:最大浮点正数最大浮点正数:最小浮点正数最小浮点正数:阶码为最大数:阶码为最大数:2 -1k尾数为绝对值最大的负数:尾数为绝对值最大的负数:-1尾数为最大数:尾数为最大数:阶码为最大数:阶码为最大数:2 -1k1-2-n
23、阶码为最小数:阶码为最小数:-2 k尾数为最小正数:尾数为最小正数:2-1最小绝对值:最小绝对值:2-33(3)实用浮点数格式实用浮点数格式IEEE754IEEE754标准的标准的3232位浮点数格式为:位浮点数格式为:阶码阶码S S 尾数尾数数符数符31 30 23 22 0阶码阶码:8 8位以位以2 2为底,阶码为底,阶码 =阶码真值阶码真值 +127+127。尾数尾数:2323位,采用隐含尾数最高位位,采用隐含尾数最高位1 1的表示方法,的表示方法,实际尾数实际尾数2424位,尾数真值位,尾数真值 =1+=1+尾数尾数S S:数符数符,0 0正正1 1负。负。这种格式的非这种格式的非0
24、0浮点数真值为:浮点数真值为:(-1)2 (1+尾数)尾数)S阶码阶码-127(3)实用浮点数格式实用浮点数格式例如:试将例如:试将-(0.110.11)用)用IEEEIEEE短实数浮点格式表示出来。短实数浮点格式表示出来。阶码阶码S S 尾数尾数数符数符31 30 23 22 0阶码:阶码阶码:阶码 =阶码真值阶码真值 +127=-1+127=126=+127=-1+127=126=(0111111001111110)尾数:为尾数:为 0.100 0.100 02解:解:-(0.11)=-0.11)=-(1+0.11+0.1)22-1数符数符:为:为1 12该浮点代码为该浮点代码为 1,01
25、111110,100 1,01111110,100 0阶码阶码8位位尾数尾数23位位 1.5.2 1.5.2 字符的表示字符的表示 1 ASCIIASCII码码 美国国家信息交换标准代码,简称美国国家信息交换标准代码,简称ASCII码。码。09共共10个数字字符:个数字字符:30H39H 26个大写英文字母:个大写英文字母:41H5AH一些一些通用符号和控制符号通用符号和控制符号 128个个ASCIIASCII码码字符包括字符包括 通常一个字符的通常一个字符的ASCIIASCII码占用主存一个字节单码占用主存一个字节单元,元,字符序列字符序列则占用连续的主存单元。则占用连续的主存单元。26个小
26、写英文字母:个小写英文字母:61H7AH 2 UNICODE编码编码 ASCII码适合英语,但不太适用于其他语言。一些码适合英语,但不太适用于其他语言。一些计算机公司形成了一个联盟,称为计算机公司形成了一个联盟,称为UNICODE。UNICODE最基本的思路是将每个字符和符号赋予最基本的思路是将每个字符和符号赋予一个永久、唯一的一个永久、唯一的16位值,即位值,即码点码点。将每个字符长度。将每个字符长度固定为固定为16位长,使软件的编制简单了许多。位长,使软件的编制简单了许多。分配了一些码点给变音符(分配了一些码点给变音符(112)、标点符号()、标点符号(112)、上下标)、上下标字符(字符
27、(48)、方向字符()、方向字符(48)、算术运算符()、算术运算符(256)、几何图符)、几何图符(96)和装饰符号()和装饰符号(192)。)。汉语、日语和朝鲜语所需要的符号。先是汉语、日语和朝鲜语所需要的符号。先是1 024个发音符号个发音符号(如片假名和拼音字母),然后是汉语和日语的象形符号(如片假名和拼音字母),然后是汉语和日语的象形符号(20 992)和朝鲜语的)和朝鲜语的Hangul音节(音节(11 156)。)。分配了分配了6 400个码点供用户进行本地化时使用。个码点供用户进行本地化时使用。每个符号为每个符号为16位,位,UNICODE共有共有 65 536个码点。整个码点空
28、个码点。整个码点空间被划分为块,每块的码点数为间被划分为块,每块的码点数为16的倍数。的倍数。码点分配顺序如下:码点分配顺序如下:主要字母表都有各自连续的空间。例如:拉丁语(主要字母表都有各自连续的空间。例如:拉丁语(336个码点)个码点)、希腊语(、希腊语(144个码点)、斯拉夫语(个码点)、斯拉夫语(256)。)。1.5.3 1.5.3 指令信息的表示指令信息的表示(不讲不讲)指令:指示计算机执行某种操作的信息的集合。指令:指示计算机执行某种操作的信息的集合。本节主要讨论:一般本节主要讨论:一般指令格式指令格式 常用常用寻址方式寻址方式 面向用户面向用户指令类型指令类型2.3.1 指令格式
29、指令格式指令基本格式指令基本格式 操作码操作码 地址码地址码1、指令中的基本信息:指令中的基本信息:操作码,操作数地址,操作结果地址,操作码,操作数地址,操作结果地址,下一条指令地址下一条指令地址操作数地址和操作数地址和操作结果地址操作结果地址2、地址结构地址结构使用使用隐地址隐地址可以减少指令中的地址数,可以减少指令中的地址数,简化简化地址结构地址结构。(1 1)三地址指令)三地址指令格式:格式:操作数操作数地址地址OP A1 A2 A3 OP A1 A2 A3 结果结果地址地址下条指令地址下条指令地址功能:功能:转移时,用转移转移时,用转移地址修改地址修改PCPC内容。内容。(A1)(A1
30、)OPOP(A2)A3(A2)A3(PC)+n PC(PC)+n PC目的地址目的地址(2 2)二地址指令)二地址指令格式:格式:OP A1 A2 OP A1 A2 源地址源地址功能:功能:(A1)OP(A2)A1(A1)OP(A2)A1(PC)+n PC(PC)+n PC双操作数:双操作数:(3 3)一地址指令)一地址指令格式:格式:OP AOP A隐含约定隐含约定单操作数:单操作数:功能:功能:(AC)OP(A)AC(AC)OP(A)AC(PC)+n PC(PC)+n PCOPOP(A A)A A(PC)+n PC(PC)+n PC(4 4)零地址指令)零地址指令格式:格式:OP OP 这
31、种指令不含操作数,有两种可能:这种指令不含操作数,有两种可能:不需要操作数的指令;不需要操作数的指令;所需操作数都是隐含指定。所需操作数都是隐含指定。(1)固定长度操作码固定长度操作码各指令各指令操作码的位置、位数固定相同。操作码的位置、位数固定相同。(2 2)可变长度操作码)可变长度操作码各指令各指令操作码的位置、位数不固定,根据需要操作码的位置、位数不固定,根据需要变化。变化。3.操作码结构操作码结构关键在设置扩展标志。关键在设置扩展标志。例:例:指令字长指令字长16位,可含有位,可含有3 3、2 2、1 1或或0 0个地址,每个地址占个地址,每个地址占4 4位。位。操作码操作码 地址码地
32、址码 15 12 11 8 7 4 3 00000 0000 X X Y Y Z Z 1110 1110 X X Y Y Z Z.11111111 0000 0000 Y ZY Z 1111 1111 1110 1110 Y ZY Z.三地址指令三地址指令 1515条条二地址指令二地址指令 1515条条11111111 11111111 0000 0000 Z Z 1111 11111111 1111 1110 1110 Z Z.一地址指令一地址指令 1515条条11111111 11111111 11111111 0000 0000 1111 11111111 1111 11111111 1
33、111 1111.零地址指令零地址指令 1616条条(3)复合型操作码)复合型操作码操作码分为几部分,每部分表示一种操作。操作码分为几部分,每部分表示一种操作。例:某机算逻指令例:某机算逻指令0 1 2 3 4 5 6 7 8 15基本操作基本操作 进位进位 移位移位 回送回送 判跳判跳 操作数操作数4、指令长度指令长度(1 1)变长指令格式)变长指令格式可简化控制,常用于精简指令系统计算机可简化控制,常用于精简指令系统计算机RISC中。中。合理利用存储空间。合理利用存储空间。(2 2)固定长度指令格式)固定长度指令格式2.3.2 常用常用寻址方式寻址方式 指令中以什么方式提供操作数地址或操作
34、数,指令中以什么方式提供操作数地址或操作数,称为寻址方式。称为寻址方式。寻址方式的含义有二个:一是要表示指令寻址方式的含义有二个:一是要表示指令所需的操作数在何处(如在指令中、寄存器中所需的操作数在何处(如在指令中、寄存器中或主存单元中);二是要给出获取操作数地址或主存单元中);二是要给出获取操作数地址的方法。的方法。指令约定寻址方式的方法通常有二种:一指令约定寻址方式的方法通常有二种:一种是在指令中设置专门的寻址字段;另一种是种是在指令中设置专门的寻址字段;另一种是由操作码隐含约定。由操作码隐含约定。操作码操作码OP OP 立即数立即数1、立即寻址立即寻址指令直接给出操作数。指令直接给出操作
35、数。定长格式:定长格式:变长格式:变长格式:基本指令基本指令 立即数立即数数在指令中,其长数在指令中,其长度固定、有限。度固定、有限。数在基本指令之后,其数在基本指令之后,其长度可变。长度可变。用来提供常数、设置初值等。用来提供常数、设置初值等。OP OP A A 2、直接寻址直接寻址指令直接给出操作数地址,根据该地址可从主指令直接给出操作数地址,根据该地址可从主存单元中读取操作数。寻址过程可描述为:存单元中读取操作数。寻址过程可描述为:指令指令 操作数操作数S S 也可表示为:也可表示为:主存主存操作数地址操作数地址操作数操作数M3、寄存器寻址、寄存器寻址指令中给出寄存器号(也称寄存器地址)
36、,从指令中给出寄存器号(也称寄存器地址),从寄存器中获取操作数。寻址过程可描述为:寄存器中获取操作数。寻址过程可描述为:OP OP Ri Ri 指令指令 操作数操作数S S也可表示为:也可表示为:寄存器号寄存器号操作数操作数RRi 该寻址方式的优点该寻址方式的优点:寻址速度快寻址速度快可减少一个操作数地址的位数可减少一个操作数地址的位数4 4、间接寻址、间接寻址指令给出存放操作数地址的主存单元地址,指令给出存放操作数地址的主存单元地址,即操作数的间接地址。寻址过程可描述为:即操作数的间接地址。寻址过程可描述为:指令指令也可表示为:也可表示为:A1A1A2A2.A2A2 操作数操作数S S.间址
37、单元间址单元OP OP A1 A1 主存主存.间址单元地址间址单元地址操作数操作数M操作数地址操作数地址M5 5、寄存器间址寄存器间址操作数在主存单元中,由指令给出寄存器号,该操作数在主存单元中,由指令给出寄存器号,该寄存器存放操作数地址。寻址过程可描述为:寄存器存放操作数地址。寻址过程可描述为:指令指令也可表示为:也可表示为:A A.操作数操作数S SRiOP OP Ri Ri 主存主存.寄存器号寄存器号操作数操作数M操作数地址操作数地址RA地址指针地址指针 该寻址方式的优点该寻址方式的优点:寻址速度比间址寻址快寻址速度比间址寻址快可减少一个操作数地址的位数可减少一个操作数地址的位数6 6、
38、变址寻址变址寻址指令给出一个形式地址,并指定一个寄存器作为变址寄指令给出一个形式地址,并指定一个寄存器作为变址寄存器,将变址寄存器内容与形式地址相加得到操作数地存器,将变址寄存器内容与形式地址相加得到操作数地址。寻址过程可描述为:址。寻址过程可描述为:指令指令也可表示为:也可表示为:A A.操作数操作数S SRiOP OP Ri Ri D D主存主存.N变址寄存器变址寄存器 加加法法器器 变址寄存器号变址寄存器号D+N=操作数地址操作数地址变址量变址量NR 形式地址形式地址D操作数操作数M变址方式的典型用法:将形式地址作为基准地址,变址方式的典型用法:将形式地址作为基准地址,将变址寄存器内容作
39、变化量。将变址寄存器内容作变化量。7 7、基址寻址基址寻址指令给出一个形式地址,并给出基址寄存器号,基址寄存指令给出一个形式地址,并给出基址寄存器号,基址寄存器内容(作为基准量)与形式地址相加得到操作数地址。器内容(作为基准量)与形式地址相加得到操作数地址。基址寻址与变址寻址在形成操作数地址的方法上很相基址寻址与变址寻址在形成操作数地址的方法上很相似,但主要应用目的不同:似,但主要应用目的不同:变址寻址面向用户,用于访问字符串、线形表、一维数组等;变址寻址面向用户,用于访问字符串、线形表、一维数组等;基址寻址面向系统,用来解决程序在主存中重定位的问题,以及基址寻址面向系统,用来解决程序在主存中
40、重定位的问题,以及在有限字长指令中扩大寻址空间等。在有限字长指令中扩大寻址空间等。8 8、相对寻址相对寻址用程序计数器用程序计数器PC的内容作为基准地址,指令中给出的形的内容作为基准地址,指令中给出的形式地址作为位移量(可正可负),二者相加后形成操作式地址作为位移量(可正可负),二者相加后形成操作数的地址。寻址过程可描述为:数的地址。寻址过程可描述为:指令指令A+dA+dPCOP OP d dA程序计数器程序计数器 加加法法器器A A OP dOP d.操作数操作数S S.主存主存.d d特点特点:操作数地址随操作数地址随PC内容变化而改变,但二者之间的距离不变,内容变化而改变,但二者之间的距
41、离不变,可使操作数与指令在主存中一起移动;可使操作数与指令在主存中一起移动;位移量可正可负,表示操作数地址可以在指令地址之后或之前。位移量可正可负,表示操作数地址可以在指令地址之后或之前。9 9、堆栈寻址堆栈寻址操作数存放在主存堆栈中,指令隐含约定由堆栈指针操作数存放在主存堆栈中,指令隐含约定由堆栈指针SP寄存器提供堆栈栈顶单元地址,进行读出或写入。寻址寄存器提供堆栈栈顶单元地址,进行读出或写入。寻址过程可描述为:过程可描述为:指令指令栈底栈底SPOPOPA堆栈指针寄存器堆栈指针寄存器.操作数操作数S S.主存主存.堆栈是一种按堆栈是一种按“后进先出后进先出”存取顺序进行存取的存储结构。在主存
42、存取顺序进行存取的存储结构。在主存中设置的堆栈区有二端,作为起点的一端固定称为中设置的堆栈区有二端,作为起点的一端固定称为栈底栈底;另一端称;另一端称为为栈顶栈顶。对堆栈的读出(弹出)或写入(压入)都是对栈顶单元进。对堆栈的读出(弹出)或写入(压入)都是对栈顶单元进行,因此行,因此CPU中设具有加减计数功能的中设具有加减计数功能的SP指示栈顶的位置。指示栈顶的位置。栈顶栈顶堆栈堆栈堆栈自底向上(按地址码减少的方向)生成堆栈自底向上(按地址码减少的方向)生成压栈:压栈:SPSP内容减内容减1 1,再压(存)入数。,再压(存)入数。先取数,先取数,SPSP内容加内容加1 1出栈:出栈:主存主存.(
43、SP)=FF初始化初始化栈顶栈顶=栈底栈底 主存主存.(SP)=FE压入压入aa栈顶栈顶 主存主存.(SP)=FE压入压入bab栈底栈底栈顶栈顶=栈底栈底 主存主存.(SP)=FE弹出弹出ba指令中怎样表达寻址方式:指令中怎样表达寻址方式:(1 1)操作码隐含说明不同寻址方式)操作码隐含说明不同寻址方式例:某机指令操作码最高两位例:某机指令操作码最高两位0000:RRRR型指令,寄存器型指令,寄存器-寄存器寻址寄存器寻址0101:RXRX型指令,寄存器型指令,寄存器-变址寻址变址寻址1010:SISI型指令,基址型指令,基址-立即寻址立即寻址1111:SSSS型指令,基址型指令,基址-基址寻址
44、基址寻址(2 2)指令中设置专门字段说明寻址方式)指令中设置专门字段说明寻址方式例:某机指令的每个地址字段中各设置一个例:某机指令的每个地址字段中各设置一个3 3位的寻址方式字段。位的寻址方式字段。操作码操作码OP OP 寻址方式寻址方式 R R 寻址方式寻址方式 R R 源地址字段源地址字段目的地址字段目的地址字段3位位3位位2.3.3 2.3.3 指令类型指令类型 按指令功能或操作性质对指令分类。按指令功能或操作性质对指令分类。1.1.数据传送类指令数据传送类指令源地址源地址 目的地址;且源地址中的数据保持不变。目的地址;且源地址中的数据保持不变。数据数据设置时需考虑:设置时需考虑:(1
45、1)规定传送范围)规定传送范围例:例:8 80 0X86X86:IBM370IBM370:R R M M,R R R RR R M M,R R R R,M M M M(2 2)指明传送单位)指明传送单位例:例:用操作码说明用操作码说明(VAX-11)(VAX-11):用地址量说明用地址量说明(8(80 0X86)X86):传送次数由传送次数由计数器控制计数器控制MOVMOVB B 8 8MOV MOV AXAX,BXBX (16)(16)MOVMOVW W 1616MOVMOVL L 3232MOV MOV ALAL,BLBL (8)(8)MOV MOV EAXEAX,EBXEBX (32)(
46、32)例:例:80X8680X86的串传送指令:的串传送指令:REPREP MOVSWMOVSW(3 3)采用的寻址方式)采用的寻址方式在寻址方式的设置上几乎不受限制,能比较在寻址方式的设置上几乎不受限制,能比较集中地反映指令系统各种寻址方式的实现。集中地反映指令系统各种寻址方式的实现。2.2.输入输入/输出指令输出指令各种信息各种信息主机主机 外设外设数据;数据;控制命令;控制命令;状态。状态。(1 1)外设的编址方式)外设的编址方式I/OI/O接口中寄存器或相当部件称为接口中寄存器或相当部件称为I/OI/O端口。端口。如何为如何为I/OI/O端口分配地址?端口分配地址?I/OI/O端口独立
47、编址端口独立编址I/OI/O地址空间不占主存地址空间,可与主存地址空地址空间不占主存地址空间,可与主存地址空间重叠。间重叠。=1=1 访问存储器访问存储器=0=0 访问访问I/OI/O端口端口需设置专门的控制线区分访问对象,如需设置专门的控制线区分访问对象,如为每个为每个I/OI/O端口端口分配端口地址;分配端口地址;在在I/OI/O指令中给出端口地址。指令中给出端口地址。M/IOM/IO I/OI/O端口与主存单元统一编址端口与主存单元统一编址I/OI/O端口与主存单元使用一个地址空间,用不同的端口与主存单元使用一个地址空间,用不同的地址码来区分它们。地址码来区分它们。如将存储地址空间的低端
48、分配给主存单元,高端如将存储地址空间的低端分配给主存单元,高端分配给分配给I/OI/O端口。端口。设置设置专用专用I/OI/O指令指令针对独立编址,用针对独立编址,用I/OI/O指令访问指令访问I/OI/O端口。端口。指令中说明输入指令中说明输入/输出操作,并给出端口地址。输出操作,并给出端口地址。(2 2)I/OI/O指令设置方式指令设置方式显式显式I/OI/O指令指令例:例:80X8680X86的的I/OI/O指令指令 输入:输入:IN ALIN AL,n n;端口地址端口地址(n)AL(n)AL(直接端口寻址直接端口寻址)IN ALIN AL,DXDX;间接端口地址间接端口地址(DX)A
49、L(DX)AL(间接端口寻址间接端口寻址)输出:输出:OUT nOUT n,ALAL;(AL)n(AL)n(直接端口寻址直接端口寻址)OUT DXOUT DX,ALAL;(AL)(DX)(AL)(DX)(间接端口寻址间接端口寻址)用用传送指令传送指令实现实现I/OI/O操作操作针对统一编址,用传送指令访问针对统一编址,用传送指令访问I/OI/O端口。端口。不设专用不设专用I/OI/O指令。指令。例例.某机某机I/OI/O接口中的寄存器地址为接口中的寄存器地址为80H80H,用传送指令实现,用传送指令实现输入输入/输出:输出:MOV 80HMOV 80H,A A;将累加器;将累加器A A内容输出
50、到内容输出到80H80H端口端口 MOV AMOV A,80H80H;将将80H端口内容输入到累加器端口内容输入到累加器A隐式隐式I/OI/O指令指令 通过通过I/OI/O处理机进行处理机进行I/OI/O操作操作CPUCPU执行简单执行简单I/OI/O指令指令 (启动、停止、查询、清除启动、停止、查询、清除)设置时需考虑设置时需考虑操作数类型操作数类型、符号符号、进制进制等;等;运算结束后设置相应运算结束后设置相应状态标志状态标志。两级两级I/OI/O指令指令包括:包括:加、减、求补、加加、减、求补、加1 1、减、减1 1、比较等运算、比较等运算I/OI/O处理机执行处理机执行I/OI/O操作