![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ICS
文章平均质量分 72
之墨_
这个作者很懒,什么都没留下…
展开
-
LC-3—MIO、MMIO、Caller Save、Callee Save
【代码】LC-3—MIO、MMIO。MIO和MMIO是不同的处理机I/O技术。MIO是具有专用指令的一种I/O技术,用于从外部设备读取和写入数据,而MMIO是一种使用内存映射I/O(MMIO)技术的I/O技术,它将硬件设备与内存空间映射,使处理器可以使用普通的读写指令来读取和写入硬件设备。在LC3中,MIO指令是针对特定的I/O设备的,比如IN和OUT指令,它们可以直接与I/O设备进行交互,而MMIO指令则是将I/O设备映射到内存,以便使用LD和ST指令来读写内存,而不需要使用IN和OUT指令。原创 2023-02-27 20:16:27 · 503 阅读 · 0 评论 -
ICS计算系统概论实验—Lab2-LC3实现斐波那契数列(变型式)
程序需要执行跳转时,下述语句并不会跳转至存储语句并结束程序,而是不停的执行,没有按预期的结束程序;的状态是否和预期的有差别,由此我发现此处。调试完毕后,将代码整理如下:用于网站在线。,程序也就会一直执行下去从而出现错误!评测结果如下,正常运行,输出正确。指令并没有写错,于是我分析执行时。指令之前,这样当前判断状态才会是。过程中遇到的主要问题有:当。即设置状态码,所以应该要将。原创 2022-11-26 02:47:04 · 536 阅读 · 0 评论 -
计算系统概论实验Lab 6——C重写Lab1-5
第三个实验是统计给定字符串中最长的重复子串长度,在原汇编实现时,我使用的是双指针比较两个字符,在c中实现更便捷,在循环中使用两个变量i、j,其中i在前j在后,每次比较两者是否相同,使用res和temp记录当前重复字符的个数,由于最少一个相同字符,所以初始化为1,初始使用res记录,直到出现不同的字符,此时res置为1,判断两者的较大值,temp记录两者的较大值,最后循环结束,取两者中较大值即为结果。使用test文件评测结果如下,正常运行,输出正确。,所以后面对其的操作应该要使用。原创 2023-02-09 21:22:18 · 339 阅读 · 0 评论 -
LC-3 汇编语言 指令集
条件码,LC-3有三个位寄存器:N、Z和P,即负数(negative)、0(zero)和正数(positive),当任意寄存器被写入时,根据写入的是负数、0还是正数分别设置相应的条件码为1,其他为0。程序无条件跳转到R7的内容所指定的地址处,而R7的内容是指向子程序调用指令后的指令地址,实际上就是从子程序跳回来。BaseR的内容作为子程序的入口地址,程序进入子程序,增量PC保存在R7中(参见RET指令,用于从子程序跳回来)。所指向的内容作为地址,将SR的内容存进此地址所指向的内存单元。原创 2023-02-08 14:40:21 · 1837 阅读 · 0 评论 -
ICS计算系统概论LC3汇编实验Lab5—中断、递归解决汉诺塔问题
如果键入的字符是十进制数字,则中断服务例程将从屏幕上的新行开始打印“是十进制数字”。以下是汉诺塔的递归部分程序,使用栈完成递归功能,计算递推式,联系到书本上斐波那契的递归计算过程,此过程与之十分相似,首先将调用者的返回地址压栈,再将参数压栈,最后压入一个参数用来检验n = 0,1时的基本情况,如果计算到了基本情况,说明递归已到最大深度,此时跳转至DONE,否则还需要继续计算下一层n-1,使用R1寄存器保存H(n)计算结果,每次计算都是对其加上一定值,当递归完成后得到的结果就是保存在R1中的最终结果。原创 2022-12-27 18:04:23 · 1273 阅读 · 0 评论 -
LC3汇编 递归解决汉诺塔问题—输出移动过程
【代码】LC3汇编 递归解决汉诺塔问题—输出移动过程。原创 2022-12-27 14:10:37 · 736 阅读 · 0 评论 -
LC3汇编——循环+递归 解决斐波那契问题
【代码】LC3汇编——递归解决斐波那契问题。原创 2022-12-27 13:41:42 · 565 阅读 · 0 评论 -
ICS计算系统概论LC3汇编实验Lab4—排序和计数 Sort and Count
以上程序段实现了统计A和B的个数,只对从x500F开始往下的8个数统计,首先统计8个数中,大于等于85分的个数和大于等于75分的个数,得到这两个数后,并且大于等于75的个数必然比85的更多或者至少一样多,所以可以分成两种情况来分析,分别是>=85分的人数>=4个以及>=85分的人数=75的个数和85一样以及>=75的个数比85的更多。过程中遇到的主要问题就是:上述的函数返回的问题,最开始没有意识到RET的地址默认是存储在中R7的,所以导致程序不能正常运行。原创 2022-12-11 23:09:13 · 279 阅读 · 0 评论