实验目的:
掌握处理仿真工具LC-3软件的安装和使用方法。
学会在LC-3仿真环境下编辑程序和转换为可执行目标程序的方法。
学会在LC-3仿真环境下运行和调试程序的方法。
实验内容与实验要求:
安装LC-3仿真器
利用LC3EDIT输入机器代码程序(0/1模式)并创建可执行目标程序。
利用LC3EDIT输入机器代码程序(hex模式)并创建可执行目标程序。
利用LC3EDIT输入汇编代码程序并创建可执行目标程序。
利用LC-3 Simulator仿真器运用对应目标程序。
学习和掌握断点,单步执行等调试方法和手段。
实验步骤
安装LC-3仿真器
利用LC3EDIT输入机器代码程序(0/1模式)并创建可执行目标程序。
编译窗口中输入以下代码,并进行编译。可以得到相应的obj文件
利用LC3EDIT输入机器代码程序(hex模式)并创建可执行目标程序。
编译窗口中输入以下代码,并进行编译。可以得到相应的obj文件
利用LC3EDIT输入汇编代码程序并创建可执行目标程序。
利用LC-3 Simulator仿真器运用对应目标程序。
EX1.obj
EX2.obj
EX3.obj
学习和掌握断点,单步执行等调试方法和手段。
(1)学习和掌握断点
可以像下图一样设置断点,并观察相应各个参数的数值
左侧蓝色箭头表示程序的执行位置,红色的圆点表示程序断点
当运行至断点处时,会以对话框的形式提示
(2)单步执行调试
也可使用“Step Out”按钮,使程序快速移动到断点处
example1(P15)
打开Simulator并进行运行
点击赋值按钮对相应数据进行赋值
并进行运行
我们发现,R2的值并不是15,而是20.说明一定某处发生错误,下面,我们通过debug来找出这个错误并进行修正
通过这个按钮一步一步进行,我们发现,多执行了一次加R4单元中内容的操作,因此,这就是问题所在,回到源文件中进行修改。将下图中“011”改成“001”
再次运行程序
此时,我们得到了正确的答案。
example2(P20)
在LC3Edit中打入如下代码并保存成asm文件
在Simulator中进行运行后,并依此输入3,4发现并未得到想要的结果(3+4=7),则程序一定某处出现问题,因此进行debug
对程序的执行进行分析,我们不难发现程序在进行相加时并不是单纯的数值(int型)相加,而是对ASCII码进行相加,因此会发生问题,解决办法就是,与“0”的ASCII码进行相减,方能得到正确答案
实验结论:
通过本次实验对LC3的安装使用,编码,编译和debug的实验,我掌握了处理器仿真工具LC-3软件的安装和使用方法,学会了在LC-3仿真环境下编辑程序和转换成可执行目标程序的方法,学会了在LC-3仿真环境下运行和调试程序的方法。