【计算机系统】LC-3仿真器安装和使用

Alex_Shen
2021-05-17 / 0 评论 / 0 点赞 / 92 阅读 / 1,226 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-04-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

代码:Github仓库地址

实验目的:

  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. 安装LC-3仿真器

打开安装包,解压到指定文件夹
在这里插入图片描述在这里插入图片描述

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

输入二进制机器代码程序,并以“addnums.bin”为文件名保存
在这里插入图片描述
点击 在这里插入图片描述创建.obj文件
在这里插入图片描述

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

输入汇编语言机器代码程序,并以“addnums.asm”为文件名保存

在这里插入图片描述
点击在这里插入图片描述创建.obj文件
在这里插入图片描述

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

打开Simulate.exe,点击在这里插入图片描述打开addnums.obj,data.obj。
点击x3000行,点击在这里插入图片描述,设置PC为x3000
在x3009行添加断点(双击灰点)
点击在这里插入图片描述运行程序
图1:添加obj文件 图2:addnums.obj 图3:data.obj
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
已经添加了10个数字在你的程序的数据段中,理论上R=x8235即当程序停止在断点处时,你将会看到的R1的值。最终结果如下图,与理论值系统,程序运行正确。
在这里插入图片描述

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

Example1:调试这个不适用乘法指令的乘法程序
Step1:输入机器代码程序(0/1模式)并创建可执行目标程序。添加程序。
在这里插入图片描述
Step2:在x3204设置断点,双击R4,R5并将R4设为6,R3设为3。并运行程序。
在这里插入图片描述
Step3:运行结果如下,发现R2=24,不等于6*3=18,程序错误开始调试。

在这里插入图片描述
Step4.1:
方法一:
双击R5重新设置为3,PC设置为x3200,并点击在这里插入图片描述进入单步调试,发现进入第三次循环后未跳出循环,开始第四次循环导致错误。所以错误语句是x3204的结束条件。
方法二:
点击在这里插入图片描述,进入页面在x3203处添加断点(或者双击x3204灰点),点击在这里插入图片描述,发现进入第三次循环后未跳出循环,开始第四次循环导致错误。所以错误语句是x3204的结束条件。
在这里插入图片描述
Step4.2:
发现错误代码x3204,应修改为:0000 001 111111101。
修改方法一:进入LC3Edit.exe,修改multiply.bin。
此方法可以保证永久修改,即下次打开程序仍为正确代码
修改方法二:双击x3204行,将Value值改为x0201.
此种方法仅对此次装载有效,下次装载时,该bug仍然存在,因此还要修改源代码
在这里插入图片描述
Step5:调试修改完成,重复Step2,运行程序。发现R2=6*3=18,与理论值相同。
在这里插入图片描述

0

评论区