LC-3 中断实验 (深大计系1实验5)

前言

这个实验不是很难,比上一个四子棋实验简单多了。。。

实验内容

这个实验需要实现LC-3的中断操作,实现也比较简单。我们编写用户程序持续输出,然后通过键盘触发中断,中断程序的触发,打断用户程序的输出,表示发生中断了,然后中断结束,继续输出。

用户程序

编写用户程序,交替输出字符串,达到刷屏效果,输出字符串之后使用循环来延迟一会,然后继续输出

ICS   ICS   ICS   ICS   ICS   ICS
   ICS   ICS   ICS   ICS   ICS
ICS   ICS   ICS   ICS   ICS   ICS
   ICS   ICS   ICS   ICS   ICS
ICS   ICS   ICS   ICS   ICS   ICS
   ICS   ICS   ICS   ICS   ICS
ICS   ICS   ICS   ICS   ICS   ICS
   ICS   ICS   ICS   ICS   ICS

中断服务程序

编写中断服务函数响应键盘中断,输出10次键盘键入的字符。

我们会看到主程序(用户程序)在连续输出字符串的同时,会插入我们按下的键,输出10次,然后又开始连续输出字符串

要求 不能使用 TRAP 这些伪指令,需要从 KBDR 读取数据,然后发送到DDR 寄存器显示,关于输入输出之前有提到【LC-3指令集 字符的输入与输出

这里大概说一下,就是轮询检测DSR的最高位是否为1,是则表示可以显示,我们将KBDR的数据写入DDR,以显示数据。

使用以下代码完成一个最基本的输出程序

LOOP	LDI R0 DSR
		BRzp LOOP	; 轮询等待DSR最高位置1表示可以显示了

DSR		.FILL 0xFE04
DDR		.FILL 0xFE06

注意事项

循环输出字符串需要在中间加入循环延时,循环25000次即可

配置中断

  1. 分配栈空间&#x
  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值