第五章指令系统(指令格式设计)

计算机组成原理第五章指令系统5.4 指令格式设计

1指令格式设计的主要内容

■根据指令数量的要求及是否支持操作码扩展,确定操作码字段的位数操作码字段地址码字段

寻址方式■根据对操作数的要求确定地址码字段的个数

■根据寻址方式的要求,为每个地址码字段确定寻址方式字段位数

■确定采用定长指令还是变长指令

2指令格式设计举例

例1某机字长32位,采用三地址指令,支持8种寻址操作,完成60种操作,各寻址方式均可在2K 主存范围内取得操作数,并可在1K 范围内保存运算结果。问应采用什么样的指令格式?指令字长最少应为多少位?执行一条指令最多要访问多少次主存?OP X1

A1X2A2

X3A3

OP = 6位

解:根据题目条件,指令格式如下:

X1 = X2 = X3 =3 ,共9位

A1=A2=11, A3=10位,共32位

47位

指令占两个存储字,取指访存2次,取2个源操作数访存2次,写结果访存1次,共5次

2指令格式设计举例

例2 字长16位,主存64K,指令单字长单地址,80条指令。寻址方式有直接、间接、相对、变址。请设计指令格式

解:80条指令?OP字段需要7位( 27=128 )

4种寻址方式?寻址方式特征位2位

单地址位长度:16-7-2 =7位

指令格式:OP X

A

727

2指令格式设计举例

例2 字长16位,主存64K ,指令单字长单地址,80条指令。寻址方式有直接、间接、相对、变址。请设计指令格式OP

X A 727

设PC 寄存器16位

变址寄存器16位?相对寻址

E=(PC )+A , 寻址范围为?变址寻址

E=(R )+A ,寻址范围为:64K ?直接寻址

E = A ,寻址范围为?间接寻址 E = (A ),寻址范围为:64K :128:64K

设计评价:?访问主存的方式太多?缺立即数寻址

2指令格式设计应用举例

例3 设某指令系统指令字长16位,每个地址码为6位。若要求设计二地址指令15条、一地址指令34条,问最多还可设计多少条零地址指令?

OP(4)A1(6)A2(6)

解: 操作码按从短码到长码进行扩展编码

假定二地址指令编码: (0000 –1110) 共15条,1111作为扩展标识;

则一地址指令编码的全集可表示为: 1111000000 –111111(假定扩向A1);

因一地址指令只需34条,可将全集中多余的30种编码作为向零地址指

令扩展的标识,假定为: 100010 –111111

故最多可支持的故零地址指令数为:30 26条

tec200016位机微程序控制器指令系统的设计与实现

一、设计题目 16位机微程序控制器指令系统的设计与实现 二、设计目的 通过看懂教学计算机组合逻辑控制器中已经设计好并正常运行的几条基本指令(例如ADD、MVRR、OUT、MVRD、JR、RET等指令)的功能、格式和执行流程,然后自己设计微程序控制器中的29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,达到以下目的: 1、深入理解计算机控制器的功能、组成知识和各类典型指令的执行过程; 2、对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念; 3、学习微程序控制器的设计过程和相关技术。 三、设计说明 控制器设计是学习计算机总体组成和设计的重要的部分。要在TEC—2000教学计算机上完成这项设计,必须清楚懂得: 1、TEC—2000教学机的微程序控制器主要由作为选件的微程序控制器小板和教学机大板上的7片GAL20V8组成。 2、TEC—2000教学机微程序控制器上要实现的全部基本指令和扩展指令的控制信号都是由微程序小板上的7片控制存储器给出的。 3、应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行扩展指令。 4、要明白TEC—2000教学机支持的指令格式及指令执行流程分组情况;理解TEC—2000教学机中已经设计好并正常运行的各类指令的功能、格式、执行流程和控制信号的组成。 5、明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。 6、为了完成扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的实验内容,具体过程包括: 1)确定指令格式和功能,要受教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致; 2)划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照已实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能的与原用节拍的状态保持一致和相近; 3)在指令微程序表中填写每一个控制信号的状态值,注意要特别仔细,并有意识地体会这些信号的控制作用; 4)将设计好的微码,装入控制存储器的相应单元; 5)写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,来初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,继续调试,直到完全正确。 四、设计内容 1、完成微程序控制器指令系统设计,主要内容是由学生自己设计29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、运行、调试正确。 2、首先看懂TEC—2000教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机组合逻辑控制器中已经设计好并正常运行的几条典型指令(例如ADD、MVRR、OUT、MVRD、JRC、RET等指令)的功能、格式和执行流程。 3、设计微程序控制器指令系统中各条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,例如ADC、STC、JRS、JRNS、LDRX、STRX、JMPR、CALR、LDRA等19条扩展指令。 4、单条运行指令,查看指令的功能、格式和执行流程。

第2章 指令系统及汇编语言程序设计 题库和答案

第2章指令系统及汇编语言程序设计 ________________________________________ 一.选择题 1.指令ADD CX,55H的源操作数的寻址方式是( )。 (A) 寄存器寻址(B) 直接寻址(C) 寄存器间接寻址(D) 寄存器相对寻址 2.设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=( ) 。 (A) 113AH (B) 114AH (C) 1144H (D) 1140H 3.若SI=0053H,BP=0054H,执行SUB SI,BP后,则( )。 (A) CF=0,OF=0 (B) CF=0,OF=1 (C) CF=1,OF=0 (D) CF=1,OF=1 4.已知(BP)=0100H,(DS)=7000H,(SS)=8000H,(80100H)=24H,(80101H)=5AH,(70100H)=01H,(70101H)=02H,指令MOV BX,执行后,(BX)=( ) 。 (A) 0102H (B) 0201H (C) 245AH (D) 5A24H 5.实模式下80486CPU对指令的寻址由( )决定。 (A) CS,IP (B) DS,IP (C) SS,IP (D) ES,IP 6.使用80486汇编语言的伪操作指令定义: V AL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0)) 则在V AL存储区内前十个字节单元的数据是( )。 (A) 1,2,3,3,2,1,0,1,2,3 (B) 1,2,3,3,3,3,2,1,0,1 (C) 2,1,2,3,3,2,1,0 (D) 1,2,3,3,3,1,0,1,0,1 7.下列四条指令都可用来使累加器清"0",但其中不能清"进位"位的是( ) 。 (A) XOR AL,AL (B) AND AL,0 (C) MOV AL,0 (D) SUB AL,AL 8.若(AX)=96H,(BX)=65H,依次执行ADD AX,BX指令和DAA指令后,(AL)=( )。(A) 0FBH (B) 01H (C) 61H (D) 0BH 9.下列能使CF标志置1的指令是( ) 。 (A) CMC (B) CLC (C) STC (D) CLD 10.MOV AX,[BP+SI]隐含使用的段寄存器是( )。 (A) CS (B) DS (C) ES (D) SS 11.设AL=7FH,要使AL=80H,应使用下列哪一条指令( )。 (A) AND AL,80H (B) OR AL,80H (C) XOR AL,80H (D) NOT AL 12.在执行十进制调整指令DAA,DAS之前必须将结果存放于( )中。 (A) AX (B) AH (C) AL (D) BL 13.下列指令执行后影响标志位的是( ) 。 (A) MOV (B) PUSH (C) ADD (D) XCHG 14.唯一能对应存储单元的地址是( )。 (A) 物理地址(B) 端口地址(C) 有效地址(D) 逻辑地址 15.计算机能直接执行的语言是( )。 (A) 机器语言(B) 汇编语言(C) 高级语言(D) 程序设计语言 16.需采用先进后出原则操作的存储区是( )。 (A) 寄存器组(B) 地址缓冲器(C) 数据寄存器(D) 堆栈区 17.寄存器SP用于对( )的操作。 (A) 空闲单元(B) 堆栈单元(C) 数据单元(D) 指令单元 18.若(BX)=1000H,(DS)=2000H,(21000H)=12H,(21001H)=34H,执行LEA SI,指令后,SI寄存器的内容是( )。 (A) 1234H (B) 3412H (C) 1000H (D)0010H 19.若(AL)=80H,执行NEG AL指令后,CF和OF标志位的状态分别为( )。

指令系统的习题

第2章指令系统及汇编语言程序设计 一.选择题 1.指令ADD CX,55H[BP]的源操作数的寻址方式是( )。 (A) 寄存器寻址(B) 直接寻址(C) 寄存器间接寻址(D) 寄存器相对寻址 2.设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=( ) 。 (A) 113AH (B) 114AH (C) 1144H (D) 1140H 3.若SI=0053H,BP=0054H,执行SUB SI,BP后,则( )。 (A) CF=0,OF=0 (B) CF=0,OF=1 (C) CF=1,OF=0 (D) CF=1,OF=1 4.已知(BP)=0100H,(DS)=7000H,(SS)=8000H,(80100H)=24H,(80101H)=5AH,(70100H)=01H,(70101H)=02H,指令MOV BX,[BP]执行后,(BX)=( ) 。 (A) 0102H (B) 0201H (C) 245AH (D) 5A24H 5.实模式下80486CPU对指令的寻址由( )决定。 (A) CS,IP (B) DS,IP (C) SS,IP (D) ES,IP 6.使用80486汇编语言的伪操作指令定义: V AL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0)) 则在V AL存储区内前十个字节单元的数据是( )。 (A) 1,2,3,3,2,1,0,1,2,3 (B) 1,2,3,3,3,3,2,1,0,1 (C) 2,1,2,3,3,2,1,0 (D) 1,2,3,3,3,1,0,1,0,1 7.下列四条指令都可用来使累加器清"0",但其中不能清"进位"位的是( ) 。 (A) XOR AL,AL (B) AND AL,0 (C) MOV AL,0 (D) SUB AL,AL 8.若(AX)=96H,(BX)=65H,依次执行ADD AX,BX指令和DAA指令后,(AL)=( )。(A) 0FBH (B) 01H (C) 61H (D) 0BH 9.下列能使CF标志置1的指令是( ) 。 (A) CMC (B) CLC (C) STC (D) CLD 10.MOV AX,[BP+SI]隐含使用的段寄存器是( )。 (A) CS (B) DS (C) ES (D) SS 11.设AL=7FH,要使AL=80H,应使用下列哪一条指令( )。 (A) AND AL,80H (B) OR AL,80H (C) XOR AL,80H (D) NOT AL 12.在执行十进制调整指令DAA,DAS之前必须将结果存放于( )中。 (A) AX (B) AH (C) AL (D) BL 13.下列指令执行后影响标志位的是( ) 。 (A) MOV (B) PUSH (C) ADD (D) XCHG 14.唯一能对应存储单元的地址是( )。 (A) 物理地址(B) 端口地址(C) 有效地址(D) 逻辑地址 15.计算机能直接执行的语言是( )。 (A) 机器语言(B) 汇编语言(C) 高级语言(D) 程序设计语言 16.需采用先进后出原则操作的存储区是( )。 (A) 寄存器组(B) 地址缓冲器(C) 数据寄存器(D) 堆栈区 17.寄存器SP用于对( )的操作。 (A) 空闲单元(B) 堆栈单元(C) 数据单元(D) 指令单元 18.若(BX)=1000H,(DS)=2000H,(21000H)=12H,(21001H)=34H,执行LEA SI,[BX]指令后,SI寄存器的内容是( )。

计算机组成原理指令系统设计

课程设计说明书 题目: 指令系统设计 院系:计算机科学与工程学院 专业班级: 学号: 学生姓名: 指导教师: 2013年 11 月 25 日

安徽理工大学课程设计(论文)任务书 2013年11月25日

安徽理工大学课程设计(论文)成绩评定表

摘要 在飞速发展的科技社会中,计算机被应用到各行各业,各个领域中。人们渐渐地步入自动化、智能化的生活阶段。本次计算机组成原理课程设计课题是基本模型机的设计与实现。利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,设计基本模型机的指令系统(包括逻辑与,逻辑或,算术加,减运算,输入,输出,转移,传送指令),形成具有一定功能的完整的应用程序。 简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。 这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对有关知识的深入学习打下基础。关键词:指令系统,微指令,机器指令,异或

目录 1.系统分析 (1) 1.1 设计准备 (1) 1.2 设计目标 (3) 2.系统设计 (4) 2.1 指令、微指令系统设计 (4) 2.2 模型机的微指令设计 (5) 2.3 异或程序设计 (6) 3.系统实现 (7) 3.1 程序编写与分析 (7) 3.3 调试结果 (8) 4.总结 (10) 4.1 设计体会 (10) 4.2设计改进 (10) 参考文献 (11)

计算机组成原理 《8位指令系统结构(ISA)的设计和实现》

1 关于此次课程设计 1.1 课程设计目的 本课程设计是计算机科学与技术专业重要的实践性教学环节之一,是在学生学习完《计算机组成原理》课程后进行的一次全面的综合设计。目的是通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。 1.2课程设计内容及要求 基于TDN-CM++计算机组成原理实验教学系统,设计和实现一个8位指令系统结构(ISA),通过调试和运行,使设计的计算机系统能够完成指定的功能。 设计过程中要求考虑到以下各方面的问题: (1)指令系统风格(寄存器-寄存器,寄存器-存储器,存储器-存储器); (2)数据类型(无符号数,有符号数,整型,浮点型); (3)存储器划分(指令,数据); (4)寻址方式(立即数寻址,寄存器寻址,直接寻址等); (5)指令格式(单字节,双字节,多字节); (6)指令功能类别(算术/逻辑运算,存储器访问,寄存器操作,程序流控制,输入/输出)。 要求学生综合运用计算机组成原理、数字逻辑和汇编语言等相关课程的知识,理解和熟悉计算机系统的组成原理,掌握计算机主要功能部件的工作原理和设计方法,掌握指令系统结构设计的一般方法,掌握并运用微程序设计(Microprogramming)思想,在设计过程中能够发现、分析和解决各种问题,自行设计自己的指令系统结构(ISA)。

2 分析阶段 2.1 微指令格式分析 微指令格式如下表: 表2-1 微代码定义 (1)字段24~19控制运算器的控制端,通过改变S3~CN来决定对数据进行何种算术或逻辑运算。本设计中全部为正逻辑运算。 (2)字段18为控制对主存W/R的开关 Y1、Y2进行选择。 (4)字段15~7为A、B、C三个开关控制端。

指令系统及汇编语言程序设计

第3章指令系统及汇编语言程序设计 一、简答题 1、80C51系列单片机的指令系统有何特点? 2、80C51单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何? 3、访问特殊功能寄存器SFR可以采用哪些寻址方式? 4、访问内部RAM单元可以采用哪些寻址方式? 5、访问外部RAM单元可以采用哪些寻址方式? 6、访问外部程序存储器可以采用哪些寻址方式? 7、为什么说布尔处理功能是80C51单片机的重要特点? 8、对于80C52单片机内部RAM还存在高128字节,应采用何种方式访问? 9、试根据指令编码表写出下列指令的机器码。 (1)MOV A,#88H (2)MOV R3,50H (3)MOV P1.1,#55H (4)ADD A,@R1 (5)SETB 12H 10、完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指 令序列。 (1)将R0的内容传送到R1; (2)内部RAM单元60H的内容传送到寄存器R2; (3)外部RAM单元1000H的内容传送到内部RAM单元60H; (4)外部RAM单元1000H的内容传送到寄存器R2; (5)外部RAM单元1000H的内容传送到外部RAM单元2000H。 11、11、若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。试分析执行下列程序段 后上述各单元内容的变化。 MOV A,@R1 MOV @R1,40H MOV 40H,A MOV R1,#7FH 12、若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20)=0FH, 试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指 出CY、AC、和OV的值。 (1)MOV A,@R0 (2)ANL 40H,#0FH (3)ADD A,R4 (4)SWAP A (5)DEC @R1 (6)XCHD A,@R1 13、若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、 42H单元中的内容各为多少? MOV A,50H MOV R0,A MOV A,#00H MOV @R0,A MOV A,3BH MOV 41H,A MOV 42H,41H 14、试用位操作指令实现下列逻辑操作。要求不得改变未涉及的位的内容。

指令系统

8086指令系统综述 1.背景 计算机的程序是由一系列机器指令组成的。指令就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令是微程序级的命令,它属于硬件;宏指令是由若干条机器指令组成的软件指令,它属于软件;而机器指令则介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。 本文所讨论的指令,是机器指令。一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令是构成程序的最基本单位,是指挥处理器完成某项具体任务操作的一个或多个字节信息。因而计算机指令集的选择是计算机体系结构设计的核心问题,是软硬件功能分配最主要的交界面,它历来是体系结构设计者、系统软件设计者和硬件设计者所共同关注的问题,现在计算机系统理论认为指令集是影响到指令流水效率的根本原因,诸如变长指令,复杂寻址等都使得流水困难。因此采用什么指令集将极大地决定如何设计处理器的内部结构以及译码机制。 2.指令系统的发展过程 回顾计算机的发展历史,指令系统的发展经历了从简单到复杂的演变过程。 早在20世纪50-60年代,计算机大多数采用分立元件的晶体管或电子管组成,其体积庞大,价格也很昂贵,因此计算机的硬件结构比较简单,所支持的指令系统也只有十几至几十条最基本的指令,而且寻址方式简单。 到60年代中期,随着集成电路的出现,计算机的功耗、体积、价格等不断下降,硬件功能不断增强,指令系统也越来越丰富。 60年代后期出现了系列计算机。所谓系列计算机,是指基本指令系统相同、基本体系结构相同的一系列计算机。如Pentium系列。系列机解决了各机种的软件兼容问题,其必要条件是同一系列的各机种有共同的指令集,而且新推出的机种指令系统一定包含所有旧机种的全部指令。 在70年代,高级语言己成为大、中、小型机的主要程序设计语言,计算机应用日益普及。由于软件的发展超过了软件设计理论的发展,复杂的软件系统设计一直没有很好的理论指导,导致软件质量无法保证,从而出现了所谓的“软件危机”。人们认为,缩小机器指令系统与高级语言语义差距,为高级语言提供很多的支持,是缓解软件危机有效和可行的办法。计算机设计者们利用当时已经成熟的微程序技术和飞速发展的VLSI技术,增设各种各样的复杂的、面向高级语言的指令,使指令系统越来越庞大。这是几十年来人们在设计计算机时,保证和

指令系统及汇编语言程序设计

指令系统及汇编语言程序设计 2.4 伪指令 伪指令本身不会产生可执行的机器指令代码,它仅仅是告诉汇编程序有关源程序的某些信息,或者用来说明内存单元的用途。伪指令在汇编过程中由汇编程序进行处理。 2.4.1 数据定义伪指令 数据定义伪指令用于定义变量的类型、给存储器赋初值或给变量分配存储单元。常用的数据定义伪指令有DB、DW和DD等。 格式: [变量名] 伪指令助记符数据表项 功能:定义一个数据存储区,其类型由所定义的数据定义指令而指定。 操作说明:方括号中的变量名为任选项,变量名后面不跟冒号“:”。数据表项可以包含多个数据之间用逗号分隔开。数据定义伪指令助记符有以下三种: (1) DB定义变量类型为字节(BYTE),DB后面的每个数据占一个字节。 (2) DW 定义变量类型为字(WORD),DW后面的每个数据占一个字,即两个字节。在内存中,低字节在前,高字节在后。 (3) DD 定义变量类型为双字(DWORD),后面的每个数据占两个字。在内存中,低位字在前,高位字在后。 例如,有下列数据定义语句 D1 DB 1,-12 D2 DW 1,2010H D3 DD 1,10203040H 数据表项中除了常数、表达式和字符串外,还可以是问号“?”,它仅给变量保留相应的存储单元,而不给变量赋初值。相同的操作数重复出现时,可用重复符号“DUP”表示。 其格式为: n DUP(初值[,初值,……]);n表示重复的次数,圆括号中为重复的内容。 下面是用问号或DUP表示操作数的例子: ARRAY DB 1000 DUP(0) VAR DW ?,? 2.4.2 符号定义伪指令 1. 赋值伪指令 格式:变量名 EOU 表达式 功能:将右边表达式的值赋给左边的变量。 操作说明:表达式可以是一个常数、符号、数值表达式或地址表达式。 需要注意的是:EQU伪指令不允许对同一符号重复定义。 EQU伪指令具体应用举例如下: CR EQU ODH ;定义CR为常数(回车的ASCII代码) TAB EQU TABLE-ASCII ;定义变量 DIS EQU 1024*768 ;定义数值表达式 ADR EQU ES:[DI+3] ;定义地址表达式 M EQU MOV ;定义助记符 2.等号(=)伪指令 格式:变量名=表达式 功能:将右边表达式的值赋给左边的变量。 操作说明:等号(=)伪指令的功能与EQU伪指令相仿,它可以对同一个名字重复定义。

指令格式的优化设计

指令格式的优化设计 指令格式的优化设计的目的是用最短的二进制位数表示指令的操作信息和地址信息,使指令的平均字长最短。指令格式的优化设计,首先根据指令集各指令的使用频度}对操作码进行优化设计,然后对地址码和寻址方式的表示采取优化措施,使的分布{P i 指令格式达到优化。经过优化设计的指令集减少了程序的总位数,减少了程序运行的时空开销,从而提高了系统的性能。 我们首先讨论操作码的优化编码方法,然后讨论寻址技术,最后,在操作码和地址码优化表示的基础上,说明指令格式的优化设计。 一、操作码的优化设计 1、操作码优化编码的方法 操作码优化编码的方法有三种:定长编码、哈夫曼编码和扩展编码。 定长编码:是指所有指令的操作码长度都是相等的。如果有n个需要编码的操作码, n位。 定长操作码的位数最少需要log 2 哈夫曼编码:用哈夫曼方法构造哈夫曼树进行编码。构造哈夫曼树的方法是:每次从指令集中选出两个使用频度最小的指令,将其频度相加,形成一个节点,称为父节点,将新生成的父节点放到结点集中,从新的节点集中再选两个使用频度最少的节点生成一个新的父节点,直至节点集成为空集,就生成了一棵哈夫曼树。每个节点的两个分支节点,称为节点,用0和1标识,上面的节点称根节点,下面的节点称为叶节点。从最上面的根节点到一个叶节点的路径(由0和1组成的序列)就是这个叶节点的哈夫曼编码。 由于哈夫曼编码的码长种类较多。既不利于硬件对操作码的译码,也很难与地址码配合形成长度规整的指令格式。因此,实用的操作码编码一般不采用哈夫曼编码而采用扩展编码的方法。 扩展编码:限定使用少数几种长度码长,使用频度高的码点用短码表示,使用频度低的码点用长码表示。特别需要指出的是,不是所有的短码都可以作为长码的前缀,即不是任何短码都可以是任何长码的若干位。否则,编码将会不唯一。所以,要留下若干个短码作为长码的扩展标志,以便长码在扩展编码时使用。这是扩展编码“扩展”一词的含义。

指令系统的功能设计

2.4 指令系统的功能设计 完整性、规整性、高效率和兼容性等 2.4.1 基本指令系统 通用计算机系统的5类基本指令 1、数据传送类指令, ?由如下三个主要因素决定: (1) 数据存储设备的种类 (2) 数据单位:字、字节、位、数据块等 (3) 采用的寻址方式 ?指令种类(以字为传送单位,不考虑寻址方式等): 通用寄存器→通用寄存器 通用寄存器→主存储器 通用寄存器→堆栈 主存储器→通用寄存器 主存储器→主存储器 主存储器→堆栈 堆栈→通用寄存器 堆栈→主存储器 2、运算类指令 ?考虑四个因数的组合: (1) 操作种类:加、减、乘、除、与、或、非、异或、比较、移位、检索、转换、匹配、清除、置位等 (2) 数据表示:定点、浮点、逻辑、十进制、字符串、定点向量等 (3) 数据长度:字、双字、半字、字节、位、数据块等 (4) 数据存储设备:通用寄存器、主存储器、堆栈等 ?以加法指令为例,一般应设置如下几种: 寄存器-寄存器型的定点单字长加法指令 寄存器-寄存器型的定点双字长加法指令 寄存器-寄存器型的定点半字加法指令 寄存器-寄存器型的字节加法指令 寄存器-寄存器型的浮点单字长加法指令 寄存器-寄存器型的浮点双字长加法指令 寄存器-寄存器型的单字长逻辑加法指令, 寄存器-寄存器型的定点向量加法指令 寄存器-寄存器型的浮点向量加法指令 ?对于移位指令,要组合以下三个因素: (1) 移位方向:左移(L)、右移(R) (2) 移位种类:算术移位(A)、逻辑移位(L)、循环移位(R) (3) 移位长度:单字长(S)、双字长(D)

组合起来:3×2×2=12种,因逻辑左移与算术左移相同,移位指令应该有10种,分别是: SLAS 单字长算术左移 SRAS 单字长算术右移 SLLS(SRLS) 单字长逻辑左移,或单字长算术左移 SLRS 单字长循环左移 SRRS 单字长循环右移 SLAD 双字长算术左移 SRAD 双字长算术右移 SLLD(SRLD) 双字长逻辑左移,或双字长算术左移 SLRD 双字长循环左移 SRRD 双字长循环右移 ?位操作指令:置位、清位、位测试、找位等 ?字符串指令:比较、查找、匹配、转换等 3、程序控制指令 ?主要包括三类:转移指令、调用和返回指令、循环控制指令 转移条件主要有:零(Z)、正负(N)、进位?、溢出(V)及它们的组合?主要条件转移指令有: BEQ 等于零转移 BNEQ 不等于零转移 BLS 小于转移 BGT 大于转移 BLEQ 小于等于转移,或不大于转移 BGEQ 大于等于转移,或不小于转移 BLSU 不带符号小于转移 BGTU 不带符号大于转移 BLEQU 不带符号小于等于转移,或不带符号不大于转移 BGEQU 不带符号大于等于转移,或不带符号不小于转移 BCC 没有进位转移 BCS 有进位转移 BVC 没有溢出转移 BVS 有溢出转移 ?程序调用和返回指令: CALL 转入子程序 RETURN 从子程序返回 本身可以带有条件, 中断控制指令:开中断、关中断、改变屏蔽、中断返回、自陷等4、输入输出指令 ?主要有:启动、停止、测试、控制设备,数据输入、输出操作等采用单一的直接寻址方式, ?在多用户或多任务环境下,输入输出指令属于特权指令 ?也可以不设置输入输出指令 输入输出设备与主存储器共用同一个零地址空间

第3章 指令系统与程序设计

第3章指令系统与程序设计 7.完成某种操作可以采用几条指令构成的指令程序实现,试写出完成以下每种操作的指令程序。 (1)将R6的内容传送到R7; (2)内部RAM单元50H的内容传送到寄存器R6; (3)外部RAM单元2000H的内容传送到内部RAM单元70H; (4)外部RAM单元2000H的内容传送到寄存器R6; (5)外部RAM单元2000H的内容传送到外部RAM单元3000H。 8.若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。试分析执行下列程序段后上述各单元内容的变化。 MOV A,@R1 ;(A)=60H MOV @R1,40H ; (30H)=08H MOV 40H,A ; (40H)=60H MOV R1,#7FH ; (R1)=7FH 9.若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20H)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出CY、AC、和OV的值。 (1)MOV A,@R0 ; (A)=2CH (2)ANL 40H,#0FH ; (40H)=0CH (3)ADD A,R4 ; (A)=22H (CY)=1 (4)SWAP A ; (A)=8EH (5)DEC @R1 ; (20H)=0EH (6)XCHD A,@R1 ; (A)=EFH (20H)=08H 10.若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、42H单元中的内容各为多少? MOV A,50H ;(A)=40H MOV R0,A ;(R0)=40H MOV A,#00H ;(A)=0 MOV @R0,A ;(40H)=0 MOV A,#3BH ;(A)=3BH MOV 41H,A ;(41H)=3BH MOV 42H,41H ;(42H)=3BH 11.试用位操作和逻辑指令实现下列逻辑操作。要求不得改变未涉及的位的内容。 (1)使ACC.0置位;CLR ACC.0 (2)清除累加器高4位; ANL A, #0FH (3)清除ACC.3,ACC.4,ACC.5,ACC.6。 ANL A, #10000111B 12.试编写程序,将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH和2DH单元。 MOV R0, #20H MOV R1, #2FH MOV R7, #3 LOOP:MOV A, @R0 MOV @R1, A INC R0 DEC R1 DJNZ R7, LOOP SJMP $

指令系统设计

指令系统设计 2011-5-29 一.操作数类型: (1)地址:无符号整数 (2)数值数据: (3)位,位串,字符,和字符串 (4)布尔值 二.寻址方式:指令给出操作数或者操作数地址的方式 地址字段长度直接影响指令长度。使用尽量短的地址码访问尽可能大的寻址空间。 常用寻址方式: (1)立即寻址 指令中直接给出操作数 (2)直接寻址 (3)间接寻址 (6)变址寻址(数组) 给出基准地址,变址寄存器I给出偏移量,则有效地址EA=(I)+A;变址寄存器自动进行变址。 (7)相对寻址 有效地址位于该指令所在位置的前后某个固定的位置上。指令中的地址码给出偏移地址,基准地址隐含由PC给出。EA=(PC)+A;

(8)基址寻址 指令中的地址码A给出偏移量,基址可以由基址寄存器B给出。EA=(B)+A 注:基址寻址与变址寻址的区别: 变址寻址基址不变,偏移量由寄存器给出,寄存器里变得是偏移量;而基址寻址偏移量不变,基址由寄存器给出,寄存器里变的是基址。 三.操作码编码 1.定长操作码 译码方便,指令执行速度快,但有信息冗余。 2.扩展操作码编码 将操作码的编码长度分成几种固定长度的格式。 基本思想:操作码按短到长进行扩展编码。二地址指令操作码最短,零地址指令操作码最长,所以,按照二地址---一地址---零地址的顺序进行。 疑惑:这里怎么说? 四.MIPS指令格式和寻址方式 特点:采用32位定长指令字,操作码字段也是固定长度,没有专门的寻址方式字段,由指令格式确定各操作数的寻址方式。 操作码OP为“000000”,操作类型由func字段给出,若是双目运算类指令:rd=rs func rt;移位指令,根据shamt字段给出的移位数,将rt的内容进行移位,结果送至rd。 1.双目运算:rt=[rs]+立即数; 2.Load指令:rt=[[rs]+立即数] 3.Store指令:和上面的过程反过来 四.CISC和RISC指令系统之间的区别: 1.CISC(复杂指令系统计算机):变长指令集,扩展操作码编码,指令格式多,指令条数多,寻址方式多而复杂,因而指令的译码实现复杂,大多由微程序控制器实现。 2.RISC(精简指令系统计算机):定长指令字,定长操作码,指令格式少,指令系统中含有一些常用指令,指令条数少,寻址方式少而简单,指令译码实现简单,可用硬连线路控制器实现。RISC处理器中设置大量的通用寄存器,可以大大减少存储器的访问次数。采用装入/存储型指令设计风格,因而大部分指令的执行步骤一致,规整,指令的执行适合于采用流水线方式执行。

8位指令系统结构设计

目录 1 可行性分析 (1) 1.1实验系统的组成 (1) 1.2 微指令格式分析 (1) 1.3 指令译码电路分析 (2) 1.4 寄存器组分析 (4) 1.5 时钟信号分析 (5) 2 概要设计 (6) 2.1 指令系统风格 (6) 2.2 数据类型 (6) 2.3 存储器的划分 (7) 2.4 寻址方式 (7) 2.5 指令格式 (7) 2.6 指令功能类型 (7) 2.7 微指令流程框架 (8) 3 详细设计 (9) 3.1 指令系统与指令的分类 (9) 3.2控制台设计 (13) 3.3微程序设计 (14) 3.4微程序流程 (23) 3.5 二进制代码表 (23) 4 实现测试 (25) 4.1接线图 (25) 4.2加法测试程序 (27) 5 心得体会 (31) 6 参考文献 (32)

1 可行性分析 1.1实验系统的组成 本设计采用的实验系统为一个最基本的八位模型计算机,其完整数据通路如图2.1所示,ALU 算术逻辑部件,R0,R1,R2为通用寄存器,AR 为地址寄存器,PC 为程序计数器,IR 为指令寄存器,MEM 为存储器,INPUT 为输入设备,OUTPUT 为输出设备,时序为时序发生器,微控器为微程序控制器。我们将算术逻辑运算器、微程序控制器、寄存器、内部总线等部件连接起来构成一个CPU ,然后加上存储器、输入设备、输出设备即可构成一个完整的模型计算机。 时序MEM(6116) OUTPUT INPUT ALU(74181) W/R LED -B CE W/R SW -B BUS 地址总线 数据总线W/R ALU -B LOAD PC -B 299-B T4 74299 DR2(74273) DR1(74273)AR(74273) PC(74161)微控器IR(74273) R2(74374) R1(74374)R0(74374)R2-B R1-B R0-B S3S2 S1S0 M CN LDDR1 T4 LDDR2 T4 LDPC T4 LDAR T3 Y0 Y1 Y2 LDIR T3 LDR2T4 LDR1T4 LDR0T4 图1.1 八位模型机的完整数据通路图 1.2 微指令格式分析 表1-1 微指令格式 24 23 22 21 20 19 18 17 16 151413 121110 987 6 5 4 3 2 1 S3 S2 S1 S0 M Cn WE A9 A8 A B C μA5 μA4 μA3 μA2 μA1 μA0 微代码定义:微指令字长共24位,其中字段24~19控制运算器的控制端,通过改变S3~CN 来决定对数据进行何种算术或逻辑运算;15~7为A 、B 、C 三个开关控制端;

第三章指令系统及汇编语言程序设计

第三章指令系统及汇编语言程序设计 3-1选择题 1、MOVX A,@DPTR指令中源操作数的寻址方式是( B ) (A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址 2、ORG 0003H LJMP 2000H ORG 000BH LJMP 3000H 当CPU响应外部中断0后,PC的值是( B ) (A)0003H (B)2000H (C)000BH (D)3000H 3、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=( D ) (A)2000H (B)2001H (C)2002H (D)2003H 4、51执行完MOV A,#08H后,PSW的一位被置位( D ) (A)C (B)F0 (C)OV (D)P 5、下面条指令将MCS-51的工作寄存器置成3区( B ) (A)MOV PSW,#13H (B)MOV PSW,#18H (C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.4 6、执行MOVX A,DPTR指令时,MCS-51产生的控制信号是( C ) (A)/PSEN (B)ALE (C)/RD (D)/WR 7、MOV C,#00H的寻址方式是( A ) (A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址 8、ORG 0000H AJMP 0040H ORG 0040H MOV SP,#00H 当执行完左边的程序后,PC的值是( C ) (A)0040H (B)0041H (C)0042H (D)0043H 9、对程序存储器的读操作,只能使用( D ) (A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令 10、MCS-51单片机可分为两个优先级别。各中断源的优先级别设定是利用寄存器( B ) (A)IE (B)IP (C)TCON (D)SCON 11、在寄存器间接寻址方式中,指定寄存器中存放的是( B ) (A)操作数(B)操作数地址(C)转移地址(D)地址偏移量 12、在MCS—51中,需双向传递信号的是( B ) (A)地址线(B)数据线(C)控制线(D)电源线 13、下列指令中于进位标志位CY无关的指令有( D ) (A)移位指令(B)位操作指令(C)十进制调整指令(D)条件转移指令 14、在程序储存器的读操作,只能使用( D ) (A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令 15、以下运算中对溢出标志OV没有影响或不受OV影响的运算是( A ) (A)逻辑运算(B)符号数加减法运算(C)乘法运算(D)除法运算 16、指令AJMP的跳转范围是(C) (A)256B (B)1KB (C)2KB (D)64KB

设计指令系统详解

课程设计说明书题目: 设计一指令系统 院系:计算机科学与工程学院 专业班级:计算机09-9班 学号: 2009********* 学生姓名: ********** 指导教师: ********* 2011年 06 月 30日

安徽理工大学课程设计(论文)任务书计算机科学与技术院系计算机硬件教研室 学号88888888 学生姓名88888888 专业(班级)计算机88班设计题目设计一指令系统 设 计 技 术 参 数 通过CPTH计算机组成原理教学实验系统设计指令/微指令系统。 设计要求1.在基本模型机的基础上改进并实现IN,LDA,OUT,JMP, ADD,SUB等6条指令的功能。 2.设计相应的微程序。 3. 在实验箱上实现指令系统。 工作量1.课程设计说明书2000字; 2.画出流程图,编写微指令代码和程序; 3.对各个指令代码进行分析,并运行测试。 工作计划 学习微程序控制器,了解实验箱中的各部分结构。分析题目,查阅资料,画出流程图,设计出微指令。按实验要求连线,编写程序在实验箱上运行。写出课程设计报告。 参考资料[1] 陈书开,王毅.计算机组成与系统结构.武汉:武汉大学出版社,2005 [2] 张功萱.计算机组成原理.北京:清华大学出版社,2005年09月 [3] 王诚.计算机组成原理实验指导书.北京:清华大学出版社,2002 [4] 杨小龙.计算机组成原理与系统结构实验教程.西安:西安电子科技大学出版社,2004 [5] 袁开榜.计算机组成原理.北京:高等教育出版社,1995 指导教师签字**** 教研室主任签字 2011 年 6 月 30日

安徽理工大学课程设计(论文)成绩评定表 指导教师评语: 成绩: 指导教师: 年月日

指令系统和汇编语言程序的设计实验

第二章指令系统和汇编语言程序设计实验 本章实验主要包括指令系统和汇编语言程序设计两部分。采用软件模拟调试的方法, 目的在于通过这些实验可以使学生巩固所学知识, 加深对 MCS-51单片机部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。 第一节指令系统实验 实验一熟悉键盘操作及数传指令编程设计 一、实验目的 1.熟悉软件模拟调试的环境及键盘操作。 2.掌握汇编语言程序设计的方法,加深对指令的理解。 3.学会软件模拟调试和察看修改观察项的方法。 二、实验容 印证数据传送指令的功能、寻址方式以及 PC 指针、 SP 指针、 DPTR 指针、Ri 指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。 三、实验步骤 1.进入调试软件环境,输入源程序; 2.汇编源程序; 3.用单步方式运行程序; 4.检查并记录各寄存器和存储单元容的变化。 四、程序清单

1. 部 RAM 数据传送 需要查看的数据有 30H,31H,A,R0等。 ORG 0000H MOV R0,#30H MOV 30H,#45H MOV 31H,#46H MOV R2,30H MOV 02H,31H MOV A,#87H MOV 0E0H,30H MOV 30H,A MOV 31H,R0 SJMP $ END 2. 外部数据传送 需要查看的数据有外部数据存储器单元 2000H ,外部程序存储器单元2001H 。 ORG 0000H MOV A,#89H MOV DPTR,#2000H

MOVX DPTR,A INC DPTR CLR A MOVC A,A+DPTR SJMP $ ORG 2000H DB 44H DB 78H DB 67H END 3. 堆栈操作 需要查看的数据有 50H 、 51H 、 A 及 SP 指针和堆栈区中数据随 PUSH 和POP 指令执行后的变化情况和数据的存放次序等。 1 可用于保护现场和恢复现场的程序 ORG 0000H MOV SP,#5FH MOV 50H,#3BH MOV 51H,#2FH MOV A,#12H

八位指令系统设计

计算机学院计算机科学与技术专业《计算机组成原理课程设计》报告(2011/2012学年第一学期) 学生姓名: 学生班级: 学生学号: 指导教师: 2012年1月15日

目录 1 课程设计分析 (1) 1.1设计目的及要求 (1) 1.2设计内容 (1) 1.3实验设备简介 (2) 1.4指令译码电路分析 (2) 1.5寄存器译码分析 (5) 1.6 信号及时序分析 (6) 1.7 微指令格式分析 (7) 2 总体设计 (9) 2.1存储器划分 (9) 2.2数据格式和指令设计 (9) 2.3控制台设计 (13) 3 详细设计 (15) 3.1指令详细设计 (15) 3.2微指令流程及代码 (23) 4 指令系统验证 (26) 4.1验证程序 (26) 4.2CPI分析 (28) 实验心得体会 (29) 附录A (30) 附录B (31) 参考文献 (32) I

1 课程设计分析 1.1 设计目的及要求 本课程设计是计算机科学与技术专业重要的实践性教学环节之一,是在学生学习完《计算机组成原理》课程后进行的一次全面的综合设计。目的是通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。 要求学生综合运用计算机组成原理、数字逻辑和汇编语言等相关课程的知识,理解和熟悉计算机系统的组成原理,掌握计算机主要功能部件的工作原理和设计方法,掌握指令系统结构设计的一般方法,掌握并运用微程序设计(Microprogramming)思想,在设计过程中能够发现、分析和解决各种问题,自行设计自己的指令系统结构(ISA)。 1.2 设计内容 基于TDN-CM++计算机组成原理实验教学系统,设计和实现一个8位指令系统结构(ISA),通过调试和运行,使设计的计算机系统能够完成指定的功能。 设计过程中要求考虑到以下各方面的问题: 1、指令系统风格(寄存器-寄存器,寄存器-存储器,存储器-存储器); 2、数据类型(无符号数,有符号数,整型,浮点型); 3、存储器划分(指令,数据); 4、寻址方式(立即数寻址,寄存器寻址,直接寻址等); 5、指令格式(单字节,双字节,多字节); 6、指令功能类别(算术/逻辑运算,存储器访问,寄存器操作,程序流控制,输入/输出); 7、依据CPI值对指令系统进行性能分析。

相关文档
最新文档