计算机系统(1)实验二 LC-3机器码编程实验
实验目的
1.分析和理解试验指定的需解决问题。
2.利用LC-3的机器代码设计实现相关程序。
3.通过LC-3仿真器调试和运行相关程序并得到正确的结果。
实验内容与实验要求
利用LC-3的机器代码计算一个16位的字中有多少位是“1”,程序从x3000开始,需计算的字存储在x4000(内存编辑提前写入),计算的结果存储在x4001
实验步骤
1.编写程序代码。
2.运行程序代码,在x4000输入数据,运行后查看R3结果是否正确,在x4001处查看R3的值是否已被存入。输入其它数据检测结果,实验结果正确,实验完成。
图一
图二
图三
图四
图五
图六
图七
程序代码及注释
0011 0000 0000 0000;将程序的起始位置设在x3000
0101 011 011 1 00000;R3清零,放1的个数
1010 001 000 0 01100;地址x300E用来存放x4000的地址,将数据存入R1
0101 010 010 1 00000;R2清零
0001 010 010 1 01111;
0001 010 010 1 00001;R2加16
0000 010 0000 00110;判断R2是否等于0,是则跳到x300C
0001 010 010 1 11111;R2-1
0001 001 001 1 00000;R1
0000 011 0000 00001;判断R1是否小于0,否则跳到x300A
0001 011 011 1 00001;R3+1
0001 001 001 0 00 001;R1=R1+R1
0000 111 111111001;跳回x3005
0010 100 000000001;R4放x4000的地址
0111 011 100 000001;将R3的值写入x4001
0100 0000 0000 0000;x4000的地址
实验结论
通过本次实验我进一步熟练使用LC-3Edit和Simulate,对LC-3的指令有了更深入的理解。