计算机系统实验一 LC-3机器码编程试验

Posted 上山打老虎D

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机系统实验一 LC-3机器码编程试验相关的知识,希望对你有一定的参考价值。

计算机系统(1)实验一 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. 安装LC-3仿真器
  2. 利用LC3EDIT输入机器代码程序(0/1模式)并创建可执行目标程序。
    编译窗口中输入以下代码,并进行编译。可以得到相应的obj文件

  3. 利用LC3EDIT输入机器代码程序(hex模式)并创建可执行目标程序。
    编译窗口中输入以下代码,并进行编译。可以得到相应的obj文件

  1. 利用LC3EDIT输入汇编代码程序并创建可执行目标程序。
  2. 利用LC-3 Simulator仿真器运用对应目标程序。
    EX1.obj


EX2.obj

EX3.obj

  1. 学习和掌握断点,单步执行等调试方法和手段。
    (1)学习和掌握断点
    可以像下图一样设置断点,并观察相应各个参数的数值
    左侧蓝色箭头表示程序的执行位置,红色的圆点表示程序断点

    当运行至断点处时,会以对话框的形式提示

    (2)单步执行调试




    也可使用“Step Out”按钮,使程序快速移动到断点处
  2. example1(P15)

    打开Simulator并进行运行

点击赋值按钮对相应数据进行赋值

并进行运行

我们发现,R2的值并不是15,而是20.说明一定某处发生错误,下面,我们通过debug来找出这个错误并进行修正

通过这个按钮一步一步进行,我们发现,多执行了一次加R4单元中内容的操作,因此,这就是问题所在,回到源文件中进行修改。将下图中“011”改成“001”

再次运行程序

此时,我们得到了正确的答案。

  1. example2(P20)
    在LC3Edit中打入如下代码并保存成asm文件

    在Simulator中进行运行后,并依此输入3,4发现并未得到想要的结果(3+4=7),则程序一定某处出现问题,因此进行debug

    对程序的执行进行分析,我们不难发现程序在进行相加时并不是单纯的数值(int型)相加,而是对ASCII码进行相加,因此会发生问题,解决办法就是,与“0”的ASCII码进行相减,方能得到正确答案

实验结论:

通过本次实验对LC3的安装使用,编码,编译和debug的实验,我掌握了处理器仿真工具LC-3软件的安装和使用方法,学会了在LC-3仿真环境下编辑程序和转换成可执行目标程序的方法,学会了在LC-3仿真环境下运行和调试程序的方法。

以上是关于计算机系统实验一 LC-3机器码编程试验的主要内容,如果未能解决你的问题,请参考以下文章

计算机系统实验三 汇编语言试验

计算机系统实验四 LC-3简单游戏设计

ICS计算系统概论实验—Lab2-LC3实现斐波那契数列(变型式)

计算机系统——数据表示试验

汇编试验一:查看CPU和内存,用机器码指令和汇编指令编程

武理四年课程实验导航