2015年计机二151《计组实验》微控题目

发布时间:2016-06-13 19:49:53   来源:文档文库   
字号:

题目1:在分段模型机的基础上实现减法运算“7EH-2AH=54H”,其中7EHI/OL读取,2AH存放在RAM的地址单元[0300H]中,要求运算结果存放在RAM地址单元[0301H]中,并且从I/OH显式。

P000: IN R0, IOL

P001: SUB R0, [0300H]

P004: STA [0301H], R0

P007: OUT [0301H], IOH

P00A: HLT

思路:分段模型机中没有减法指令,需要增加一条减法(SUB)指令,以及停机指令(HLT)。

题目2:在复杂模型机的基础上实现乘法运算MUL R2, R0, R1. 其中R0R1分别存放被乘数和乘数,I/OL读取,取值范围为[1, 15]R2存放乘法运算结果。

思路:采用循环,每次部分积R2加上被乘数R0,乘数R1便减1,直到R1变为0,此时部分积R2即为最终的乘积。Sub,触发Z=1;并且BNC改为BNZ,即Z=1时即跳出循环。

方法一:乘法程序(不判操作数为零)

汇编程序: 机器代码:

P000 IN R0 (1,15) D0

P001 IN R1 (1,15) D1

P002 IN R2 (0) D2

P003 IN R3 (1) D3

P004 ADD R2, R0 52

P005 SUB R1, R3 6D

P006 BNZ 004H 0C 04 00

P009 OUT R2 E2

P00A HLT F0

以上汇编机器代码:D0D1D2D3526D0C0400E2F0

模型机4中的BZC指令格式为:

00001100 XXXXXXXX XXXXXXXX

所以入口地址 600H

微指令流程:

M600-M601-M602-M418-M420Z=1 M421

微指令做以下修改:

M418 FC20 FFFFFC (判C=1改为判Z=1

M420 F801 3FC62D (跳转地址赋给PC

M421 F801 FFFFED (空操作,跳001

SUB M6C2 F801 F16E6D (A-B-C 改为A-B)

ADD M6A2 F801 F1666D(A+B+C 改为A+B)

方法二、乘法流程(判0操作数)

汇编指令 机器指令

SUB R1,R3 6D

JC TAG2 0C T2

ADD R2,R0 52

JZ TAG2

TAG1 SUB R1,R3

JC TAG2

ADD R2,R0

JUMP TAG1

TAG2 OUT R2

HLT

微指令修改:

JC(BZC):0C

M418 FC20 FFFFF4 (判C=1

M420 F801 FFFFED C~=1, 空操作, NEXT001

M421 F801 3FC62D C=1,跳转地址赋给PC

JZ(STA):00

M400 FC20 FFFFFC (判Z=1

M420 F801 FFFFED Z~=1, 空操作, NEXT001

M421 F801 3FC62D Z=1,跳转地址赋给PC

SUB M6C2 F801 F16E6D (A-B-C 改为A-B)

ADD M6A2 F801 F1666D(A+B+C 改为A+B)

亦可以将inc命令改为dec命令,只需将

M720F8F95F

M721: F0D64D

本文来源:https://www.2haoxitong.net/k/doc/56e03ed3581b6bd97f19eae0.html

《2015年计机二151《计组实验》微控题目.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式