计算机组成指令系统汇编语言.ppt

上传人:max****ui 文档编号:15456844 上传时间:2020-08-11 格式:PPT 页数:75 大小:1.51MB
收藏 版权申诉 举报 下载
计算机组成指令系统汇编语言.ppt_第1页
第1页 / 共75页
计算机组成指令系统汇编语言.ppt_第2页
第2页 / 共75页
计算机组成指令系统汇编语言.ppt_第3页
第3页 / 共75页
资源描述:

《计算机组成指令系统汇编语言.ppt》由会员分享,可在线阅读,更多相关《计算机组成指令系统汇编语言.ppt(75页珍藏版)》请在装配图网上搜索。

1、计算机组成原理,第5章 指令、指令系统和汇编语言程序设计,2,指令:是计算机运行的最小的功能单元,是指挥计算机硬件运行的命令,是由二进制位组成的位串,是计算机硬件可以直接识别和执行的一个信息体。指令用于程序设计人员告知计算机执行一个最基本运算、处理功能。 指令系统:一台计算机提供的全部指令构成该计算机的指令系统。多条指令可以组成一个程序,完成一项预期的任务。,5.1 指令系统概述,3,指令系统层处在硬件系统和软件系统之间,是硬、软件之间的接口部分。 硬件系统负责用于实现每条指令的功能,解决指令之间的连接关系; 软件由按一定规则组织起来的许多条指令组成,完成一定的数据运算或者事务处理功能。 指令

2、系统优劣是一个计算机系统是否成功的关键因素,同时也是设计一台计算机的起点和基本依据。,回顾:指令系统在计算机中的地位,4,设计指令系统的四点要求: 完备性:指令齐全,编程方便。 规整性:指令和数据的使用规则统一简单,易学易记 高效性:占内存少,运行省时。 兼容性:同一系列机软件兼容,对设计指令系统的要求,对指令系统的要求很严格,既要支持程序设计人员用它设计各种程序,越简单、方便越好(相同算法实现所需的指令少 ),又要容易在计算机中用硬件实现这些指令的处理功能,越节省、高效越好,但这两个方面的要求经常是有矛盾的。,5,3 个层次的程序设计语言,机器语言是计算机硬件能直接识别和运行的指令的集合,是

3、二进制码组成的指令,用机器语言设计程序基本不可行。 汇编语言是对计算机机器语言进行符号化处理的结果,再增加一些为方便程序设计而实现的扩展功能。依赖编译器但效率很高。 高级语言又称算法语言,它的实现思路,不再是过分地“靠拢”计算机硬件的指令系统,而是着重面向解决实际问题所用的算法,瞄准的是如何使程序设计人员能够方便地写出处理问题和解题过程的程序,力争使程序设计工作的效率更高。对编译器的效率要求很高。,6,确定指令系统的两种思路,从降低硬件系统构成的复杂程度、提高指令执行的速度和并行性考虑,确定指令系统时有两种思路: CISC(Complex Instruction Set Computer)(i

4、ntel x86) 通常称为复杂指令系统的计算机。其核心思想是:为了提高效率,让硬件做更多的事情。 其特点是:指令条数多,格式多样,寻址方式复杂,每条指令的功能强,优点是汇编程序设计容易些,但计算机控制器的实现困难多(Intel 4G 处理器的流产/Power PC),很多指令被使用的机会比较少。指令并行度差。 RISC(Reduced Instruction Set Computer)(MIPS/POWER PC) 通常称为精简指令系统的计算机。约翰.科克( John Cocke ) 提出了著名的“20%-80%定律”(即只有20%简单的指令是经常使用的, 而其余80%的复杂指令却很少使用)

5、, 这是RISC技术的设计基础。其核心思想是:让软件做更多的事情,提高简单指令的执行效率。(Alpha 处理器) 提供数目较少、格式与功能简单、运行高效的指令,追求的是计算机控制器实现简单,运行高速,更容易在单块超大规模集成电路的芯片内制做出来。指令并行性好(多发射技术)。 融合趋势 :CISC和RISC融合的趋势,7,CISC指令和RISC指令举例,CISC架构乘法指令:MUL ADDRA, ADDRB 可以将内存地址为ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。它完成的操作首先将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻

6、辑来实现。 这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。 RISC架构只支持简单寄存器乘法指令MUL A, B 。 RISC上实现相同的功能:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。共需要4条指令。 这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。,8,指令格式-指令表示,指令字:代表指令的一组二进制代码信息; 指令字长:指令字中二进制代码的位数。 位数越多,所能表示

7、的操作信息和地址信息也就越多,使指令功能丰富。但会占用存储空间多,读取指令的时间可能增加。 指令基本格式:一般由操作码和操作对象两部分组成 操作对象指一个或多个地址码。,OP,A 0,A 1,9,指令表示,操作码:用来指明该指令所要完成的操作,如加法、减法、传送、移位、转移等等。 位数反映了机器的操作种类,也即机器允许的指令条数,如果操作码有n位二进制数,则最多可表示2n种指令。 地址码:用来寻找运算所需要的操作数(源操作数和目的操作数)。 地址码包括:源操作数地址、目的操作数地址和下一条指令的地址。 地址含义:主存的地址、寄存器地址或者I/O设备地址。,10,指令字长与机器字长的关系 机器字

8、长是指计算机能直接处理的二进制数据的位数,它与计算机的功能和用途有很大的关系,是计算机的一个重要技术指标。首先,字长决定了计算机的运算精度,字长越长计算机的运算精度越高,因此高性能的计算机字长较长。 指令的长度与机器的字长没有固定的关系,它既可以小于或等于机器的字长,也可以大于机器的字长(增加取指时间)。前者称为短格式指令,后者称为长格式指令。一条指令存放在地址连续的存储单元中。同一台计算机中可能既有短格式指令又有长格式指令,但通常是把最常用的指令(如算术逻辑运算指令、数据传送指令)设计成短格式指令,以便节省存储空间和提高指令的执行速度。,11,指令的长度主要取决于操作码的长度、操作数地址的长

9、度和操作数地址的个数。由于操作码的长度、操作数地址的长度及指令格式不同,各指令的长度不是固定的,指令的长度通常为字节的整数倍。 地址码长度决定了指令直接寻址能力,若为n位,则给出的n位直接地址寻址2n字节。这对于字长较短(8位或16位)的微型机来说远远满足不了实际需要,扩大寻址能力的方法,一是通过增加机器字长来增加地址码的长度;二是采用地址扩展技术,把存储空间分成若干个段,用基地址加位移量的方法来增加地址码的长度。 在Pentium系列机中,指令格式也是可变的:由8位、16位、32位、64位不等。,12,5.1.1 操作码组织与编码,定长的操作码的组织方案 在指令字最高位部分分配固定若干位用于

10、表示操作码。 这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的、大中型计算机和超级小型计算机以及RISC(Reduced Instruction Set Computer)中。如IBM370和VAX-11系列机,操作码长度均为8位。 变长的操作码的组织方案(扩展操作码) 不同的指令操作码的位数可以变化,称可变长操作码。 使用频度高的指令,采用较短的操作码,使用频度低的指令,采用较长的操作码,使得指令系统的操作码平均长度得到压缩。 由于这种格式可有效地压缩操作码的平均长度,在字长较短的微机中被广泛采用。如PDP-11,Intel8086/80386等。,13,假设某机器的指令长度为16

11、位,包括 4位基本操作码和三个 4位地址码段。 15 12 118 7 4 30,4 位基本操作码可表示 16个状态, 如用 4 位操作码,则能表示 16 条三地址指令, 若用 8 位操作码,则可表示 256 条二地址指令, 而用12位操作码,则可表示 4096条一地址指令, 若16位全用作操作码,则可表示 65536条零地址指令,指令操作码的扩展技术,14,操作码扩展:指令字长16位,可含有3、2、1或0 个地址,每个地址占4位。,操作码 地址码,15 12 11 8 7 4 3 0,0000 X Y Z 1110 X Y Z,1111 0000 Y Z 1111 1110 Y Z,三地址指

12、令 15条,二地址指令 15条,1111 1111 0000 Z 1111 1111 1110 Z,一地址指令 15条,1111 1111 1111 0000 1111 1111 1111 1111,零地址指令 16条,15,前面介绍的操作码扩展方案中,每次扩展4位并仅保留了一个编码用于接下来的扩展过程,当每次扩展的位数和保留的位数变化时,后面可扩展的指令条数就可以变化。例如在16位字中的指令字中,可以选用如下方案支持三地址指令、二地址指令、一地址指令和零地址指令14、30、31、16条:,16条零地址为:11111111111100001111111111111111,14条三地址为:000

13、0 1101 (保留1110、1111 两个码),30条二地址为:11100000 11111101 (保留 2个码),31条一地址为:111111100000 111111111110 (保留 1个码),指令操作码的扩展技术,16,5.1.2 操作数个数,(1)三地址指令: (A1)OP(A2)A3,(2)二地址指令: (A1)OP(A2)A1 A1:目的操作数 A2:源操作数,(3)单地址指令: (ACC)OP(A)ACC OP(A)A 单目操作:如NEG、INC等指令,17,5.1.2 操作数个数,(4)零地址指令 不涉及操作数:如NOP、HLT指令 操作数隐含:如PUSH、POP指令

14、对于寄存器类型的操作数,地址A指寄存器编号。,18,指令操作数来源和去向 1、CPU内部的通用寄存器:操作数存放在CPU的通用寄存器中,地址码A为寄存器号。 2、输入输出设备(接口)的一个寄存器。操作数存放在外设中,地址码A为其地址信息。(IO统一编址: MIPS IO单独编址:x86) 3、主存储器的一个存储单元。操作数存放在主存中,地址码A为其地址信息 4、立即数。操作数直接存放在指令中,5.1.2 指令操作数来源和去向,19,例: X、Y、Z是存放三个操作数的存储单元地址。分别用三地址、二地址、一地址结构的指令实现 (X)+(Y) - Z 的程序段,并分析比较, 见下图:,20,操作数类

15、型与数据存储方式,(1) 操作数类型,无符号整数,定点数、浮点数、二_十进制数,ASCII,逻辑运算,bit,(2) 数据在存储器中的存放方式,字地址 为 低字节 地址 Intel,字地址 为 高字节 地址 Motorola,21,存储器中的数据存放 (存储字长为 32 位),地址(十进制),0 4 8 12 16 20 24 28 32 36,字节(地址14),字节(地址15),字节(地址13),字节(地址12),边界对准,22,指令是用户使用计算机和计算机本身运行的最小的功能单元: 用于设计程序, 指令是由多个二进制位组成的数串, 计算机硬件可直接识别和执行。通常情况下一台计算机需要提供哪

16、些指令呢? 计算机用于计算和处理数据,为此,要在计算机硬件系统中设置 5 种类型的部件:运算器部件、控制器部件、存储器部件、输入设备、输出设备,各自承担数据运算、系统指挥控制、保存当前程序和数据、执行输入和执行输出的功能。需要在计算机中设置为使用和控制这几个部件运行的相应指令。 也可换一个角度说,写程序要使用哪些类型的指令呢?,5.1.3 指令分类,23,输入设备,输出设备,入出接口和总线,外存设备,主存储器,高速缓存,控 制 器,运 算 器,使用硬件系统用到的基本指令,ADD SUB AND OR MVRR SHR RCL,OUT,STORE PUSH,JUMP JRC JRNC JRZ J

17、RNZ CALL RET,LOAD POP,IN,24,指令的功能和分类,指令用于设计程序,指令系统构成最低级别的程序设计语言,程序设计人员通过指令直接指挥计算机的硬件完成某一个基本的运算、处理功能,例如: 对数值数据的算术运算,对逻辑数据的逻辑运算, 在计算机部件之间传送、保存数据, 从外部向计算机内输入数据, 把计算机内部计算结果输出出来, 按照某种条件控制计算机选择执行某段程序, 当然还有另外一些方面的更深层次的要求 等; 可以按照指令执行的功能对它们们进行分类。,25,指令的功能分类-1,算术与逻辑运算指令 加、减、乘、除、变符号 等算术运算 与、或、非、异或 等逻辑运算 移位操作指令

18、 算术移位(一般只右移)、逻辑移位、循环移位 数据传送指令 通用寄存器之间传送 通用寄存器与主存储器存储单元之间传送 主存储器不同存储单元之间传送 输入输出指令 通用寄存器与输入输出设备(接口)之间传送,26,指令的功能分类-2,转移指令 变动程序中指令执行次序的指令,分为无条件转移指令和条件转移指令 子程序调用与返回指令 子程序调用与返回指令要配合使用,子程序的最后一条指令一定是返回指令,执行结束后返回主程序断点 堆栈操作指令 堆栈(stack)是由若干个连续存储单元组成的先进后出的存储区,有压入(即进栈)和弹出(即退栈)操作 其他指令 置条件码指令、开中断指令、关中断指令 停机指令、空操作

19、指令、特权指令,27,5.2 寻址方式,什么叫寻址方式? 寻址方式(又称编址方式)指的是确定本条指令的操作数地址及下一条要执行的指令地址的方法。 一个指令系统采用什么样的寻址方式与存储结构及其存取方式有关。 通常在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。 在指令中给出的操作数(或指令)的地址被称为形式地址,使用形式地址信息并按一定规则计算出来或读操作得到的一个数值才是数据(或指令)的实际地址(有效地址、物理地址)。,28,指令寻址,1、顺序寻址方式 控制器中使用程序计数器PC来指示指令在内存中的地址。在程序顺序执行时,指令的地址码由PC自加1得出。 指令在内存中按

20、顺序存放,当顺序执行一段程序时,根据PC从存储器取出当前指令, PC自动1,然后执行这条指令;接着又根据PC指示从存储器取出下一条指令, PC自动1, 执行。 2、跳跃寻址方式 当程序执行转移指令时,程序不再顺序执行,而是跳转到另一个地址去执行,此时,由该条转移指令的地址码字段可以得到新指令地址,然后将其置入PC中。,29,数据寻址,指令的地址码字段,通常都不代表操作数的真实地址,把它称作形式地址,记为A。操作数的真实地址称为有效地址,记作EA,它是由寻址方式和形式地址共同来确定的。,30,5.2.1 存储结构与存取方式,一个指令系统采用什么样的寻址方式与存储结构及其存取方式有关。 1. CP

21、U中的寄存器 访问时只需给出寄存器号或隐含约定(根据操作码)。称为可编址寄存器。 2. 主存 访问时应给出相应的存储单元号 3. 堆栈 堆栈的操作在栈顶实现,栈顶地址有堆栈指针寄存器SP给出,用隐地址访问。,31,5.2.1 存储结构与存取方式,4. 外存 访问时,用户给出文件名,系统给出外存的寻址信息。通常不由指令直接给出,而由主机以命令字形式给出。 5. 外设 访问时,主机通过外设中的相关寄存器实现与外设的I/O传送。可将这些寄存器与主存统一编址,或为其分配专门的I/O端口地址。,32,5.2.1 基本寻址方式,立即寻址方式 由指令直接给出操作数。,操作码OP 立即数S,定长格式:,变长格

22、式:,数在指令中,其长度固定、位数有限。,数在基本指令之后,其长度可变。,用来提供常数、设置初值等。 例如:MOV R0,AAAA(教学机) MOV AL,5 MOV AX,3406H (x86),操作码OP 立即数S,定长格式:,变长格式:,数在指令中,其长度固定、位数有限。,数在基本指令之后,其长度可变。,操作码OP 立即数S,定长格式:,变长格式:,操作码OP 立即数S,定长格式:,变长格式:,数在指令中,其长度固定、位数有限。,33,2、直接寻址方式,指令直接给出操作数地址.操作数地址为寄存器地址则称为寄存器直接寻址,操作数地址为存储器地址则称为存储器直接寻址。,存储单元号 寄存器号,

23、(数在M中) (数在R中),(1)寄存器直接寻址,(寄存器寻址),格式,R所占位数少; 访问R比访问M快 但R数量有限,S =(R),34,直接寻址方式,例. 指令:INC R1,35,直接寻址方式,(2)存储器直接寻址,(直接寻址),定长格式,变长格式,D的位数可覆盖 整个存储空间,S =(D),用于访问固定的存储单元。指令中能给出的直接地址空间范围有限。(受指令长度限制),36,例. 指令:INC 2000H,37,3、间接寻址方式,间接寻址方式 指令给出操作数的间接地址。目的:相对直接寻址,扩大寻址范围。,存储单元号 寄存器号,(数在M中) (数在M中),格式,(1)存储器间址,D=00

24、30,0060,.,0060,S,.,S =(D),M,间址单元,地址指针,间址单元地址,操作数地址,操作数,M,M,38,间接寻址方式,(2)寄存器间址,格式,R所占位数少;R可提供全字长地 址码;修改R内容比修改M内容快。,S =(R),R=02,M,0040,S,.,.,.,地址指针,0040,寄存器号,操作数地址,操作数,R,M,39,4、堆栈寻址,堆栈寻址,格式,SP,S =(SP),栈顶,SP既可出现在指令中,也可隐含约定。,堆栈向上生成,压栈:,SP自动减1,再存数。 -(SP),自减型间址。,先取数,SP再自动加1。 (SP)+,自增型间址。,出栈:,S,.,.,.,40,5、

25、变址寻址方式,变址寻址方式 指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,变址寄存器号,S =(RX)+ D),格式,形式地址,变址量,基准地址(数值),41,变址寻址方式,例. 用变址方式访问一组连续区间内的数组元素。,D=首址,D为存储区首址; (RX)为所访单元距离 首址的长度; RX初值为0,每访问一 个单元,(RX)+1。,D+1,D+2,D+n-1,.,42,6、基址寻址方式,基址寻址方式 指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,格式,基址寄存器号,4K,位移量,S =(Rb)+ D),基准地址,相对于基址的位移,4K,D=2,

26、D=2,43,基址寻址方式,便于访问两维数组中某类指定的元素。 比如:,44,变址与基址的区别:,变址与基址的区别:,变址:指令提供基准量(不变),R提供修改量 (可变);适于处理一维数组。,基址:指令提供位移量(不变),R提供基准量 (可变);用于扩大有限字长指令的访存空间。,45,7、相对寻址方式,相对寻址方式 指令给出位移量,PC内容与位移量之和为有效地址。,格式,位移量,程序计数器,由寄存器号选定或隐含指定,S =(PC)D),有效地址相对PC上下浮动,给编程带来方便。,46,寻址特征:寻址方式的编码,寻址特征 R-R指令编码例子 OP: 4bit Ms: 源操作数寻址特征 3bit

27、Rs: 源寄存器地址 3bit Md: 目的操作数寻址特征 3bit Rs: 目的寄存器地址 3bit Ms/Md: 000 寄存器直接 操作数=(Rn) 001 寄存器间接 操作数=(Rn) 010 寄存器间接、自增 操作数= (Rn),Rn=Rn+1 011 相对 转移目标地址=(PC)+(Rn) 寻址特征 单地址编码例子,47,5.2 指令格式举例,(1) IBM 360指令格式,48,(2) MIPS计算机系统,MIPS是上个世纪八十年代中推出的RISC结构的计算机系统,获得了很大的成功。 MIPS32是32位字长、典型RISC结构的计算机,其指令格式规范,只有种,用到的寻址方式和指令

28、条数少。 第1种指令称为R型指令,完成寄存器之间数据运算功能,例如,rd rs op rt,rd (rs rs 转移到地址 PC+offset*4 ;否则顺序执行。 第3种指令称为J型指令,完成无条件跳转的操作功能。,49,MIPS指令格式,rs,rt,rd:源和目的寄存器 shamt:移位次数(立即数)funct:运算类型 所有的指令都是32位长度。有 3种指令格式,即寄存器型、立即数型和转移型。 操作数寻址方式有寄存器寻址、变址寻址、立即数寻址3 种,指令地址支持相对寻址、伪直接地址 2种方式。 特点:指令规整,寻址方式简单。方便流水实现。,op rs rt rd shamt funct,

29、寄存器型,立即数型,转移型,op rs rt address / immediate,op target,例如: add $1, $2, $3 R3R1+R2,例如:lw $1, $2, 100 R2MR1+100 addi $1, $2, 100 R2R1+100,例如: j 8000 转移到 PC31.28 80004,6 5 5 5 5 6,50,MIPS指令集具有以下特点: (1) 指令系统设计时选择一些使用频率较高的简单指令,且选择一些很有用但不复杂的指令。 (2) 指令长度固定,指令格式种类少,寻址方式种类少。 (3) 只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行

30、。,设计特点(RISC的特点),51,(4) 采用流水线技术。超级标量及超级流水线技术,增加了指令执行的并行度,使得一条指令的平均指令执行时间小于一个机器周期。 (5) CPU中通用寄存器数量相当多,可以减少访存次数。 (6) 以硬布线控制逻辑为主,不用或少用微码控制。 (7) 采用优化的编译程序,力求有效地支持高级语言程序。,设计特点(RISC的特点),52,典型指令系统-intel Pentium,CISC代表 指令表示:主要由两部分组成:指令前缀,指令本身。指令前缀为可选。具体含义件P129,53,特点,主要在以下方面来对增强指令的功能 面向目标程序增强指令功能 具体方法有: 提高运算类

31、指令的功能 提高传送类指令的功能 增强程序控制指令功能 面向编译程序目标代码生成优化的改进 提供面向操作系统优化的指令 主要特点 指令系统复杂。具体表现为指令条数多、寻址方式多、指令格式多。指令串行执行,大多数指令需要多个时钟周期完成。 采用微程序控制,因为微程序控制器适合于实现CISC指令执行过程的控制。 有较多的专用寄存器,大部分运算所需的数据均需访问存储器获取。 编译程序难以用优化措施生成高效的目标代码程序。,54,习题-巩固概念,1 指令系统中采用不同寻址方式的目的是() A.实现存储程序和程序控制 B.缩短指令长度,扩大寻址空间,提高编程灵活性 C.可以直接访问外存 D.提供扩展操作

32、码的可能并降低译码难度,55,2 为了缩短指令中某个地址段的位数,有效的方法是采取() A. 立即寻址 B. 变址寻址 C. 间接寻址 D. 寄存器寻址,56,3 假定指令中地址码给出的是操作数的有效地址,则该指令采用的寻址方式是() A. 立即 B. 直接 C. 基址 D. 相对,57,4 设指令中的地址码为A,变址寄存器为X,程序计数器为PC,则变址寻址方式的操作数地址为() A . (PC)+A B. (A)+(X) C. (A+X ) D. A+(X),58,5 设指令中的地址码为A,变址寄存器为X,基址寄存器为B,程序计数器为PC,则变址间接寻址方式的操作数地址为() A. (X)+

33、(A) B. (X+B) C. (X)+A) D. (A)+(PC),59,6 某机器字长为16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段,假设取指令时,每取一个字节PC 自动加1,若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是() A 2006H B 2007H C 2008H D 2009H,60,7 采用相对寻址方式的转移指令占两个字节,第一字节为操作码字段,第二字节为相对位移量字段(补码表示),假设取指令时,每取一个字节PC 自动加1,假设执行到该转移指令时PC的内容为

34、2003H,要求转移到200AH,则该转移指令第二字节的内容应该为() A 05H B 08H C F8H D F5H,61,8 假设某条指令的一个操作数采用一次间接寻址方式,指令中给出的地址码为1200H,地址为1200H的内存单元中的内容为12FCH,地址为12FC的内存单元的内容为38B8H,而38B8H单元的内容为88F9H,则该操作数的有效地址为() A 1200H B 12FCH C 38B8H D 88F9H,62,9 假设某条指令的一个操作数采用两次间接寻址方式,指令中给出的地址码为1200H,地址为1200H的内存单元中的内容为12FCH,地址为12FC的内存单元的内容为38

35、B8H,而38B8H单元的内容为88F9H,则该操作数的有效地址为() A 1200H B 12FCH C 38B8H D 88F9H,63,10假设某条指令的一个操作数采用寄存器间接寻址方式,指令中给出的寄存器编号为8,8号寄存器的内容为1200H,地址为1200H的内存单元中的内容为12FCH,地址为12FC的内存单元的内容为38B8H,而38B8H单元的内容为88F9H,则该操作数的有效地址为() A 1200H B 12FCH C 38B8H D 88F9H,64,教学机的汇编语言程序设计,要设计汇编程序必须首先知道有哪些汇编语句可用(指令),每个语句实现的功能和具体使用方法,可能用到

36、的数据或主存地址的书写方式; 最常用的程序流程控制,包括顺序执行,必转或者条件转移执行,循环执行,子程序调用与返回执行等,这些程序的流程结构对任何程序设计语言都是类似的。 程序设计的主导思想是如何用一种语言写出解决问题的过程和具体算法,切不可变成试用各种语句的一个操作过程。,65,TEC-2机的基本指令(实验手册新),数据移动指令 MOV DR,SR MOV DR,DATA MOV DR,DATASR MOV DR,SR MOV DR,ADR MOV DATASR,DR MOVDR,SR MOVADR,SR 堆栈操作指令 PSHF PUSH DR POPF POP DR 输入输出指令 IN、O

37、UT 算术逻辑运算指令 NOT DR INC DR DEC DR ADD DR,SR AND DR,SR SUB DR,SR ADC DR,SR OR DR,SR SBB DR,SR CMP DR,SR XOR DR,SR TEST DR,SR ASR DR SHL DR RCL DR SHR SR RCR DR MUL SR DIV SR 控制、转移指令 JR ADR JP SR JP ADR JR CND,ADR JP CND,SR JP CND,ADR IRET EI DI STC CLS CALL SR CALL ADR RET 其它指令: NOP LDMC HALT,66,典型的汇编

38、程序执行流程,(Z=1),(Z=1),67,典型的汇编程序执行流程,(i+1),68,教学计算机中的汇编程序的例子,例1:设计一个程序,完成 16进制的 22+120 的计算。 A800 ; 从内存RAM区的起始地址 16进制的800 开始 800: MOV R0, 0022 ;把被加数送入R0 802: MOV R1, 0120 ;把加数送入R1 804: ADD R0, R1 ;执行加法运算并保存运算结果 805: RET ;每个用户程序都必须用RET指令结束 806:(按回车键即结束源程序的输入过程) 说明:1、程序中给出的数是16进制的,使得实现汇编器程序可以更简单; 2、要完成数据运

39、算,被运算数据要送到寄存器中之后才能进行计算; 3、用户程序选用 RET 语句结束,与监控程序处理用户程序方法有关。,33,69,教学机的汇编程序的例子,例2:例:设计一个小程序,完成在屏幕上输出09 十个数字符。源程序如下: A800 MOV R2,0A ;置计数器初值:输出字符个数 MOV R0,30 ;0字符的ASCII 码 (804)CALL 009B ;调用009B 子程序:显示输出一个字符,字符存放在R0中 INC R0 ;R0=R0+1形成下一个字符 DEC R2 ;R2=R2-1 JR NZ,804 ;若未输出完,继续输出。 RET ;若输出完,返回,70,教学机汇编程序的例子

40、,例3:完成双字长整数(R8R9/R10R11)相加,其和存放在R8,R9 中。 MOV R8,1111 ;被加数(高位) MOV R9,2222 ;被加数(低位) MOV R10,3333 ;加数(高位) MOV R11,4444 :加数(低位) ADD R9,R11 ;低位和 ADC R8,R10 ;高位和 RET ;返回,71,教学机汇编程序的例子,例4:计算1到10的累加和。 MOV R1,0 ;置累加器初值为0 MOV R2,0A ;最大加数 MOV R3,0 ;加数初值 ADR:INC R ;加数 ADD R1,R3 ;累加 CMP R3,R2 ;判断是否累加完 JR NZ,ADR

41、 ;未累加完,开始下一轮累加 RET ;若完成,返回 功能:计算从1 到10 的累加和。 运行过后,可以用R命令看R1中的累加结果。,72,教学机汇编程序的例子,例5:从键盘上键入多个属于0到9的数字符并在屏幕上显示,遇非数字符结束程序。 A0840 MOV R2,30 ;0为下限值 MOV R3,39 ;9为上限值 (0844)CALL 005A ;调005A 子程序:输入一个字符 CMP R0,R2 ;该字符与下限比较 JP C,084F ;若9,则停止输入返回 CALL 009B ;在09,调009B 子程序:显示该字符 JP 0844 ;直接跳转 (084F)RET,73,补: 移位操

42、作,逻辑移位,:数码位置变化,1. 移位类型,算术移位,1 0 0 1 1 1 1,算术左移:,1,0,1,1,1,1,0,(-15),(-30),74,(1)单符号位 :,0 0111,0 1110,(2)双符号位:,00 1110,00 0111,2.正数补码移位规则,(3)移位规则,0 0111,0 0011,01 1100,00 1110,00 0111,数符不变,(单:符号位不变;双:第一符号位不变)。,空位补0,(右移时第二符号位移至尾数最高位)。,75,(1)单符号位 :,1 1011,1 0110,(2)双符号位:,10 1100,11 0110,3.负数补码移位规则,(3)移位规则,1 1011,1 1101,11 0110,11 1011,数符不变,(单:符号位不变;双:第一符号位不变)。,左移空位补0,(第二符号位移至尾数最高位)。,右移空位补1,

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!