微程序实验

一、实验目的和要求:

实验目的

利用计算机控制系统,模拟实现子程序调用,理解程序调用的实现过程和实现原理。理解微程序控制器的工作原理。

实验要求

1.编写主程序、子程序并进行汇编形成机器码程序;

2.单微步运行程序,详细记录程序运行过程,理解指令与微程序的关系。

二、实验仪器设备(包括软硬件环境、配置):

硬件:pc,存储器,键盘,鼠标,微处理器…

软件:操作系统win10,仿真应用软件

三、实验过程(具体实验步骤,现象、数据):

(一)实验内容编写主程序、子程序,单微步运行调试程序。

(二)实验过程

1.编汇编语言

MOV A,#00H

LOOP:

CALL INC A

JMP LOOP

INC A:   

ADD A,#2 

RET      //中断返回

END

MOV A,#08H

LOOP:

CALL INC A

JMP LOOP

INC A:   

SUB A,#2 

RET      

END

2.将程序汇编成机器码,反汇编窗口显示出程序地址、机器

码、EM程序。

程序地址

机器码

反汇编指令

指令说明

00

7C00

MOV A,#00H

立即数00H存入累加器A

02

BC02

CALL 06

调用子程序

04

AC02

JMP 02

跳转02地址,循环执行

06

1C02

ADD A,#02H

累加器A加2

08

CC

RET

子程序返回(中断返回)

程序地址

机器码

反汇编指令

指令说明

00

7C00

MOV A,#08H

立即数08H存入累加器A

02

BC06

CALL 06

调用子程序

04

AC02

JMP 02

跳转02地址,循环执行

06

3C02

SUB A,#02H

累加器A减2

08

CC

RET

子程序返回(中断返回)

3.执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PCuPC如何工作。观察在调用子程序和从子程序返回时,堆栈的工作情况。

单微步运行程序,运行结果:

序号(单步)

PC

IR

ST

A

uPC

uM

1

00

00

00

00

00

CBFFFF

2

00

00

00

00

00

CBFFFF

3

01

7C

00

00

7C

C7FFF7

4

02

7C

00

00

7D

CBFFFF

5

03

BC

00

00

BC

EF7F7F

6

03

BC

03

00

BD

FFEF7F

7

06

BC

03

00

BE

D6BFFF

8

07

BC

03

00

BF

CBFFFF

9

08

1C

03

00

1C

C7FFEF

10

08

1C

03

02

1D

FFFE90

11

09

1C

03

02

1E

CBFFFF

PC

IR

ST

A

uPC

uM

1

00

00

00

00

00

CBFFFF

2

00

00

00

00

00

CBFFFF

3

01

7C

00

08

7C

D7FFF7

4

02

7C

00

08

7D

CBFFFF

5

03

BC

00

08

BC

EF7F7F

6

03

BC

03

08

BD

FFEF7F

7

06

BC

03

08

BE

D6BFFF

8

07

BC

03

08

BF

CBFFFF

9

08

3C

03

08

3C

C7FFEF

10

08

3C

03

06

3D

FFFE91

11

09

3C

03

06

3E

CBFFFF

 四、实验分析:

通过此次试验我利用计算机控制系统,模拟实现子程序调用,理解程序调用的实现过程和实现原理理解微程序控制器的工作原理。指令与微指令的关系是每一条机器指令由若干微指令组成的微程序来解释执行。微程序入口地址是由机器指令的操作码字段即LOOP字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址并送入微地址寄存器形成的该实验是通过RET来实现子程序的调用和返回的

3.列举一条指令对应的微程序;

4.子程序调用和返回如何实现?Pc->ST,st->pc

5.若多重调用如何实现?(设想,与栈st的特点有关)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值