COP2000实现乘法器和除法器

更新时间:2023-07-22 16:09:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

计算机组成原理课程设计报告

班级:07计算机 06 班 姓名: 杨佳学 学号: 20073069

完成时间: 2009年12月25日

一、课程设计目的

1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系;

2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;

3.培养综合实践及独立分析、解决问题的能力。

二、课程设计的任务

针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。

三、 课程设计使用的设备(环境) 1.硬件

COP2000实验仪 PC机 2.软件

COP2000仿真软件

四、课程设计的具体内容(步骤)

1.详细了解并掌握COP 2000模型机的微程序控制器原理,通过综合实验来实现 (1)该模型机指令系统的特点:

① 总体概述

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位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。

模型机的缺省的指令集分几大类: 算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。

② 模型机的寻址方式

表1 模型机的寻址方式

(2)该模型机微指令系统的特点(包括其微指令格式的说明等): ① 总体概述

该模型机的微命令是以直接表示法进行编码的,其特点是操作控制字段中的每一位代表一个微命令。这种方法的优点是简单直观,其输出直接用于控制。缺点是微指令字较长,因而使控制存储器容量较大。

② 微指令格式的说明

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。微程序控制器由微程序给出24位控制信号,而微程序的地址又是由指令码提供的,也就是说24位控制信号是由指令码确定的。该模型机的微指令的长度为24位,其中微指令中只含有微命令字段,没有微地址字段。其中微命令字段采用直接按位的表示法,哪位为0,表示选中该微操作,而微程序的地址则由指令码指定。这24位操作控制信号的功能如表2所示:(按控制信号从左到右的顺序依次说明)

COP2000中有7个寄存器可以向数据总线输出数据, 但在某一特定时刻只能有一个寄存器输出数据. 由X2,X1,X0决定那一个寄存器输出数据。

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

COP2000中的运算器由一片EPLD实现. 有8种运算, 通过S2,S1,S0来选择。运算数据由寄存器A及寄存器W给出, 运算结果输出到直通门D。

2。计算机中实现乘法和除法的原理 (1)无符号乘法

①实例演示(即,列4位乘法具体例子演算的算式):

被乘数为1001(二进制),即为十进制的9;乘数为0110(二进制),即为十进制的6。那么,可以通过笔算得到:

1001×0110=00110110

即十进制运算结果为:

9×6=54

无符号乘法的实例演示如图1所示:

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

1 0 0 1 ;被乘数

× 0 1 1 0 ;乘数

0 0 0 0 ;初始值(零)

+ 0 0 0 0 (0) ;乘数最低位为0,部分积加0,被乘数左移一

;位,乘数右移一位。

0 0 0 0 ;部分积

+ 1 0 0 1 (1) ;乘数最低位为1,部分积加被乘数,被乘数左

;移一位,乘数右移一位。

1 0 0 1 0 ;部分积

+ 1 0 0 1 (1) ;乘数最低位为1,部分积加被乘数,被乘数左

;移一位,乘数右移一位。

1 1 0 1 1 0 ;部分积

+ 0 0 0 0 (0) ;乘数最低位为0,部分积加0,被乘数左移一

;位,乘数右移一位。

(0) 0 1 1 0 1 1 0 ;计算完毕,结果为00110110

即:1001×0110=00110110

图1 无符号乘法实例演示

②硬件原理框图:

被乘数左移

乘数右移

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

图2 无符号乘法的硬件原理框图

在模型机上实现无符号数乘法运算时,采用“加法—移位”的重复运算方法。那么, 无符号乘法的硬件原理框图如图2所示。

③算法流程图:

在模型机上实现无符号数乘法运算时,采用“加法—移位”的重复运算方法。因此,无符号乘法的算法流程图如图3所示。

图3 无符号乘法的算法流程图

(2)无符号除法

①实例演示(即,列4位除法具体例子演算的算式):

被除数为01100100(二进制),即为十进制的100;除数为1001(二进制),即为十进

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

制的9。那么,可以通过笔算得到:

01100100÷1001=1011 0001

即十进制运算结果为:

100÷9=11 1

无符号除法的实例演示如图4所示

0 1 0 1 1

;被除数 1 0 0 1 ;除数 ;减去除数

1 1 0 1 0 ;余数为负,C=1,商上0 1 0 0 1 ;商左移一位,除数右移一位 ;加上除数

0 0 0 1 1 1 ;余数为正,C=0,商上1

1 0 0 1 ;商左移一位,除数右移一位

;减去除数

1 1 1 1 1 0 0 ;余数为负,C=1,商上0

1 0 0 1 ;商左移一位,除数右移一位

;加上除数

0 0 0 0 1 0 1 0 ;余数为正,C=0,商上1

1 0 0 1 ;商左移一位,除数右移一位

;减去除数

0 0 0 0 0 0 0 1 ;余数为正,C=0,商上1,余数为1 ;余数为正不用处理

图4 无符号除法的算法流程图

②硬件原理框图:

数右移

初始化:除数左移

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

图5 无符号除法的硬件原理框图

在模型机上实现无符号数除法运算时,采用“加减交替算法”的运算方法。那么,无符号除法的硬件原理框图如图5所示。

③算法流程图:

在模型机上实现无符号数除法运算时,采用“加减交替算法”的运算方法。因此,无符号除法的算法流程图如图6所示。

图6 无符号除法的算法流程图

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

3.对应于以上算法如何分配使用COP2000实验仪中的硬件

(1)无符号乘法

符号乘法对应于COP2000实验仪的硬件具体分配使用情况如下表所示:

表3 无符号乘法的硬件分配情况

(2)无符号除法

无符号除法对应于COP2000实验仪的硬件具体分配使用情况如下表所示:

表4 无符号除法的硬件分配情况

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

4.在COP2000集成开发环境下设计全新的指令/微指令系统 设计结果如表所示(可按需要增删表项) (1) 新的指令集

(设计两个不同指令集要分别列表)

表5 无符号乘法和除法的新指令集

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

(2) 新的微指令集

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

T1 T0 SUB R?,A T3 T2 T1 T0 SUB R?,#II T3 T2 T1 T0 TEST R?,#II T3 T2 T1 T0 PUSH A T1 T0

0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B

FFFA98 CBFFFF FFFF8F FFF7F7 FFFA99 CBFFFF FFF7F7 C7FFEF FFFA99 CBFFFF C7FFFF FFF7F7 FFFE93 CBFFFF FFEF9F CBFFFF FFFFFF FFFFFF FFFF57 CBFFFF FFFFFF FFFFFF FFF7F7 CBFFFF

ALU 直通

寄 存 器 R? 标志位 C,Z 指令寄存 器 IR PC 输出

加运算 A 输出 A 输出 A 输出 减运算 PC 输出 A 输出 A 输出 PC 输出 A 输出 减运算 A 输出 A 输出 A 输出 与运算 A 输出 A 输出 PC 输出 A 输出 A 输出 A 输出

+1 写入 +1 +1 +1 写入 +1 +1 +1 写入 +1 +1 +1 写入 +1 写入 +1 +1 +1 写入 +1 +1 +1 写入 +1 +1 +1 +1 +1 +1 +1 +1 +1

ALU 直通

寄存器 W

寄 存 器 值 寄存器 A R? ALU 直通 寄存器 R? 标志位 C,Z 指令寄存 器 IR 寄 存 器 值 寄存器 A R? 存 贮 器 值 寄存器 W EM ALU 直通 寄 存 器 R? 标志位 C,Z

指 令 寄 存 PC 输出 器 IR 存 贮 器 值 寄存器 W PC 输出 EM 寄 存 器 值 寄存器 A R? ALU 直通 寄 存 器 R? 标志位 C,Z 指令寄存 器 IR 堆栈寄存 器 ST 指令寄存 器 IR PC 输出

ALU 直通

POP A

T1 T0

1C 1D 1E 1F

堆 栈 寄 存 寄存器 A 器 ST 指令寄存 器 IR PC 输出

A 输出 A 输出 A 输出 A 输出

MOV A,R?

T1 T0

20 21

寄 存 器 值 寄存器 A R? 指令寄存 器 IR

A 输出 PC 输出 A 输出

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

22 MOV R?,#II T1 T0 23 24 25 26 27 SHL R? T2 T1 T0 28 29 2A 2B 2C 2D 2E 2F JC MM T1 T0 30 31 32 33 JZ MM T1 T0 34 35 36 JMP MM T1 T0 37 38 39 3A 3B OVER T0 3C 3D 3E 3F

FFFFFF FFFFFF C7FBFF C7FBFF CBFFFF FFFFFF FFFFFF FFF7F7 FFF9DF CBFFFF FFFFFF FFF7F7

FFF9BF CBFFFF FFFFFF C6FFFF CBFFFF FFFFFF FFFFFF C6FFFF CBFFFF FFFFFF FFFFFF C6FFFF CBFFFF FFFFFF FFFFFF CBFFFF FFFFFF FFFFFF FFFFFF 指令寄存 器 IR PC 输出 存 贮 器 值 寄存器 PC EM 指令寄存 器 IR PC 输出 PC 输出 存 贮 器 值 寄存器 PC EM 指令寄存 器 IR PC 输出 PC 输出 存 贮 器 值 寄存器 PC EM 指令寄存 器 IR PC 输出 PC 输出 寄 存 器 值 寄存器 A R? ALU 左移 寄存器 R? 指令寄存 器 IR 寄 存 器 值 寄存器 A R? ALU 右移 寄存器 R? 指令寄存 器 IR PC 输出 PC 输出 存 贮 器 值 寄存器 R? EM 指令寄存 器 IR PC 输出 PC 输出

A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 A 输出 右移 左移 +1 写入 +1 +1 +1 +1 写入 +1 +1 +1 写入 +1 +1 写入 +1 +1 +1 写入 +1 +1 +1 写入 +1 +1 写入 +1 +1 +1 +1 写入 +1 写入 +1 写入 +1 +1 +1 +1

SHR R?

T2 T1 T0

+1

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

5.用设计完成的新指令集编写实现无符号二进制乘法、除法功能的汇编语言程序 (1)乘法

4位乘法的算法流程图与汇编语言程序清单:

MOV R0,#00H ;初始化部分积 MOV R1,#09H ;初始化被乘数 MOV R2,#06H ;初始化乘数 LOOP : TEST R2,#0FH ;测试乘数是否为0 JZ LAST ;是0跳转,程序结束

TEST R2,#01H ;测试乘数末位时候为0

JZ NEXT ;是0跳转,不用加被乘数 MOV A,R1 ;被乘数送累加器 ADD R0,A ;被乘数加到部分积 NEXT : SHL R1 ;被乘数左移一位

SHR R2 ;乘数右移一位 JMP LOOP ;跳转到下一次测试

LAST : OVER ;程序结束

图7 无符号乘法流程图

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

(2)除法

4位除法的算法流程图与汇编语言程序清单:

MOV R0,#64H ;初始化被除数

MOV R1,#09H ;初始化除数 MOV R2,#0H ;初始化商 MOV R3,#05H ;初始化计数器 TEST R1,#0FH JZ OVERFLOW MOV A,R1 PUSH A SHL R1 SHL R1 SHL R1 SHL R1 MOV A,R1 SUB R0,A JC ZERO JMP OVERFLOW ZERO : SHL R2 SHR R1 SUB R3,#1H JZ DEAL MOV A,R1 ADD R0,A JC ONE JMP ZERO ONE : SHL R2 ADD R2,#01H SHR R1 SUB R3,#01H ;测试除数时候为0 ;是0转到溢出处理 ;除数送累加器 ;保存除数 ;除数左移一位

;除数左移一位 ;除数左移一位 ;除数左移一位 ;移位后除数送累加器 ;被除数减去移位后除数

;有进位跳到ZERO,上0处理 ;首次没借位会得出5位商,溢出处理 ;商左移一位 ;除数右移一位 ;计数器减1 ;计数器为0,跳转

;被除数加上移位后除数 ;有借位跳到ONE,上1处理 ;没借位跳到ZERO,上0处理 ;商左移一位 ;商加1 ;除数右移一位 ;计数器减1

;被除数减去移位后除数

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

JZ DEAL ;计数器为0,跳转

MOV A,R1 ;移位后除数送累加器 SUB R0,A ;被除数减去移位后除数

JC ZERO ;有借位跳到ZERO,上0处理 JMP ONE ;没借位跳到ONE,上1处理 DEAL : TEST R0,#80H ;测试余数是否为负

JZ LAST ;为正不用处理 POP A ;恢复除数 ADD R0,A ;余数加上除数 JMP LAST ;跳转到程序结束

OVERFLOW: MOV R2,#0FFH ;溢出,商置全1 LAST : OVER ;程序结束

图8 无符号除法流程图

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

6.上述程序的运行情况(跟踪结果)

程序运行的过程: ① 乘法程序运行过程:

表7 无符号乘法程序的运行过程

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

JZ 14 TEST R2,#01

08 0A

3414 1601

若零标志位置 1, 跳转到 14H 地址。 地址。 01H, 寄存器 R2 与立即数 01H, 只 改变标志位, 改变标志位,并不改变 R2 中 的数值。 的数值。 若零标志位置 1, 跳转到 14H 地址。 地址。 中的数放入累 将寄存器 R1 中的数放入累 加器 A 中。 将累加器 A 中的数加入到寄 并影响标志位。 存器 R0 中, 并影响标志位。 寄存器 R1 中的数不带进位 向左移一位, 向左移一位, 并不影响标志 位。 寄存器 R2 中的数不带进位 向右移一位, 向右移一位, 并不影响标志 位。 地址。 跳转到 06H 地址。 0FH, 寄存器 R2 与 立即数 0FH, 只改变标志位, 只改变标志位,并不改变 R2 中的数值。 中的数值。 若零标志位置 1, 跳转到 14H 地址。 地址。 01H, 寄存器 R2 与立即数 01H, 只 改变标志位, 改变标志位,并不改变 R2 中 的数值。 的数值。 若零标志位置 1, 跳转到 14H 地址。 地址。 将寄存器 R1 中的数放入累 加器 A 中。 将累加器 A 中的数加入到寄 并影响标志位。 存器 R0 中, 并影响标志位。 寄存器 R1 中的数不带进位 向左移一位, 向左移一位, 并不影响标志 位。 寄存器 R2 中的数不带进位 向右移一位, 向右移一位, 并不影响标志

C6FFFF CBFFFF C7FFEF FFF7F7 FFFE93 CBFFFF C6FFFF CBFFFF FFF7F7 CBFFFF FFF7EF FFFA98 CBFFFF FFF7F7 FFF9DF CBFFFF FFF7F7 FFF9BF CBFFFF C6FFFF CBFFFF C7FFEF FFF7F7 FFFE93 FFFE93 CBFFFF C6FFFF CBFFFF C7FFEF FFF7F7 FFFE93 CBFFFF C6FFFF CBFFFF FFF7F7 CBFFFF FFF7EF FFFA98 CBFFFF FFF7F7 FFF9DF CBFFFF FFF7F7 FFF9BF

写入 +1 +1

+1 写入 +1 +1 +1 写入 +1 写入 +1 写入 +1 +1 写入 +1 +1 写入 +1 +1 写入 +1 写入 +1 +1 +1 写入 +1 写入 +1 +1 +1 写入 +1 写入 +1 写入 +1 +1 写入 +1 +1 写入 +1 +1

EM:34 EM:14 EM:16 EM:01 W:01 EM:01 A:03 EM:01 EM:34 EM:10 EM:21 EM:21 A:12 EM:04 EM:04 EM:04 W:00 EM:04 R0:12 EM:29 EM:29 A:12 EM:29 EM:29 R1:24 EM:2E EM:2E A:03 EM:2E R2:01 EM:38 EM:06 EM:16 EM:0F W:0F EM:0F A:01 EM:0F EM:34 EM:14 E

M:16 W:01 EM:01 W:01 EM:01 A:01 EM:01 EM:34 EM:10 EM:21 EM:21 A:24 EM:04 EM:04 W:12 EM:04 R0:36 EM:29 EM:29 A:24 EM:29 R1:48 EM:2E EM:2E A:01

+1 写入 +1 +1

JZ 10 MOV A,R1 ADD R0,A

0C 0E 0F

3410 21 04

+1

SHL R1

10

29

+1

SHR R2

11

2E

+1 写入 +1 +1

JMP 06 TEST R2,#0F

12 06

3806 160F

+1 写入 +1 +1

JZ 14 TEST R2,#01

08 0A

3414 1601

+1 写入 +1 +1

JZ 10 MOV A,R1 ADD R0,A

0C 0E 0F

3410 21 04

+1

SHL R1

10

29

+1

SHR R2

11

2E

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

② 除法程序运行过程

表8 无符号除法程序的运行过程

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

SHL R1

0F

29

寄存器 R1 中的数不带进位 向左移一位, 并不影响标志 向左移一位, 并不影响标志 位。 寄存器 R1 中的数不带进位 向左移一位, 向左移一位, 并不影响标志 位。 寄存器 R1 中的数不带进位 向左移一位, 向左移一位, 并不影响标志 位。 将寄存器 R1

中的数放入累 加器 A 中。 从寄存器 R0 中减去累加器 中的数,并影响标志位。 A 中的数,并影响标志位。

FFF7F7 FFF9DF CBFFFF FFF7F7 FFF9DF CBFFFF FFF7F7 FFF9DF CBFFFF FFF7F7 CBFFFF FFFF8F FFF7F7 FFFA99 CBFFFF C6FFFF CBFFFF FFF7F7 FFF9DF CBFFFF FFF7F7 FFF9BF CBFFFF FFF7F7 C7FFEF FFFA99 CBFFFF C6FFFF CBFFFF FFF7F7 CBFFFF FFF7EF FFFA98 CBFFFF C6FFFF CBFFFF FFF7F7 FFF9DF CBFFFF FFF7F7 C7FFEF FFFA98 CBFFFF

+1

+1 +1 写入 +1 +1 写入 +1 +1 写入

EM:29 EM:29 A:12 EM:29 R1:24 R1:24 EM:29 EM:29 A:24 EM:29 R1:48 R1:48 EM:29 EM:29 A:48 EM:29 R1:90 R1:90 EM:21 EM:21 A:90

SHL R1

10

29

+1

SHL R1

11

29

+1 +1

MOV A,R1 SUB R0,A

12 13

21 0C

+1 写入 +1

+1 +1 +1 写入 +1 写入 +1 +1 写入 +1 +1 写入 +1 +1 +1 写入 +1 写入 +1 写入 +1 +1 写入 +1 写入 +1 +1 写入 +1 +1 +1 写入

EM:0C EM:0C W:90 EM:0C A:64 EM:0C R0:D4 EM:30 EM:18 EM:2A EM:2A A:00 EM:2A R2:00 EM:2D EM:2D A:90 EM:2D EM:2D R1:48 EM:13 EM:13 A:05 EM:01 W:01 EM:01 R3:04 EM:34 EM:32 EM:21 EM:21 A:48 EM:04 EM:04 W:D4 EM:04 R0:1C EM:30 EM:24 EM:2A EM:2A A:00 EM:2A R2:00 EM:0A EM:0A A:00 EM:01 W:01 EM:01 R2:01

JC 18 SHL R2

14 18

3018 2A

若进位标志位置 1,跳转到 18H 地址。 18H 地址。 寄存器 R2 中的数不带进位 向左移一位, 向左移一位, 并不影响标志 位。 寄存器R1中的数不带进位 寄存器R1中的数不带进位 R1 向右移一位, 向右移一位, 并不影响标志 位。 从寄存器 R3 中减去立即数 01H 并影响标志位。 01H,并影响标志位。

+1

SHR R1

19

2D

+1 +1 +1 写入 +1 +1

SUB R3,#01

1A

1301

JZ 32 MOV A,R1 ADD R0,A

1C 1E 1F

3432 21 04

若零标志位置 1, 跳转到 32H 32H 地址。 地址。 将寄存器 R1 中的数放入累 加器 A 中。 将累加器A 将累加器A中的数加入到寄 存器R0 R0中 并影响标志位。 存器R0中,并影响标志位。 若进位标志位置 1,跳转到 24H 地址。 24H 地址。 寄存器 R2 中的数不带进位 向左移一位, 向左移一位, 不影响标志 并 位。 将立即数01H 将立即数01H加入到寄存器 01 R2中 并影响标志位。 R2中,并影响标志位。

+1 写入 +1

JC 24 SHL R2

20 24

3024 2A

+1 +1 +1

ADD R2,#01

25

0A01

东北大学计算机组成原理课程设计,用COP2000实现乘法器和除法器。

SHR R1

27

2D

寄存器 R1 中的数不带进位 向右移一位, 向右移一位, 并不影响标志 位。 从寄存器 R3 中减去立即数 01H 并影响标志位。 01H,并影响标志位。

FFF7F7 FFF7F7 FFF9BF CBFFFF FFF7F7 C7FFEF FFFA99 CBFFFF C6FFFF CBFFFF FFF7F7 CBFFFF FFFF8F FFF7F7 FFFA99 CBFFFF C6FFFF CBFFFF FFF7F7 FFF9DF CBFFFF FFF7F7 FFF9BF CBFFFF FFF7F7 C7FFEF FFFA99 CBFFFF C6FFFF CBFFFF FFF7F7 CBFFFF CBFFFF FFF7EF FFFA98 CBFFFF C6FFFF CBFFFF FFF7F7 FFF9DF CBFFFF FFF7F7 C7FFEF FFFA98 CBFFFF

+1 +1 +1 写入 +1 +1

+1 +1 写入 +1 +1 +1 写入 +1 写入 +1 写入 +1 +1 +1 写入 +1 写入 +1 +1 写入 +1 +1 写入 +1 +1 +1 写入 +1 写入 +1 写入 +1 +1 写入 +1 写入 +1 +1 写入 +1 +1 +1 写入

EM:2D EM:2D A

:48 EM:2D R1:24 EM:13 EM:13 A:04 EM:01 W:01 EM:01 R3:03 EM:34 EM:32 EM:21 EM:21 A:24 EM:0C EM:0C W:24 EM:0C A:1C EM:0C R0:F8 EM:30 EM:18 EM:2A EM:2A A:01 EM:2A R2:02 EM:2D EM:2D A:24 EM:2D R1:12 EM:13 EM:13 A:03 EM:01 W:01 EM:01 R3:02 EM:34 EM:32 EM:21 EM:21 A:12 EM:04 EM:04 W:F8 EM:04 R0:0A EM:30 EM:24 EM:2A EM:2A A:02 EM:2A R2:04 EM:0A EM:0A A:04 EM:01 W:01 EM:01 R2:05

SUB R3,#01

28

1301

JZ 32 MOV A,R1 SUB R0,A

2A 2C 2D

3432 21 0C

32H 若零标志位置 1, 跳转到 32H 地址。 地址。 将寄存器 R1 中的数放入累 加器 A 中。 从寄存器 R0 中减去累加器 中的数,并影响标志位。 A 中的数,并影响标志位。

+1 写入 +1

JC 18 SHL R2

2E 18

3018 2A

若进位标志位置 1,跳转到 18H 地址。 18H 地址。 寄存器R2中的数不带进位 寄存器R2中的数不带进位 R2 向左移一位, 向左移一位, 并不影响标志 位。 寄存器 R1 中的数不带进位 向右移一位, 向右移一位, 并不影响标志 位。 从寄存器 R3 中减去立即数 01H,并影响标志位。 01H,并影响标志位。

+1

SHR R1

19

2D

+1 +1 +1 写入 +1 +1

SUB R3,#01

1A

1301

JZ 32 MOV A,R1 ADD R0,A

1C 1E 1F

3432 21 04

若零标志位置 1, 跳转到 32H 32H 地址。 地址。 将寄存器 R1 中的数放入累 加器 A 中。 将累加器A 将累加器A中的数加入到寄 存器R0 R0中 并影响标志位。 存器R0中,并影响标志位。 若进位标志位置 1,跳转到 24H 地址。 24H 地址。 寄存器 R2 中的数不带进位 向左移一位, 向左移一位, 并不影响标志 位。 将立即数01H加入到寄存器 将立即数01H加入到寄存器 01H R2中 并影响标志位。 R2中,并影响标志位。

+1 写入 +1

JC 24 SHL R2

20 24

3024 2A

+1 +1 +1

ADD R2,#01

25

0A01

本文来源:https://www.bwwdw.com/article/w0zm.html

Top