计算机组成原理课程设计--乘除法运算.doc
《计算机组成原理课程设计--乘除法运算.doc》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计--乘除法运算.doc(24页珍藏版)》请在咨信网上搜索。
计算机组成原理课程设计报告 班级: 班 姓名: 学号: 完成时间: 2016.1.9 一、课程设计目的 1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系; 2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念; 3.培养综合实践及独立分析、解决问题的能力。 二、课程设计的任务 针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。 三、 课程设计使用的设备(环境) 1.硬件 l COP2000实验仪 l PC机 2.软件 l COP2000仿真软件 四、课程设计的具体内容(步骤) 1.详细了解并掌握COP 2000模型机的微程序控制器原理,通过综合实验来实现 该模型机指令系统的特点: ① 总体概述 COP2000模型机包括了一个标准CPU所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以及跳转控制电路用CPLD来实现,其它电路都是用离散的数字电路组成。微程序控制部分也可以用组合逻辑控制来代替。 模型机为8位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。相比而言8位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。 模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。 模型机的缺省的指令集分几大类: 算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。 ② 模型机的寻址方式 表1 模型机的寻址方式 模型机的寻址方式 寻址方式说明 指令举例 指令说明 累加器寻址 操作数为累加器A CPL A 将累加器A的值取反 隐含寻址累加器A OUT 将累加器A的值输出到输出端口寄存器OUT 寄存器寻址 参与运算的数据在R0~R3的寄存器中 ADD A,R0 将寄存器R0的值加上累加器A的值,再存入累加器A中 寄存器间接寻址 参与运算的数据在存储器EM中,数据的地址在寄存器R0-R3中 MOV A,@R1 将寄存器R1的值作为地址,把存储器EM中该地址的内容送入累加器A中 存储器直接寻址 参与运算的数据在存储器EM中,数据的地址为指令的操作数。 AND A,40H 将存储器EM中40H单元的数据与累加器A的值作逻辑与运算,结果存入累加器A 立即数寻址 参与运算的数据为指令的操作数。 SUB A,#10H 从累加器A中减去立即数10H,结果存入累加器A 该模型机微指令系统的特点(包括其微指令格式的说明等): 该模型机的微命令是以直接表示法进行编码的,其特点是操作控制字段中的每一位代表一个微命令。这种方法的优点是简单直观,其输出直接用于控制。缺点是微指令字较长,因而使控制存储器容量较大。 ② 微指令格式的说明 模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。微程序控制器由微程序给出24位控制信号,而微程序的地址又是由指令码提供的,也就是说24位控制信号是由指令码确定的。该模型机的微指令的长度为24位,其中微指令中只含有微命令字段,没有微地址字段。其中微命令字段采用直接按位的表示法,哪位为0,表示选中该微操作,而微程序的地址则由指令码指定。这24位操作控制信号的功能如表2所示:(按控制信号从左到右的顺序依次说明) 表2 微指令控制信号的功能 操作控制信号 控 制 信 号 的 说 明 XRD 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。 EMWR 程序存储器EM写信号。 EMRD 程序存储器EM读信号。 PCOE 将程序计数器PC的值送到地址总线ABUS上。 EMEN 将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。 IREN 将程序存储器EM读出的数据打入指令寄存器IR和微指令计数器μPC。 EINT 中断返回时清除中断响应和中断请求标志,便于下次中断。 ELP PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。 MAREN 将数据总线DBUS上数据打入地址寄存器MAR。 MAROE 将地址寄存器MAR的值送到地址总线ABUS上。 OUTEN 将数据总线DBUS上数据送到输出端口寄存器OUT里。 STEN 将数据总线DBUS上数据存入堆栈寄存器ST中。 RRD 读寄存器组R0~R3,寄存器R?的选择由指令的最低两位决定。 RWR 写寄存器组R0~R3,寄存器R?的选择由指令的最低两位决定。 CN 决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。 FEN 将标志位存入ALU内部的标志寄存器。 X2 X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。 X1 X0 WEN 将数据总线DBUS的值打入工作寄存器W中。 AEN 将数据总线DBUS的值打入累加器A中。 S2 S2、S1、S0三位组合决定ALU做何种运算。 S1 S0 COP2000中有7个寄存器可以向数据总线输出数据, 但在某一特定时刻只能有一个寄存器输出数据. 由X2,X1,X0决定那一个寄存器输出数据。 X2 X1 X0 输出寄存器 0 0 0 IN_OE 外部输入门 0 0 1 IA_OE 中断向量 0 1 0 ST_OE 堆栈寄存器 0 1 1 PC_OE PC寄存器 1 0 0 D_OE 直通门 1 0 1 R_OE 右移门 1 1 0 L_OE 左移门 1 1 1 没有输出 COP2000中的运算器由一片EPLD实现. 有8种运算, 通过S2,S1,S0来选择。运算数据由寄存器A及寄存器W给出, 运算结果输出到直通门D。 S2 S1 S0 功能 0 0 0 A+W 加 0 0 1 A-W 减 0 1 0 A|W 或 0 1 1 A&W 与 1 0 0 A+W+C 带进位加 1 0 1 A-W-C 带进位减 1 1 0 ~A A取反 1 1 1 A 输出A 2. 计算机中实现乘法和除法的原理 (1)无符号乘法 ①算法流程图: 开 始 输入被乘数、乘数,初始化过程积 N 乘数为0? N 输出结果OUT 乘数最后一位 为1? N 结束 Y 计算过程积 被乘数左移一位 乘数右移一位 ②硬件原理框图: 判断乘数是否为零 判断乘数最后一位是否为1 R D L 被乘数 R0 R1中间积 ALU 乘数 中间积 R2 A R3 W 乘数右移 被乘数左移 (2)无符号除法 ①算法流程图: 开始 输入被除数,除数初始化商为0,过程除数先初始化等于除数 除数为0? Y N 过程除数左移一位 N 过程除数的最高位为1? Y 过程除数小于 除数? Y 输出商OUT; 输出余数OUT; N 余数大于等于过程除数? Y 结束 Y 过程除数右移一位;商左移一位 被除数减去过程除数得到新的被除数 过程除数右移一位;商左移一位并且加1 ②硬件原理框图: 左移、右移 过程 除数 R0 R D L 被除数 R1中间积 ALU 商 R2 存除数 A R3 W R1-R0 R2+1 3.对应于以上算法如何分配使用COP2000实验仪中的硬件 (初步分配,设计完成后再将准确的使用情况填写在此处) (1) 无符号乘法的硬件分配情况 硬件名称 实现算法功能描述 寄存器R0 计算时用来存放过程积和结果积 寄存器R1 ① 初始化时,用来存放被乘数; ② 在程序执行的过程中,用来存放向左移位后的被乘数。 寄存器R2 ① 初始化时,用来存放乘数; ② 在程序执行的过程中,用来存放向右移位后的乘数。 累加器A 执行ADD A,R?(加法)、SHL R?(左移一位)、SHR R?(右移一位)等命令时所必须使用的寄存器。 寄存器W 执行ADD A,R?(加法)、CHECK R?,#II(检测乘数最后一位是否为1)等双操作数命令时所必须使用的寄存器。 左移门L 用来实现相应数据左移一位的运算,并能够控制该运算后的结果是否输出到数据总线。 直通门D 用来控制ALU的执行结果是否输出到数据总线。 右移门R 用来实现相应数据右移一位的运算,并能够控制该运算后的结果是否输出到数据总线。 程序计数器PC ① 控制程序按顺序正常执行; ② 当执行转移指令时,从数据线接收要跳转的地址,使程序能够按需要自动执行。 ③ 当要从EM中读取数据时,由PC提供地址。 存储器EM 存储指令和数据。 微程序计数器μPC 向微程序存储器μM提供相应微指令的地址。 微程序存储器μM 存储相应指令的微指令。 输出寄存器OUT 将运算结果(R0)输出到输出寄存器OUT。 堆栈ST 当存储于累加器A的值将要受到破坏时,将其数据保存在堆栈ST中,使程序能够正常地执行。 (2)无符号除法 无符号除法对应于COP2000实验仪的硬件具体分配使用情况如下表所示: 表4 无符号除法的硬件分配情况 硬件名称 实现算法功能描述 寄存器R0 ①初始化时,用来存放除数 ②在程序执行过程中,用来存放向右移位后的过程除数 寄存器R1 初始化时,用来存放被除数; 寄存器R2 在程序执行过程中,用来保存当前算得的商。 寄存器R3 初始化时,用来保存除数,运算过程中其值也不改变。 累加器A ① 计算时用来存放中间结果; ② 执行CMP R?,A(比较) SUB A,R?(减法)等命令时所必须使用的寄存器。 寄存器W 执行SUB A,R?(减法)等双操作数命令时所必须使用的寄存器。 左移门L 用来实现相应数据左移一位的运算,并能够控制该运算后的结果是否输出到数据总线。 直通门D 用来控制ALU的执行结果是否输出到数据总线。 右移门R 用来实现相应数据右移一位的运算,并能够控制该运算后的结果是否输出到数据总线。 程序计数器PC ① 控制程序按顺序正常执行; ② 当执行转移指令时,从数据线接收要跳转的地址,使程序能够按需要自动执行。 ③ 当要从EM中读取数据时,由PC提供地址。 存储器EM 存储指令和数据。 微程序计数器μPC 向微程序存储器μM提供相应微指令的地址。 微程序存储器μM 存储相应指令的微指令。 输出寄存器OUT 将运算结果输出到输出寄存器OUT(R2:商,R1:余数)。 堆栈ST 当存储于累加器A的值将要受到破坏时,将其数据保存在堆栈ST中,使程序能够正常地执行。 4.在COP2000集成开发环境下设计全新的指令/微指令系统 设计结果如表所示(可按需要增删表项) (1) 新的指令集 (如果针对乘除法设计了两个不同指令集要分别列表) 助记符 机器码1 机器码2 指令说明 _FATCH_ 000000XX 00-03 实验机占用,不可修改。复位后,所有寄存器清0,首先执行 _FATCH_ 指令取指 M0V R?,#II 000001XX 04-07 II 将立即数II送到寄存器R?中 MOV A,,R? 000010XX 08-0B 将寄存器R?的值送到累加器A中 ADD R?,A 000011XX 0C-0F 将寄存器R?的值加入累加器A中 ADD R?,#II 000100XX 10-13 II 将立即数II加入寄存器R?中 SUB R?,A 000101XX 14-17 从累加器A中减去寄存器R?的值 CHECK R?,#II 000110XX 18-1B II JMP MM 000111XX 1C-1F MM ZF=1,跳转 JC MM 001000XX 20-23 MM CF=1,跳转 JZ MM 001001XX 24-27 MM 无条件跳转 未使用 001010XX 28-2B SHL R? 001011XX 2C-2F 左移 SHR R? 001100XX 30-33 右移 CMP R?,A 001101XX 34-37 比较 OUT R? 001110XX 38-3B 输出 (2) 新的微指令集 助记符 状态 微地址 微程序 数据输出 数据打入 地址输出 运算器 移位控制 mPC PC _FATCH_ T0 00 CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 01 FFFFFF 浮空 浮空 A输出 +1 02 FFFFFF 浮空 浮空 A输出 +1 03 FFFFFF 浮空 浮空 A输出 +1 MOV R?,#II T1 04 C7FBFF 存储器值EM 寄存器R? PC输出 A输出 +1 T0 05 CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 06 FFFFFF 浮空 浮空 A输出 +1 07 FFFFFF 浮空 浮空 A输出 +1 MOV A,R? T1 08 FFF7F7 寄存器值R? 寄存器W 浮空 A输出 +1 T0 09 CBFFFF 浮空 指令寄存器IR PC输出 A输出 +1 0A FFFFFF 浮空 浮空 A输出 +1 0B FFFFFF 浮空 浮空 A输出 +1 ADD R?,A T2 0C FFF7EF 寄存器R? 寄存器W 浮空 A输出 +1 T1 0D FFFA98 ALU直通 寄存器R?标志位C,Z 浮空 加运算 +1 T0 0E CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 0F FFFFFF 浮空 浮空 A输出 +1 ADD R?,#II T3 10 FFF7F7 寄存器值R? 寄存器A 浮空 A输出 +1 T2 11 C7FFEF 存储器值EM 寄存器W PC输出 A输出 写入 +1 T1 12 FFFA98 ALU直通 寄存器R?标志位C,Z 浮空 加运算 +1 T0 13 CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 SUB R?,A T3 14 FFFF8F ALU直通 寄存器W 浮空 A输出 +1 T2 15 FFF7F7 寄存器R? 寄存器A 浮空 A输出 +1 T1 16 FFFA99 ALU直通 寄存器R?标志位C,Z 浮空 减运算 +1 T0 17 CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 CHECK R?,#II T3 18 C7FFEF 存储器值EM 寄存器W PC输出 A输出 +1 +1 T2 19 FFF7F7 寄存器值R? 寄存器A 浮空 A输出 +1 T1 1A FFFE93 ALU直通 寄存器A标志位C,Z 浮空 与运算 +1 T0 1B CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 JMP MM T1 1C C6FFFF 存储器EM 寄存器PC PC输出 A输出 +1 写入 T0 1D CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 1E FFFFFF 浮空 浮空 A输出 +1 1F FFFFFF 浮空 浮空 A输出 +1 JC MM T1 20 C6FFFF 存储器值EM 寄存器PC PC输出 A输出 +1 写入 T0 21 CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 22 FFFFFF 浮空 浮空 A输出 +1 23 FFFFFF 浮空 浮空 A输出 +1 JZ MM T1 24 C6FFFF 存储器值EM 寄存器PC PC输出 A输出 +1 写入 T0 25 CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 未使用 26 FFFFFF 浮空 浮空 A输出 +1 07 FFFFFF 浮空 浮空 A输出 +1 28 FFFFFF 浮空 浮空 A输出 +1 29 FFFFFF 浮空 浮空 A输出 +1 2A FFFFFF 浮空 浮空 A输出 +1 2B FFFFFF 浮空 浮空 A输出 +1 SHL R? T2 2C FFF7F7 寄存器值R? 寄存器A 浮空 A输出 +1 T1 2D FFF9DF ALU左移 寄存器R? 浮空 A输出 左移 +1 T0 2E CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 2F FFFFFF 浮空 浮空 A输出 +1 SHR R? T2 30 FFF7F7 寄存器值R? 寄存器A 浮空 A输出 +1 T1 31 FFF9BF ALU右移 寄存器R? 浮空 A输出 右移 +1 T0 32 CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 CMP R?,A T3 34 FFFF8F ALU直通 寄存器W 浮空 A输出 +1 T2 35 FFF7F7 寄存器值R? 寄存器A 浮空 A输出 +1 T1 36 FFFE99 ALU直通 标志位C,Z 浮空 减运算 +1 T0 37 CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 OUT R? T2 38 FFD7FF 寄存器值R? 用户OUT 浮空 A输出 +1 T1 39 FFD7F7 寄存器值R? 寄存器A 用户OUT 浮空 A输出 +1 T0 3A CBFFFF 浮空 指令寄存器IR PC输出 A输出 写入 +1 3B FFFFFF 浮空 浮空 A输出 +1 5.设计完成的新指令集编写实现无符号二进制乘法、除法功能的汇编语言程序 (1)乘法 4位乘法的算法流程图与汇编语言程序清单: ①乘法算法流程图 开 始 输入被乘数、乘数,初始化过程积 N 乘数为0? N 输出结果OUT N 乘数最后一位 为1? 结束 Y 计算过程积 被乘数左移一位 乘数右移一位 ②汇编语言程序 MOV R0,#00H ;中间积 MOV R1,#9 ;被乘数 MOV R2,#6 ;乘数 LAB : CHECK R2,#0FH JZ LAST CHECK R2,#01H JZ NEXT MOV A,R1 ADD R0,A NEXT : SHL R1 SHR R2 JMP LAB LAST : OUT R0 LAST1:JMP LAST1 (2)除法 4位除法的算法流程图与汇编语言程序清单: ①除法算法流程图: 开始 输入被除数,除数初始化商为0,过程除数先初始化等于除数 除数为0? Y N 过程除数左移一位 N 过程除数的最高位为1? Y 过程除数小于 除数? Y 输出商OUT; 输出余数OUT; N 余数大于等于过程除数? Y 结束 Y 过程除数右移一位;商左移一位 被除数减去过程除数得到新的被除数 过程除数右移一位;商左移一位并且加1 ②汇编语言程序 MOV R0,#8 ;过程除数 MOV R1,#33 ;初始化被除数 MOV R2,#0 ;初始化商 MOV R3,#8 ;R3用于保存除数,值不改变 CHECK R0,#0FH JZ LAST LOOP:CHECK R0,#80H JZ LOOP1 JMP BEGIN LOOP1:SHL R0 JMP LOOP BEGIN: MOV A,R3 CMP R0,A JC LAST MOV A,R0 CMP R1,A JC ONE MOV A,R0 SUB R1,A SHL R2 ADD R2,#1 SHR R0 JMP BEGIN ONE: SHL R2 SHR R0 JMP BEGIN LAST:OUT R2 LAST1:JMP LAST1 6.上述程序的运行情况(跟踪结果) 按下表填写描述以上各程序运行情况的内容。按每个程序一张表进行。 程序运行的过程 ①无符号乘法 汇 编 指 令 程序地址 机器码 指令说明 微程序 PC mPC 运行时寄存器或存储器的值 MOV R0,#0 00 01 0400 初始化过程积 C7FBFF CBFFFF 01 02 04 05 R0=00H MOV R1,#9 02 03 0509 初始化被乘数 C7FBFF CBFFFF 03 04 04 05 R1=09H MOV R2,#6 04 05 0606 初始化乘数 C7FBFF CBFFFF 05 06 04 05 R2=06H LAB: CHECK R2,#0FH 06 07 1A0F 检测乘数是否为0(将0FH送至寄存器W,将R2送至寄存器A中,进行与运算,结果由D送至A中。) C7FFEF FFF7F7 FFFE93 CBFFFF 07 08 08 08 18 19 1A 1B W=0FH A=06H JZ LAST 08 09 2414 乘数为0(ZF=1),则跳转到LAST C6FFFF CBFFFF 09 0A 24 25 CHECK R2,#01H 0A 0B 1A01 检测乘数最后一位是否为1(将01H送至寄存器W,将R2送至寄存器A中,进行与运算,结果由D送至A中。) C7FFEF FFF7F7 FFFE93 CBFFFF 0B 0C 0C 0C 18 19 1A 1B W=01H A=06H JZ NEXT 0C 0D 2410 乘数最后一位为0(ZF=1),则跳转到NEXT C6FFFF CBFFFF 0D 10 24 25 NEXT: SHL R1 10 2D 被乘数左移一位(将R1值送至寄存器A中,左移将L中的值送回R1) FFF7F7 FFF9DF CBFFFF 11 11 11 2C 2D 2E R1=12H SHR R2 11 32 乘数右移一位(将R2值送至寄存器A中,右移将R中的值送回R2) FFF7F7 FFF9BF CBFFFF 12 12 12 30 31 32 R2=03H JMP LAB 12 13 1C06 无条件跳转至LAB C6FFFF CBFFFF 13 06 1C 1D LAB: CHECK R2,#0FH 06 07 1A0F 检测乘数是否为0(将0FH送至寄存器W,将R2送至寄存器A中,进行与运算,结果由D送至A中。) C7FFEF FFF7F7 FFFE93 CBFFFF 07 08 08 08 18 19 1A 1B W=0FH A=03H JZ LAST 08 09 2414 乘数为0(ZF=1),则跳转到LAST C6FFFF CBFFFF 09 0A 24 25 CHECK R2,#01H 0A 0B 1A01 检测乘数最后一位是否为1(将01H送至寄存器W,将R2送至寄存器A中,进行与运算,结果由D送至A中。) C7FFEF FFF7F7 FFFE93 CBFFFF 0B 0C 0C 0C 18 19 1A 1B W=01H A=03H JZ NEXT 0C 0D 2410 乘数最后一位为0(ZF=1),则跳转到NEXT C6FFFF CBFFFF 0D 0E 24 25 MOV A,R1 0E 09 将被乘数R1送至寄存器A中 FFF7F7 CBFFFF 0F 0F 08 09 A=12H ADD R0,A 0F 0C 过程积加上被乘数(将R0上送至W中,A与W做加法运算) FFF7EF FFFA98 CBFFFF 10 10 10 1C 1D 1E R0=12H NEXT: SHL R1 10 2D 被乘数R1左移一位(将R1值送至寄存器A中,左移将L中的值送回R1) FFF7F7 FFF9DF CBFFFF 11 11 11 2C 2D 2E R1=24H SHR R2 11 32 乘数右移一位(将R2值送至寄存器A中,右移将R中的值送回R2) FFF7F7 FFF9BF CBFFFF 12 12 12 30 31 32 R2=01H JMP LAB 12 13 1C06 无条件跳转至LAB C6FFFF CBFFFF 13 06 1C 1D LAB: CHECK R2,#0FH 06 07 1A0F 检测乘数是否为0(将0FH送至寄存器W,将R2送至寄存器A中,进行与运算,结果由D送至A中。) C7FFEF FFF7F7 FFFE93 CBFFFF 07 08 08 08 18 19 1A 1B W=0FH A=01H JZ LAST 08 09 2414 乘数为0(ZF=1),则跳转到LAST C6FFFF CBFFFF 09 0A 24 25 CHECK R2,#01H 0A 0B 1A01 检测乘数最后一位是否为1(将01H送至寄存器W,将R2送至寄存器A中,进行与运算,结果由D送至A中。) C7FFEF FFF7F7 FFFE93 CBFFFF 0B 0C 0C 0C 18 19 1A 1B W=01H A=01H JZ NEXT 0C 0D 2410 乘数最后一位为0(ZF=1),则跳转到NEXT C6FFFF CBFFFF 0D 0E 24 25 MOV A,R1 0E 09 将被乘数R1送至寄存器A中 FFF7F7 CBFFFF 0F 0F 08 09 A=24H ADD R0,A 0F 0C 过程积加上被乘数(将R0上送至W中,A与W做加法运算) FFF7EF FFFA98 10 10 10 0C 0D 0E W=12H R0=36H NEXT: SHL R1 10 2D 被乘数左移一位(将R1值送至寄存器A中,左移将L中的值送回R1) FFF7F7 FFF9DF CBFFFF 11 11 11 2C 2D 2E R1=48H SHR R2 11 32 乘数右移一位(将R2值送至寄存器A中,右移将R中的值送回R2) FFF7F7 FFF9BF CBFFFF 12 12 12 30 31 32 R2=00H JMP LAB 12 13 1C06 无条件跳转至LAB C6FFFF CBFFFF 13 06 1C 1D LAB: CHECK R2,#0FH 06 07 1A0F 检测乘数是否为0(将0FH送至寄存器W,将R2送至寄存器A中,进行与运算,结果由D送至A中。) C7FFEF FFF7F7 FFFE93 CBFFFF 07 08 08 08 18 19 1A 1B W=OFH A=00H JZ LAST 08 09 2414 乘数为0(ZF=1),则跳转到LAST C6FFFF CBFFFF 09 14 24 25 LAST: OUT R0 14 38 将结果积R0输出到OUT寄存器 FFD7FF CBFFFF 15 15 38 39 0UT=R0=36H ②无符号除法(商可以是8位的通用除法) 汇 编 指 令 程序地址 机器码 指令说明 微程序 PC mPC 运行时寄存器或存储器的值 MOV R0,#8 00 01 0408 初始化过程除数 C7FBFF CBFFFF 01 02 04 05 R0=08H MOV R1,#33 02 03 0521 初始化被除数 C7FBFF CBFFFF 03 04 04 05 R3=33H MOV R2,#0 04 05 0600 初始化商 C7FBFF CBFFFF 05 06 04 05 R1=08H MOV R3,#8 06 07 0708 保持除数 C7FBFF CBFFFF 07 08 04 05 R2=00H CHECK R0,#0FH 08 09 180F 检测除数是否为0(将0FH送至W中,除数R0送至A中,进行与运算,结果保存在A中) C7FFEF FFF7F7 FFFE93 CBFFF 09 0A 0A 0A 18 19 1A 1B W=0FH A=08H JZ LAST 0A 0B 2429 除数若为0(ZF=1),跳转到LAST C6FFFF CBFFFF 0B 0C 24 25 LOOP: CHECK R0,#80H 0C 0D 1880 检测除数最高位是否为1(将80H送至W中,过程除数R0送至A中,进行与运算,结果保存在A中) C7FFEF FFF7F7 FFFE93 CBFFF OD 0E 0E 0E 18 19 1A 1B W=80H A=08H JZ LOOP1 0E 0F 2412 过程除数的最高位为0(ZF=1),跳转到LOOP1 C6FFFF CBFFFF 0F 12 24 25 LOOP1: SHL R0 12 2C 过程除数左移一位(过程除数R0送至A中,左移一位,结果L再送回R0) FFF7F7 FFF9DF CBFFFF 13 13 13 2C 2D 2E R0=10- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 除法 运算
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文