lc3计算机汇编程序报告.docxVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lc3计算机汇编程序报告 计算机学院软件工程专业 计算机组织与结构实验报告1 学生姓名: 李 荣 学生班级: 软件工程122002班 学生学号: 202120210209 2021年 5月 27日 一、实验目的 1. 掌握LC-3 指令集结构(ISA)。 2. 学会使用LC-3Edit、Simulator软件工具。 3. 熟悉LC-3机器语言调试和运行的方法。 二、实验内容 1. 实验环境 Windows 7 x86、软件(LC-3 Edit、Simulator) 2. 问题描述 1)没有乘法指令的乘法。编写一个程序使得R4跟R5中包含的两个正整数相乘,并且将其结果存到R2中。 2)一列数的求和。编写一个程序将存储在从x3100开始的10个内存单元的数值加在一起,并将结果存放在R1中。 3)查看内存区域是否包含数字5。编写一个程序来检查从x3100开始的10个内存单元中是否包含有数值5,如果有则设置R0 = 1,如果没有则设置 R0 = 0。 4)查找字中的第一个1。编写一个程序来检查一个内存单元的内容(即某个地址中存放的一个字),逐个bit的检查(从左至右)第一个出现“1”的bit位置,并将该bit在该字(word)中的位置保存在R1中。 三、分析与实现 1.分析 1)、没有乘法指令的乘法 该程序是先通过AND指令将R2清零,再通过ADD指令将R2与R5相加的和存到R2中,此时R5减1(ADD指令),通过分支指令来判断R5是否大于0,如果是就跳转到x3201执行程序,以此循环执行,直到不满足条件执行下条指令 ,即停机指令。 2)、一列数的求和 a.初始化。先通过AND指令将累计和变量R1清零,再通过AND、 ADD指令将R4初始化为10(相当于一个计数器),再通过LD指令将R2初始化为数据列的起始地址x3100。 b.循环体。从x3004开始,每循环一次,就有一个数值被装入R3(通过LDR指令);随后通过ADD指令将R2增量(x3005),R3的内容被加入R1(x3006),R1即为运行和存放处,计数器R4减1;接着通过分支指令来判断R4是否为正,若为正就跳到x3004执行,开始下一轮循环。 c.停机。10次之后,R4的内容变为0,P位也相应为0,跳转不再 发生,程序结束。 3)、查看内存区域是否包含数字5。 a.初始化。x3000-x3005这六条指令,通过AND、ADD指令将R0、 R1、R3分别初始化为1、-5、10。 b.位于x3006的指令初始化R4的内容为测试内存的起始地址x3100;位于x3007的指令将x3100的内容装入R2。 c.判断(x3008-x3009)。判断R2的内容是否是5的方法,是价格 R2和-5相加,如果结果为0就跳转到x300F,意味着发现了5的存在,此时R0的初始值为1。 d.准备下一轮测试。位于x300A的指令增量R4,准备装入下一个 被测试内容;x300B将R3减1,即还有多少数值未被测试;x300C借助R4做指针,真正装入下一个数值至R2;x300D则根据R3的内容是否为0,决定是否跳回x3008重新此过程。若R3 = 0,则测试结束,所以同时还要设置R0 = 0(x300E),随后程序结束(x300F)。 4)、查找字中的第一个1。 a.初始化。前两条指令将R1初始化,先AND(清零)后ADD,完成对R1赋值。在此R1被初始化为15。x3002通过LDI指令向R2装入x3100内存的内容。 b.第一次测试。x3003测试的是该数值的最高位是否为1(等同于判断该数是否为负),如果是1则跳转至x3008,而此时R1 = 15,若是0则不跳转,R1减1,指向下一个被测试的bit位。 c.左移和第二次测试。X3005让R2和自己相加,结果存回R2,等 价于R2乘2,又等价于将R2的内容左移一位,这样bit[14]的内容也就被左移到了bit[15],使得条件跳转指令可以通过判断该数是否为负,来判断该位的内容。然后,由x3006执行对bit[14]的内容判断。而如果该位是1,则跳转至程序结束且R1 = 14,。如果该位是0 ,则继续x3007的执行,x3007无条件的跳转至x3004,重复测试过程。 d.下一次测试。循环体的工作就是每次完成一个bit的测试,即R1减

文档评论(0)

软件开发 + 关注
官方认证
服务提供商

十余年的软件行业耕耘,可承接各类需求

认证主体深圳鼎云文化有限公司
IP属地广东
统一社会信用代码/组织机构代码
91440300MA5G24KH9F

1亿VIP精品文档

相关文档