指令系统和汇编

上传人:j****9 文档编号:54571523 上传时间:2018-09-15 格式:PPT 页数:35 大小:335.50KB
返回 下载 相关 举报
指令系统和汇编_第1页
第1页 / 共35页
指令系统和汇编_第2页
第2页 / 共35页
指令系统和汇编_第3页
第3页 / 共35页
指令系统和汇编_第4页
第4页 / 共35页
指令系统和汇编_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《指令系统和汇编》由会员分享,可在线阅读,更多相关《指令系统和汇编(35页珍藏版)》请在金锄头文库上搜索。

1、第5章,指令、指令系统和汇编 语言程序设计,本章主要内容,指令格式与寻址方式概述汇编语言程序设计,计算机系统由硬件和软件两部分组成。硬件指由中央处理机、存储器以及外部设备等组成的实际装置。软件是为便于用户使用计算机而编写的各种程序,是由一系列机器指令组成的。指令是用户使用计算机和计算机运行的最小的功能单位,一台计算机支持(或称使用)的全部指令构成该计算机的指令系统,它对计算机本身的硬件结构的复杂程度和运行性能,对用户完成程序设计的难易程度和工作效率,有非常重要的影响,必须对设计指令系统的工作给以足够的重视,慎重确定。,指令与指令系统概述,对指令系统的要求,完备性: 指令齐全,编程方便 高效性:

2、占内存少,运行省时 规整性:指令与运算规则统一 兼容性:新旧机指令软件兼容,当前的计算机指令系统,从其构成的复杂和完备程度,或者说设计中追求的不同的目标区分,可分为 CISC 和RISC 两类:RISC(Reduced Instruction Set Computer),通常称为精简指令系统的计算机,提供数目较少、格式与功能简单、运行高效的指令,追求的是计算机控制器实现简单,运行高速,更容易在单块超大规模集成电路的芯片内制做出来。CISC (Complex Instruction Set Computer),通常称为复杂指令系统的计算机,是相对于 RISC 一词而提出来的一种说法。其特点是:指

3、令条数多,格式多样,寻址方式复杂,每条指令的功能强,优点是汇编程序设计容易些,但计算机控制器的实现困难多,很多指令被使用的机会并不多。,指令格式与寻址方式,指令 : 功能 定义 用法,指令格式:,操作码 操作数地址,固定长度 可变长度 交叉安排,无地址 一地址 二地址 多地址,2. 寻址方式,外设寻址,入 / 出端口地址方式,统一映象方式,主存寻址,寄存器寻址,直接寻址,变址寻址,寄存器间址,间接寻址,相对寻址,基地址寻址,立即数寻址,堆栈寻址,1. 指令与指令格式,指令:功能、定义、用法,指令格式: 操作码 操作数地址,固定长度(IBM/ PC),扩展长度(PDP-11),交叉安排(NOVA

4、),无地址 一地址 二地址 多地址,三种方案,按操作数 个数划分,教学计算机的操作码:TEC-2000 16位机采用 8 位固定长度TEC-2000 8 位机采用 逐段扩展长度,指令格式,寻址方式(又称编址方式)指的是确定本条指令的数据地址及下一条要执行的指令地址的方法。不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度和运行性能各不相同。有的计算机寻址方式较少,而有些计算机采用多种寻址方式。通常需要在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。在指令中给出的操作数(或指令)的地址被称为形式地址,使用形式地址信息并按一定的规则计算出来的一个数值才是数据(

5、或指令)的实际地址。在指令的操作数地址字段,可能要指出: 运算器中的累加器的编号或专用寄存器名称(编号) 输入/输出指令中用到的 I/O 设备的入出端口地址 内存储器的一个存储单元(或一 I/O设备 )的地址有多种 基本寻址方式 和某些 符合寻址方式 ,简介如下:,寻址方式,计算机的CPU中一般设置有一定数量的通用寄存器,用于存放操作数、操作数地址或中间结果。假如指令地址码字段给出某一通用寄存器的编号(地址),且所需的操作数就在这一寄存器中,这就是寄存器寻址方式;若该寄存器中存放的是操作数在内存储器中所在单元的地址,这就是寄存器间接寻址方式。可通过指令的操作码或另设一个字段,来区分这两种不同的

6、寻址方式。,1、寄存器寻址、寄存器间接寻址,例:RegNo.=5, 使用 5# 累加器 ,此时 5# 累加器中的内容为 7, 可记为 (R5)=7,,对寄存器寻址方式,操作数就是这里的数值 7,对寄存器间接寻址,从内存 7# 单元读出来的数才是操作数,2、立即数寻址,所需的一个操作数在指令的地址字段部分直接给出。,则 Num 即为操作数的值。,适用于操作数固定的情况,提高了指令的执行速度,当该立即数的值限定为较小值(占用位数少)时,可在第一个指令字中直接给出,否则可在第二个指令字中给出。,在指令的地址码字段直接给出所需的操作数(或指令)在存储器中的地址。,则 Addr 为操作数在存储器中的地址

7、。或转移指令等用到的指令地址。,3、直接寻址,例:Addr = 5718H ,这里的 H 表示 5718 是 16 进制的值,可能用作下一条指令的地址;也可能用作操作数的地址,若 5718H = 3,即内存储器 5718 单元中的内容为 3, 则操作数就是这里的 3 。,内存储器,操作数,操作数的地址由指定的变址寄存器(由Reg指定)的内容和指令中的地址码(Disp)相加得到。,4、变址寻址,通用寄存器,加法器,操作数,存储器,例:Disp=18H,Reg=5,(R5)=5700H则操作数地址 = 5718H,便于对数组元素进行处理, 是计算机中常用的一种寻址方式。,操作数(或指令)的地址由程

8、序计数器 PC 的内容(即当前执行指令的地址)和指令的地址码相加得到。,5、相对寻址,例:Disp = 48H (PC) = 5600H则实际地址 = 5648H,1)主要用于转移指令,对浮动程序很有用。 2)位移量可正可负,通常用补码表示。,指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数(或指令)地址的地址,这被称为间接寻址方式,多一次读内存储器的操作。,6、间接寻址,存储器,操作数,Addr1,指令中的 Addr 可以用其他寻址方式给出,例如变址寻址,这就成为变址寻址与间接寻址的复合寻址方式。,在计算机中设置一个专用的基址寄存器,操作数(或指令)的地址通过基址寄存器

9、的内容和指令中的地址码相加得到。,7、基址寻址,基址寄存器,加法器,存储器,操作数,例:Disp= 18H,BS= 5700H则操作数地址=5718H,主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。,堆栈是内存储器中一块按 “后进先出” 原则进行读写的存储区,并通过一个专用的寄存器(称为堆栈指针SP)给出堆栈的栈顶(和次栈顶)地址完成数据的读写操作,故不必在指令中用操作数地址字段给堆栈地址。通常在读写操作的前后伴随有计算机自动(不是用户通过指令)修改 SP 内容的动作,以确保按正确的 “后进先出” 原则读写堆栈区。例如:(SP)-

10、1 SP和 AR,即SP的内容减 1 存回 SP,并送内存地址寄存器,接下来才可以把数据写到堆栈中。完成一次读堆栈操作后,要接着执行(SP)+ 1 SP 的一次自动修改 SP 内容的操作。,8、堆栈寻址,需要注意的是,指令长度可能是一个字,也可能是两个字或多个字,要看操作数地址字段的位数要求,由具体的情况决定。,单字指令仅用一个指令字。双字指令要用两个指令字, 此时第二个指令字的内容可能是立即数、一个直接地址或一个变址位移量。,TEC-2000 教学机的指令格式,操 作 码,目的寄存器,源寄存器,I/O 端 口 地 址,相对转移指令的偏移量,直接数 / 内存地址 / 指令中变址偏移量,8位 4

11、位 4位,第一个指令字分为三个主要部分。最高 8 位是操作码。从这个意义上讲, 教学机的基本指令是固定长度的操作码结构, 最多支持 256 条基本指令。最低的 8 位有多种用法:给出 1 或 2 个寄存器的编号,或入/出端口的地址,或用于给出相对转移指令的偏移量。,操 作 码,目的寄存器,源寄存器,I/O 端 口 地 址,相对转移指令的偏移量,直接数 / 内存地址 / 指令中变址偏移量,8位 4位 4位,TEC-2000 教学机的指令格式,TEC-2000 16位教学计算机指令举例,00 ADD DR, SR 44 JRC adr 84 PSHF 01 SUB DR, SR 45 JRNC a

12、dr 8C POPF 02 AND DR, SR 46 JRZ adr 8F RET 03 CMP DR, SR 47 JRNZ adr 04 XOR DR, SR 41 JR adr 05 TEST DR, SR 80 JMPA adr 06 OR DR, SR CE CALA adr 07 MVRR DR, SR 82 IN i/o port 08 DEC DR 86 OUT i/o port 09 INC DR 0A SHL DR 0B SHR DR 88 MVRD DR, data 85 PUSH DR 81 LORR DR, SR 87 POP DR 83 STRR DR, SR,教

13、学机基本指令,数据移动指令 MVRR、MVRD、LDRR、STRR、PUSH、POP、PSHF、POPF、IN、OUT 算术逻辑指令 ADD、SUB、AND、XOR、TEST、CMP、OR、DEC、INC、SHL、SHR 控制转移指令 CALA、RET、JMPA、JR、JRC、JRNC、JRZ、JRNZ,TEC-2000 16位机基本指令系统,指令格式 汇编语句 操作数个数 CZVS 指令分组 功能说明 00000000 DRSR ADD DR,SR 2 * A DRDR+SR 00000001 DRSR SUB DR,SR 2 * A DRDR-SR 00000010 DRSR AND DR

14、,SR 2 * A DRDR and SR 00000011 DRSR CMP DR,SR 2 * A DR-SR 00000100 DRSR XOR DR,SR 2 * * A DRDR xor SR 00000101 DRSR TEST DR,SR 2 * * A DR and SR 00000110 DRSR OR DR,SR 2 * * A DRDR or SR 00000111 DRSR MVRR DR, SR 2 A DRSR 00001000 DR0000 DEC DR 1 * A DRDR-1 00001001 DR0000 INC DR 1 * A DRDR+1 00001010 DR0000 SHL DR 1 * A DR,CDR*2 00001011 DR0000 SHR DR 1 * A DR,CDR /2 01000001 OFFSET JR ADR 1 A 无条件跳转 01000100 OFFSET JRC ADR 1 A C=1 时跳转 01000101 OFFSET JRNC ADR 1 A C=0 时跳转 01000110 OFFSET JRZ ADR 1 A Z=1 时跳转 01000111 OFFSET JRNZ ADR 1 A Z=0 时跳转,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号