一位原码的乘法规则_原码(八位)一位乘法的实现

实验报告详细描述了原码(八位)一位乘法的实现过程,涉及高位移位、进位和不同情况的处理。同时,还介绍了设计五条微程序指令,包括RR、RL、SUB、ADD和MOV指令,通过24位控制位实现各种功能。
摘要由CSDN通过智能技术生成

实验报告

院:

课程:

班级:

学号:

学生姓名:

指导教师:

2016年 6月25日

实验过程

R0 存储被乘数

R1存储乘数

R2存储结果的高8位

R3存储结果的低8位

S:

MOV A R1

01H

71

AND A #01H

02H

5C

03H

01

JZ S0

04H

A4

05H

3F

MOV A R2

06H 72

AND A 01H

07H

5C

08H

01

JZ S1

09H

A4

OAH

27

MOV A R2

0BH

72

RR A

0CH

D0

MOV R2 A

0DH

82

MOV A R2

OEH

72

ADD A R0

0FH

10

MOV R2 A

10H

82

MOV A R3

11H

73

RR A

12H

D0

MOV R3 A

13H

83

MOV A R3

14H

73

ADD A 80H

15H

1C

16H

80

MOV R3 A

17H

83

MOV A R1

18H

71

RR A

19H

D0

MOV R1 A

1AH

81

MOV

A A1

1BH

78

1C

A1

ADD A 01H

1DH

1C

1EH

01

MOV A1 A

1FH

88

20H

A1

SUB A1 09H

21H

3C

22H

09

JZ A2

23H

A4

24H

A2

JMP S

25H

AC

26H

01

S1:

MOV A R2

27H

72

RR A

28H

D0

29H

82

MOV A R2

2AH

72

ADD A R0

2BH

10

MOV R2 A

2CH

82

MOV A R3

2DH

73

RR A

2EH

D0

MOV R3 A

2FH

83

MOV A R1

30H

71

RR A

31H

D0

MOV R1 A

32H

81

MOV

A A1

33H

78

34H

A1

ADD A 01H

35H

1C

36H

01

MOV A1 A

37H

88

38H

A1

SUB A1 09H

39H

3C

3AH

09

JZ A2

3BH

A4

3CH

A2

JMP S

3DH

AC

3EH

01

S0:

MOV A R2

3FH

72

AND A 01H

40H

5C

41H

01

JZ S2

42H

A4

43H

5D

MOV A R2

44H

72

RR A

45H

D0

MOV R2 A

46H

82

MOV A R3

47H

73

RR A

48H

D0

MOV R3 A

49H

83

MOV A R3

4AH

73

ADD A 80H

4BH

1C

4CH

80

MOV R3 A

4DH

83

MOV A R1

4EH

71

RR A

4FH

D0

MOV R1 A

50H

81

MOV

A A1

51H

78

52H

A1

ADD A 01H

53H

1C

54H

01

MOV A1 A

55H

88

56H

A1

SUB A1 09H

57H

3C

58H

09

JZ A2

59H

A4

5AH

A2

JMP S

5BH

AC

5CH

01

S2:

MOV A R2

5DH

72

RR A

5EH

D0

MOV R2 A

5FH

82

MOV A R3

60H

73

RR A

61H

D0

MOV R3 A

62H

83

MOV A R1

63H

71

RR A

64H

D0

MOV R1 A

65H

81

MOV A A1

66H

78

67H

A1

ADD A 01H

68H

1C

69H

01

MOV A1 A

6AH

88

6BH

A1

SUB A1 09H

6CH

3C

6DH

09

JZ A2

6EH

A4

6FH

A2

JMP S

70H

AC

71H

01

FFF7F7

FFFCB7

FFFB9F

CBFFFF

FFF7F7

FFFCD7

FFFB9F

CBFFFF

FFF7F7

C7FFEF

FFFE91

CBFFFF

FFF7F7

C7FFEF

FFFE90

CBFFFF

FFF7EF

本次实验主要有两部分内容。一个是原码(八位)一位乘法的实现,另一个是设计五条微程序指令。

在原码(八位)一位乘法的实现实验中主要涉及到位数的扩展以及进位和移位等问题,为了解决这些问题我们在实验中采取了分情况讨论的方式,主要分四种情况进行讨论(1)高八位的末尾是0,低八位的末尾是1,此时高八位右移,并且加R0,低八位右移。(2)高八位末尾是1,低八位末尾是1,此时高八位右移,并且加R0,低八位右移加80H.(3)高八位末尾是0,低八位末尾是0,此时高八位右移,低八位右移。(4)高八位末尾是1,低八位末尾是0,高八位右移,低八位右移加80H.

(6)在设计五条微程序指令的实验中我们主要设计了五条机器指令:RR

R? 实现寄存器的右移,RL R? 实现寄存器的左移,SUB R? #II实现寄存器减去一个立即数,ADD R?

#II实现寄存器加上一个立即数,MOV W

R?将寄存器里的内容存入W。在这次实验中主要参考了已经存在的机器指令,分别给24位控制位赋0或者1来决定功能的实现,一条指令分为4个状态。

实验的不足之处是没有进行符号位的判断,但是思路是这样的在程序执行之前加上这样一段指令

MOV A R0

AND A 80H

MOV A5 A

MOV A R1

AND A 80H

MOV A6 A

MOV A A5

AND A A6

MOV A7 A

在结束循环时把A7赋给R1

另外如果输入的是负数还要进行与运算把他变成正数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值