【文档说明】计算机组成指令系统汇编语言课件.ppt,共(75)页,1.509 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-5599.html
以下为本文档部分文字说明:
计算机组成原理第5章指令、指令系统和汇编语言程序设计2指令:是计算机运行的最小的功能单元,是指挥计算机硬件运行的命令,是由二进制位组成的位串,是计算机硬件可以直接识别和执行的一个信息体。指令用于程序设计人员告知计算机执行一个最基本运算、处理功能。指令系统:一台计算机
提供的全部指令构成该计算机的指令系统。多条指令可以组成一个程序,完成一项预期的任务。5.1指令系统概述3汇编语言层操作系统层指令系统层微体系结构层数字逻辑层高级语言层应用层计算机系统的层次结构指令系统层处在硬件系统和软件系统之间,是硬、软件之间的接口
部分。硬件系统负责用于实现每条指令的功能,解决指令之间的连接关系;软件由按一定规则组织起来的许多条指令组成,完成一定的数据运算或者事务处理功能。指令系统优劣是一个计算机系统是否成功的关键因素,同时也是设计一台计算机的
起点和基本依据。微体系结构层软件系统硬件系统回顾:指令系统在计算机中的地位4设计指令系统的四点要求:完备性:指令齐全,编程方便。规整性:指令和数据的使用规则统一简单,易学易记高效性:占内存少,运行省时。兼容性:同一系列机软件兼容对设计指令系统的要求对指令系统的要求很严格,既要支持程序设计人员用它设
计各种程序,越简单、方便越好(相同算法实现所需的指令少),又要容易在计算机中用硬件实现这些指令的处理功能,越节省、高效越好,但这两个方面的要求经常是有矛盾的。53个层次的程序设计语言机器语言是计算机硬件能直接识别和运行的指令的集合,是二进制码组成的指令
,用机器语言设计程序基本不可行。汇编语言是对计算机机器语言进行符号化处理的结果,再增加一些为方便程序设计而实现的扩展功能。依赖编译器但效率很高。高级语言又称算法语言,它的实现思路,不再是过分地‚靠拢‛计算机硬件的指令系统,而是着重面向解决实际问题所用的算法,瞄准的是如何使程序设计人员能够方便
地写出处理问题和解题过程的程序,力争使程序设计工作的效率更高。对编译器的效率要求很高。6确定指令系统的两种思路从降低硬件系统构成的复杂程度、提高指令执行的速度和并行性考虑,确定指令系统时有两种思路:CISC(ComplexInstructionSetComputer)(i
ntelx86)通常称为复杂指令系统的计算机。其核心思想是:为了提高效率,让硬件做更多的事情。其特点是:指令条数多,格式多样,寻址方式复杂,每条指令的功能强,优点是汇编程序设计容易些,但计算机控制器的实现困难多(Intel4G处理器的流产/PowerPC),很多指令被使用的机会比较
少。指令并行度差。RISC(ReducedInstructionSetComputer)(MIPS/POWERPC)通常称为精简指令系统的计算机。约翰.科克(JohnCocke)提出了著名的‚20%-80%定律
‛(即只有20%简单的指令是经常使用的,而其余80%的复杂指令却很少使用),这是RISC技术的设计基础。其核心思想是:让软件做更多的事情,提高简单指令的执行效率。(Alpha处理器)提供数目较少、格式与功能简单、运行高效的指令,追求的是计算机控制器实现简单,运行高速,
更容易在单块超大规模集成电路的芯片内制做出来。指令并行性好(多发射技术)。融合趋势:CISC和RISC融合的趋势7CISC指令和RISC指令举例CISC架构乘法指令:MULADDRA,ADDRB可以将内存地址为ADDRA和ADDRB中的数相乘并将结果储存在AD
DRA中。它完成的操作首先将ADDRA,ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘
法指令。RISC架构只支持简单寄存器乘法指令MULA,B。RISC上实现相同的功能:MOVA,ADDRA;MOVB,ADDRB;MULA,B;STRADDRA,A。共需要4条指令。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高
的要求。8指令格式-指令表示指令字:代表指令的一组二进制代码信息;指令字长:指令字中二进制代码的位数。位数越多,所能表示的操作信息和地址信息也就越多,使指令功能丰富。但会占用存储空间多,读取指令的时间可
能增加。指令基本格式:一般由操作码和操作对象两部分组成操作对象指一个或多个地址码。OPA0A19指令表示操作码:用来指明该指令所要完成的操作,如加法、减法、传送、移位、转移等等。位数反映了机器的操作种类,也即机器允许的指令条数
,如果操作码有n位二进制数,则最多可表示2n种指令。地址码:用来寻找运算所需要的操作数(源操作数和目的操作数)。地址码包括:源操作数地址、目的操作数地址和下一条指令的地址。地址含义:主存的地址、寄存器地址或者I/O设备地址。
10指令字长与机器字长的关系机器字长是指计算机能直接处理的二进制数据的位数,它与计算机的功能和用途有很大的关系,是计算机的一个重要技术指标。首先,字长决定了计算机的运算精度,字长越长计算机的运算精度越高,因此高性能的计算机字长较长。指令的
长度与机器的字长没有固定的关系,它既可以小于或等于机器的字长,也可以大于机器的字长(增加取指时间)。前者称为短格式指令,后者称为长格式指令。一条指令存放在地址连续的存储单元中。同一台计算机中可能既有短格
式指令又有长格式指令,但通常是把最常用的指令(如算术逻辑运算指令、数据传送指令)设计成短格式指令,以便节省存储空间和提高指令的执行速度。11指令的长度主要取决于操作码的长度、操作数地址的长度和操作数地址的个数。由于操作码的长度
、操作数地址的长度及指令格式不同,各指令的长度不是固定的,指令的长度通常为字节的整数倍。地址码长度决定了指令直接寻址能力,若为n位,则给出的n位直接地址寻址2n字节。这对于字长较短(8位或16位)的微型机来说远远满足不了实际需要,扩大寻址能力的方法,一是通过增
加机器字长来增加地址码的长度;二是采用地址扩展技术,把存储空间分成若干个段,用基地址加位移量的方法来增加地址码的长度。在Pentium系列机中,指令格式也是可变的:由8位、16位、32位、64位不等。125.1.1操作码组织与编码定长的操作码的组织方案在指令字最高位
部分分配固定若干位用于表示操作码。这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的、大中型计算机和超级小型计算机以及RISC(ReducedInstructionSetComputer)中。如IBM370和VAX-1
1系列机,操作码长度均为8位。变长的操作码的组织方案(扩展操作码)不同的指令操作码的位数可以变化,称可变长操作码。使用频度高的指令,采用较短的操作码,使用频度低的指令,采用较长的操作码,使得指令系统的操作码平均长度得到压缩。由于这种格式可有效地压缩操作码的平均
长度,在字长较短的微机中被广泛采用。如PDP-11,Intel8086/80386等。13假设某机器的指令长度为16位,包括4位基本操作码和三个4位地址码段。15…1211……87……43……0OPA1A
2A34位基本操作码可表示16个状态,如用4位操作码,则能表示16条三地址指令,若用8位操作码,则可表示256条二地址指令,而用12位操作码,则可表示4096条一地址指令,若16位全用作操作码,则可表示65536条零地址指令指令操作码的扩展技术14操作码扩展:指令字长16位,可含有3、2、1或0
个地址,每个地址占4位。操作码地址码15~1211~87~43~00000XYZ1110XYZ............11110000YZ11111110YZ............三地址指令15条二地址指令15条1
11111110000Z111111111110Z............一地址指令15条11111111111100001111111111111111............零地址指令16条15前面介绍的操作码扩
展方案中,每次扩展4位并仅保留了一个编码用于接下来的扩展过程,当每次扩展的位数和保留的位数变化时,后面可扩展的指令条数就可以变化。例如在16位字中的指令字中,可以选用如下方案支持三地址指令、二地址指令、一地址指令和
零地址指令14、30、31、16条:16条零地址为:1111111111110000~111111111111111114条三地址为:0000~1101(保留1110、1111两个码)30条二地址为:11100000~11111101
(保留2个码)31条一地址为:111111100000~111111111110(保留1个码)指令操作码的扩展技术165.1.2操作数个数(1)三地址指令:(A1)OP(A2)→A3OPA1A2A3(2)二地址指令:(A1)OP(A2)
→A1A1:目的操作数A2:源操作数(3)单地址指令:(ACC)OP(A)→ACCOP(A)→A单目操作:如NEG、INC等指令OPA1A2OPA175.1.2操作数个数(4)零地址指令不涉及操作数:如NOP、HLT指令操作数隐含:如PUSH、POP指令对于寄存器类型的操作数,地址A指寄存
器编号。OP18指令操作数来源和去向1、CPU内部的通用寄存器:操作数存放在CPU的通用寄存器中,地址码A为寄存器号。2、输入输出设备(接口)的一个寄存器。操作数存放在外设中,地址码A为其地址信息。(IO统一编址:MIPSIO单独编址:x86
)3、主存储器的一个存储单元。操作数存放在主存中,地址码A为其地址信息4、立即数。操作数直接存放在指令中5.1.2指令操作数来源和去向19例:X、Y、Z是存放三个操作数的存储单元地址。分别用三地址、二地址、一地址结构的指令
实现(X)+(Y)-》Z的程序段,并分析比较,见下图:指令格式程序特点一地址结构ADDX,Y,Z只需一条指令,但指令长度较长二地址结构MOVZ,YADDZ,X需两条指令,但指令长度变短三地址结构LOADXADDYSTOREZ需三条指令,指令长度最短2
0操作数类型与数据存储方式(1)操作数类型地址数字字符逻辑数无符号整数定点数、浮点数、二_十进制数ASCII逻辑运算,bit(2)数据在存储器中的存放方式字地址为低字节地址Intel字地址为高字节地址Motorola37621540字地址04低字节
04512673字地址04低字节21存储器中的数据存放(存储字长为32位)地址(十进制)04812162024283236双字双字(地址32)双字双字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字节(地址8)字节(地址9)字节(地址10)字节(地址11
)字(地址4)字(地址0)字节(地址14)字节(地址15)字节(地址13)字节(地址12)边界对准√√22指令是用户使用计算机和计算机本身运行的最小的功能单元:①用于设计程序,②指令是由多个二进制位组成的数串,③计算
机硬件可直接识别和执行。通常情况下一台计算机需要提供哪些指令呢?计算机用于计算和处理数据,为此,要在计算机硬件系统中设置5种类型的部件:运算器部件、控制器部件、存储器部件、输入设备、输出设备,各自承担数据运算、系统指挥控制、保存当
前程序和数据、执行输入和执行输出的功能。需要在计算机中设置为使用和控制这几个部件运行的相应指令。也可换一个角度说,写程序要使用哪些类型的指令呢?5.1.3指令分类23输入设备输出设备入出接口和总线外存设备主存储器高速缓存控制器运算器使用硬件系统用到的基本指令ADDSUBANDORMVRR
SHRRCLOUTSTOREPUSHJUMPJRCJRNCJRZJRNZCALLRETLOADPOPIN24指令的功能和分类指令用于设计程序,指令系统构成最低级别的程序设计语言,程序设计人员通过指令直接指挥计算机的硬件完成某一个基本的运算、处理功能,例如:对数值数据的算术运算,对逻
辑数据的逻辑运算,在计算机部件之间传送、保存数据,从外部向计算机内输入数据,把计算机内部计算结果输出出来,按照某种条件控制计算机选择执行某段程序,当然还有另外一些方面的更深层次的要求等;可以按照指令执行的功能对它们们进行分类。25指令的功能分类-1算术与逻辑运算指令加、减、乘、除、变符号等算术运算
与、或、非、异或等逻辑运算移位操作指令算术移位(一般只右移)、逻辑移位、循环移位数据传送指令通用寄存器之间传送通用寄存器与主存储器存储单元之间传送主存储器不同存储单元之间传送输入输出指令通用寄存器与输入输出设备(接口)之间传送26指令的功能分类-2转移指令变动程
序中指令执行次序的指令,分为无条件转移指令和条件转移指令子程序调用与返回指令子程序调用与返回指令要配合使用,子程序的最后一条指令一定是返回指令,执行结束后返回主程序断点堆栈操作指令堆栈(stack)是由若干个连续存储单元组成的先进后
出的存储区,有压入(即进栈)和弹出(即退栈)操作其他指令置条件码指令、开中断指令、关中断指令停机指令、空操作指令、特权指令275.2寻址方式什么叫寻址方式?寻址方式(又称编址方式)指的是确定本条指令的操作数地址及下一条要执行的
指令地址的方法。一个指令系统采用什么样的寻址方式与存储结构及其存取方式有关。通常在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。在指令中给出的操作数(或指令)的地址被称为形式地址,使用形式地址信息并按一定规则计算出来或读操作得到的一个数值才是数据(或
指令)的实际地址(有效地址、物理地址)。28指令寻址1、顺序寻址方式控制器中使用程序计数器PC来指示指令在内存中的地址。在程序顺序执行时,指令的地址码由PC自加1得出。指令在内存中按顺序存放,当顺序执行一段程序时,根据P
C从存储器取出当前指令,PC自动+1,然后执行这条指令;接着又根据PC指示从存储器取出下一条指令,PC自动+1,执行……。2、跳跃寻址方式当程序执行转移指令时,程序不再顺序执行,而是跳转到另一个地址去执行,此时,由该条转移指令的地址码字段可以得到新指令地址,然后将其置入P
C中。29数据寻址指令的地址码字段,通常都不代表操作数的真实地址,把它称作形式地址,记为A。操作数的真实地址称为有效地址,记作EA,它是由寻址方式和形式地址共同来确定的。305.2.1存储结构与存取方式一个指令系统采用什么样的寻址方式与存储结构及
其存取方式有关。1.CPU中的寄存器访问时只需给出寄存器号或隐含约定(根据操作码)。称为可编址寄存器。2.主存访问时应给出相应的存储单元号3.堆栈堆栈的操作在栈顶实现,栈顶地址有堆栈指针寄存器SP给出,用隐地址访问。315.2.1存储结构与存取方式4.外
存访问时,用户给出文件名,系统给出外存的寻址信息。通常不由指令直接给出,而由主机以命令字形式给出。5.外设访问时,主机通过外设中的相关寄存器实现与外设的I/O传送。可将这些寄存器与主存统一编址,或为其分配专门的I/O端口地址。325.2.1基本寻址方式1.立即寻址方式由指令直接给出操作数。操作
码OP立即数S定长格式:变长格式:基本指令立即数S数在指令中,其长度固定、位数有限。数在基本指令之后,其长度可变。用来提供常数、设置初值等。例如:MOVR0,AAAA(教学机)MOVAL,5MOVAX,3406H(x86)操作码OP立即数S定长格式:变长格式:基本指令立即数S数在指令中,其长度固定
、位数有限。数在基本指令之后,其长度可变。操作码OP立即数S定长格式:变长格式:基本指令立即数S操作码OP立即数S定长格式:变长格式:基本指令立即数S数在指令中,其长度固定、位数有限。332、直接寻址方式指令直接给出操作数地址.操作数地址为寄存器地址则称为寄存器直接寻址,操作数地址为存储
器地址则称为存储器直接寻址。存储单元号寄存器号(数在M中)(数在R中)操作码OP寄存器号R(1)寄存器直接寻址(寄存器寻址)格式R所占位数少;访问R比访问M快但R数量有限S=(R)34直接寻址方式例.指令:INCR11000HR02000HR13A00HR23C00HR335直接寻址方式
(2)存储器直接寻址操作码OP有效地址D(直接寻址)定长格式变长格式基本指令DLDHD的位数可覆盖整个存储空间S=(D)用于访问固定的存储单元。指令中能给出的直接地址空间范围有限。(受指令长度限制)36例.指令:INC[2000
H]1000H1A00H2000H1B00H...M373、间接寻址方式间接寻址方式指令给出操作数的间接地址。目的:相对直接寻址,扩大寻址范围。存储单元号寄存器号(数在M中)(数在M中)格式(1)存储器间址操作码OP间接地址DD=00300060...
0060S...S=((D))M间址单元地址指针间址单元地址操作数地址操作数MM38间接寻址方式(2)寄存器间址操作码OP寄存器号R格式R所占位数少;R可提供全字长地址码;修改R内容比修改M内容快。S=((R))R=02M0040S.........地址指针0040寄
存器号操作数地址操作数RM394、堆栈寻址堆栈寻址格式操作码OP堆栈指针SPSPS=((SP))0070栈顶SP既可出现在指令中,也可隐含约定。M低高堆栈向上生成压栈:SP自动减1,再存数。-(SP),自减型间址。先取数,SP再自
动加1。(SP)+,自增型间址。出栈:S.........405、变址寻址方式变址寻址方式指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。变址寄存器号S=((RX)+D)格式操作码OPRXD形式地址变址量基
准地址(数值)41变址寻址方式例.用变址方式访问一组连续区间内的数组元素。D=首址D为存储区首址;(RX)为所访单元距离首址的长度;RX初值为0,每访问一个单元,(RX)+1。n-1...012...D+1D+2D+n-1.
..426、基址寻址方式基址寻址方式指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。格式基址寄存器号Rb4K操作码OPRbD位移量S=((Rb)+D)基准地址相对于基址的位移M......…...…...Rb4KD=2
D=243基址寻址方式便于访问两维数组中某类指定的元素。比如:4K4KRbM......…...…...RbD=2D=2学生姓名性别性别年龄年龄学生姓名44变址与基址的区别:变址与基址的区别:变址:指令提供基准量(不变),R提供修改量(可变);适于处理一维数组。基址:指令提供位移量(不变
),R提供基准量(可变);用于扩大有限字长指令的访存空间。457、相对寻址方式相对寻址方式指令给出位移量,PC内容与位移量之和为有效地址。格式位移量操作码OPPC±D程序计数器,由寄存器号选定或隐含指定S=((PC)±D)有效地址相对PC上下浮动,给编程带来方便。
46寻址特征:寻址方式的编码寻址特征–R-R指令编码例子OP:4bitMs:源操作数寻址特征3bitRs:源寄存器地址3bitMd:目的操作数寻址特征3bitRs:目的寄存器地址3bitMs/Md:000寄存器直接操作数=(Rn)001寄存器间接操作数=((Rn))010寄存器
间接、自增操作数=((Rn)),Rn=Rn+1011相对转移目标地址=(PC)+(Rn)…寻址特征–单地址编码例子操作码OPMsRsMdRd475.2指令格式举例OPR1R2RR格式844OPR1XBDRX格式844
412OPR1R3BDRS格式844412OPBDISI格式88412OPB1D1LB2D2SS格式88412412二地址RR基址加变址寻址二地址RM三地址RM基址寻址二地址MM基址寻址基址寻址立即数M(1)IBM360指令格式寄存器
寻址48(2)MIPS计算机系统MIPS是上个世纪八十年代中推出的RISC结构的计算机系统,获得了很大的成功。MIPS32是32位字长、典型RISC结构的计算机,其指令格式规范,只有3种,用到的寻址方式和指令条数少。第1种指令称为R型指令,完成寄存器
之间数据运算功能,例如,rd←rsoprt,rd←(rs<rt),即rs的内容比rt的内容小则置‘1’rd,否则清0;第2种指令称为I型指令,完成寄存器内容和立即数之间的运算功能,例如,rt←rsopimmediate,存储器读写功能,rt←memory[
base+offset],memory[base+offset]←rt,相对转移功能,若rt=rs转移到地址PC+offset*4;否则顺序执行,若rt<>rs转移到地址PC+offset*4;否则顺序执行。第3种指令称为J型指令,完成无条件跳转的操作功能。49MI
PS指令格式rs,rt,rd:源和目的寄存器shamt:移位次数(立即数)funct:运算类型所有的指令都是32位长度。有3种指令格式,即寄存器型、立即数型和转移型。操作数寻址方式有寄存器寻址、变址寻址、立即数寻址3种,指
令地址支持相对寻址、伪直接地址2种方式。特点:指令规整,寻址方式简单。方便流水实现。oprsrtrdshamtfunct寄存器型立即数型转移型oprsrtaddress/immediateoptarget例如:add$1,
$2,$3R3←R1+R2例如:lw$1,$2,100R2←M[R1+100]addi$1,$2,100R2←R1+100例如:j8000转移到PC[31..28]8000×465555650MIPS指令集具有以下特点:(1)指令系统设计时选择一些使用频率较高的简单指令,且选择一些
很有用但不复杂的指令。(2)指令长度固定,指令格式种类少,寻址方式种类少。(3)只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行。设计特点(RISC的特点)51(4)采用流水线技术。超级标量及超级流水线技术,增加了指令执行的并行度,使得一条指令的平均指令执行时间小于一个机器周期。
(5)CPU中通用寄存器数量相当多,可以减少访存次数。(6)以硬布线控制逻辑为主,不用或少用微码控制。(7)采用优化的编译程序,力求有效地支持高级语言程序。设计特点(RISC的特点)52典型指令系统-intelPentiumCISC代表指令表示:主要由两部分组
成:指令前缀,指令本身。指令前缀为可选。具体含义件P12953特点主要在以下方面来对增强指令的功能1.面向目标程序增强指令功能具体方法有:提高运算类指令的功能提高传送类指令的功能增强程序控制指令功能2.面向编译程序目标代码生成优
化的改进3.提供面向操作系统优化的指令主要特点1.指令系统复杂。具体表现为指令条数多、寻址方式多、指令格式多。指令串行执行,大多数指令需要多个时钟周期完成。2.采用微程序控制,因为微程序控制器适合于实现CISC指令执行过程的控制。3.有较多的专用寄
存器,大部分运算所需的数据均需访问存储器获取。4.编译程序难以用优化措施生成高效的目标代码程序。54习题-巩固概念1指令系统中采用不同寻址方式的目的是()A.实现存储程序和程序控制B.缩短指令长度,扩大寻址空间,提高编程灵活性C.可以直接访问
外存D.提供扩展操作码的可能并降低译码难度552为了缩短指令中某个地址段的位数,有效的方法是采取()A.立即寻址B.变址寻址C.间接寻址D.寄存器寻址563假定指令中地址码给出的是操作数的有效地址,则该指令采用的寻址方式是()A.立即B.直接C.基址D.相对574设指令中
的地址码为A,变址寄存器为X,程序计数器为PC,则变址寻址方式的操作数地址为()A.(PC)+AB.(A)+(X)C.(A+X)D.A+(X)585设指令中的地址码为A,变址寄存器为X,基址寄存器为B,程序计数器为PC,则变址间接寻址方式的操作数地址为()
A.(X)+(A)B.(X+B)C.((X)+A)D.(A)+(PC)596某机器字长为16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段,假设取指令时,每取一个字节
PC自动加1,若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是()A2006HB2007HC2008HD2009H607采用相对寻址方式的转移指令占两个字节,
第一字节为操作码字段,第二字节为相对位移量字段(补码表示),假设取指令时,每取一个字节PC自动加1,假设执行到该转移指令时PC的内容为2003H,要求转移到200AH,则该转移指令第二字节的内容应该为()A05H
B08HCF8HDF5H618假设某条指令的一个操作数采用一次间接寻址方式,指令中给出的地址码为1200H,地址为1200H的内存单元中的内容为12FCH,地址为12FC的内存单元的内容为38B8H,而38B8H单元的内容为88F9H
,则该操作数的有效地址为()A1200HB12FCHC38B8HD88F9H629假设某条指令的一个操作数采用两次间接寻址方式,指令中给出的地址码为1200H,地址为1200H的内存单元中的内容为12FCH,地址为12FC的内存单
元的内容为38B8H,而38B8H单元的内容为88F9H,则该操作数的有效地址为()A1200HB12FCHC38B8HD88F9H6310假设某条指令的一个操作数采用寄存器间接寻址方式,指令中给出的寄存器编号为8,8号寄存器的内容为
1200H,地址为1200H的内存单元中的内容为12FCH,地址为12FC的内存单元的内容为38B8H,而38B8H单元的内容为88F9H,则该操作数的有效地址为()A1200HB12FCHC38B8HD88F9H64教学机的汇编语言程序设计要设计汇
编程序必须首先知道有哪些汇编语句可用(指令),每个语句实现的功能和具体使用方法,可能用到的数据或主存地址的书写方式;最常用的程序流程控制,包括顺序执行,必转或者条件转移执行,循环执行,子程序调用与返回执行等,这些程序的流程结构对任何程序设计语言都是类似的。程
序设计的主导思想是如何用一种语言写出解决问题的过程和具体算法,切不可变成试用各种语句的一个操作过程。65TEC-2机的基本指令(实验手册新)数据移动指令MOVDR,SRMOVDR,DATAMOVDR,DATA[SR]MOVDR,[SR]MOVDR,[ADR]MOVDATA
[SR],DRMOV[DR],SRMOV[ADR],SR堆栈操作指令PSHFPUSHDRPOPFPOPDR输入输出指令IN、OUT算术逻辑运算指令NOTDRINCDRDECDRADDDR,SRANDDR,SRSUBD
R,SRADCDR,SRORDR,SRSBBDR,SRCMPDR,SRXORDR,SRTESTDR,SRASRDRSHLDRRCLDRSHRSRRCRDRMULSRDIVSR控制、转移指令JRADRJPSRJPADRJRCND,ADRJ
PCND,SRJPCND,ADRIRETEIDISTCCLSCALLSRCALLADRRET其它指令:NOPLDMCHALT66典型的汇编程序执行流程分支执行JRNZ,ADR指令指令i指令i+2指令i+3指令j指令i指令i+1指令i+2循环执行JRNZ,A
DR指令指令i+4指令i指令i+1指令i+2顺序执行(Z=1)(Z=1)67典型的汇编程序执行流程指令j指令j+1…子程序调用与返回执行指令i指令i+2指令i+3CALL指令RET指令iJP/JR指令指令i+2转移执行指令i+3指令j(i+1)68教学计算
机中的汇编程序的例子例1:设计一个程序,完成16进制的22+120的计算。A800↙;从内存RAM区的起始地址16进制的800开始800:MOVR0,0022;把被加数送入R0802:MOVR1,0120;把加数送入R1804:ADDR0,R1;执行加法运算并保存运算结果805:RET;每
个用户程序都必须用RET指令结束806:(按回车键即结束源程序的输入过程)说明:1、程序中给出的数是16进制的,使得实现汇编器程序可以更简单;2、要完成数据运算,被运算数据要送到寄存器中之后才能进行计算;3、
用户程序选用RET语句结束,与监控程序处理用户程序方法有关。3369教学机的汇编程序的例子例2:例:设计一个小程序,完成在屏幕上输出0~9十个数字符。源程序如下:A800↙MOVR2,0A;置计数器初值:输出字符个数MOVR0,30;‘0
’字符的ASCII码(804)CALL009B;调用009B子程序:显示输出一个字符,字符存放在R0中INCR0;R0=R0+1形成下一个字符DECR2;R2=R2-1JRNZ,804;若未输出完,继续输
出。RET;若输出完,返回70教学机汇编程序的例子例3:完成双字长整数(R8R9/R10R11)相加,其和存放在R8,R9中。MOVR8,1111;被加数(高位)MOVR9,2222;被加数(低位)MOVR10,333
3;加数(高位)MOVR11,4444:加数(低位)ADDR9,R11;低位和ADCR8,R10;高位和RET;返回71教学机汇编程序的例子例4:计算1到10的累加和。MOVR1,0;置累加器初值为0MOVR2,0A;最大加数MOVR3,0;加数初值ADR:INCR;加数
ADDR1,R3;累加CMPR3,R2;判断是否累加完JRNZ,ADR;未累加完,开始下一轮累加RET;若完成,返回功能:计算从1到10的累加和。运行过后,可以用R命令看R1中的累加结果。72教学机汇编程序的例子例5:从键盘上键入多个属于‘0’到‘9’的数字符并在屏幕上显示,遇
非数字符结束程序。A0840MOVR2,30;‘0’为下限值MOVR3,39;‘9’为上限值(0844)CALL005A;调005A子程序:输入一个字符CMPR0,R2;该字符与下限比较JPC,084F;若<‘0’,则停止输入返回CMPR3,R0;该字符与上限比较J
PC,084F;若>‘9’,则停止输入返回CALL009B;在‘0’~‘9’,调009B子程序:显示该字符JP0844;直接跳转(084F)RET73补:移位操作逻辑移位:数码位置变化1.移位类型算术移位:数码位置变化,数值变化,符
号位不变。1001111算术左移:1011110(-15)(-30)74(1)单符号位:0011101110(2)双符号位:0011100001112.正数补码移位规则(3)移位规则左移右移右移0011100011左移左移右移右移
011100001110000111数符不变(单:符号位不变;双:第一符号位不变)。空位补0(右移时第二符号位移至尾数最高位)。75(1)单符号位:1101110110(2)双符号位:1011001101103.负数补码移位规则(3)移位规则左移右移右移1101111101左移右移右移1101
10111011数符不变(单:符号位不变;双:第一符号位不变)。左移空位补0(第二符号位移至尾数最高位)。右移空位补1