一、实验目的与要求
(1)分析和理解实验指定的问题。
(2)利用LC-3的机器代码设计实现相关程序。
(3)通过LC-3仿真器调试和运行相关程序并得到正确的结果。
二、实验内容与方法
利用LC-3的机器代码计算一个16位的字中有多少位是‘1’。
程序从x3000开始。
需计算的字存储在x3100。
计算的结果存储在x3101。
三、实验步骤与过程
(依照实验内容,逐条撰写实验过程与实验所得结果:包括程序总体设计,核心数据结构及算法流程,调试过程。请附上核心代码,及注意格式排版的美观。实验提交时,以上为评分依据,请不删除本行)
程序总体设计及算法流程
问题是计算一个16位的字中有多少位是‘1’,初步思考一下,解决这个问题需要进行计数,判断是不是‘1’,以及一个16次的循环。做出流程图如图1所示。
用R0作为计数器,R1控制循环的次数,R2存储需要判断的字。
先用AND指令让R0和R1赋值为0,接着需要让R1的值为16,因为ADD指令的立即数寻址模式imm5只能表示-16到15,所以不能直接把16赋值给R1,我的方法是先把8赋值给R1,即用ADD指令让R0=R0+8,之后用ADD指令让
2022-04-20 18:01:10
843KB
计算机系统