LC-3 机器码编程实验Ⅱ

实验目的

1. 掌握处理仿真工具LC-3软件的安装和使用方法。

2. 学会在LC-3仿真环境下编辑程序和转换为可执行目标程序的方法。

3. 学会在LC-3仿真环境下运行和调试程序的方法。

实验内容与实验要求:

1. 安装LC-3仿真器

2. 利用LC3EDIT输入机器代码程序(0/1模式)并创建可执行目标程序。

3. 利用LC3EDIT输入机器代码程序(hex模式)并创建可执行目标程序。

4. 利用LC3EDIT输入汇编代码程序并创建可执行目标程序。

5. 利用LC-3 Simulator仿真器运用对应目标程序。

6. 学习和掌握断点,单步执行等调试方法和手段。

样例实验步骤

1.分析问题,需要计算一个16位的字中有多少位是‘1’,该如何进行计算?取舍?

2.得知解决办法后,进行相关前期准备

3.得到最终的二进制代码格式

4.样例运行

输入: Xffff

实验结论 

        本次实验的目的要求利用LC-3的机器代码计算一个16位的字中有多少位是‘1’,,据分析,可通过左移相加联合条件码BR判断来实现。

      通过本次实验对LC-3机器代码的编写,让我对处理器仿真工具LC-3软件的编码和使用方法的掌握更加深刻,并且学会了在LC-3仿真环境下如何编写自己想要的程序,并实现程序运行的方法。

最终完整代码

0011 0000 0000 0000     ; 从地址0X3000开始 
0110 0011 0000 0000  	; LDR,R1,R4,offset=0  
;通过基址偏移寻址,将储存在R4的内存地址赋给R1,方便访存x3500
0101 0100 1010 0000 	; AND R2 R2 0,将R2初始化,用于计数1的个数
0001 0010 0110 0000  	; ADD R1 R1 0,再次提出R1,为下一步比较作铺垫
0000 0100 0000 0100  	; BRz PC+4 ,比较R1的大小是否为0
;是则PC+4,循环结束,否则继续进行
0000 0010 0000 0001     ; BRp PC+1   比较R1的正负性
0001 0100 1010 0001     ; ADD R2 R2 #1  R2++
0001 0010 0100 0001     ; ADD R1 R1 R1  R1*=2
0000 1111 1111 1011     ; 无条件跳回前5步 
0111 0101 0000 0001     ; STR R2,R4,offset=1 

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值