汇编语言
文章平均质量分 62
之墨_
这个作者很懒,什么都没留下…
展开
-
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 · 630 阅读 · 0 评论 -
X86 AT&T常用寄存器及其操作指令
操作这些寄存器的指令有:mov、add、sub、inc、dec、cmp、xchg、push、pop、lea、jmp、call等。esp寄存器:当我们需要访问堆栈帧中的变量时,可以使用esp寄存器来获取堆栈帧的基址,以便能够正确地访问堆栈帧中的变量。ebp寄存器:当我们需要调用一个函数时,可以使用ebp寄存器来获取函数的参数,以便能够正确地传递参数给函数。eax寄存器:当我们需要调用一个函数时,可以将函数的参数存储在eax寄存器中,以便函数能够正确地接收参数。ebx寄存器:当我们需要访问一个数组时,可以原创 2023-02-25 19:46:16 · 1518 阅读 · 0 评论 -
编译原理—栈式存储分配、有参函数的活动记录、参数传递与x86汇编
编译原理—参数传递与x86汇编;参数分别是整型、指针、引用时的参数传递及其汇编代码、栈式存储分配原创 2023-02-09 16:19:37 · 666 阅读 · 0 评论 -
x86汇编程序基础(AT&T语法)
x86汇编程序基础(AT&T语法)、编译原理—x86汇编指令原创 2023-02-08 19:36:10 · 132 阅读 · 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 · 2629 阅读 · 0 评论 -
ICS计算系统概论LC3汇编实验Lab5—中断、递归解决汉诺塔问题
如果键入的字符是十进制数字,则中断服务例程将从屏幕上的新行开始打印“是十进制数字”。以下是汉诺塔的递归部分程序,使用栈完成递归功能,计算递推式,联系到书本上斐波那契的递归计算过程,此过程与之十分相似,首先将调用者的返回地址压栈,再将参数压栈,最后压入一个参数用来检验n = 0,1时的基本情况,如果计算到了基本情况,说明递归已到最大深度,此时跳转至DONE,否则还需要继续计算下一层n-1,使用R1寄存器保存H(n)计算结果,每次计算都是对其加上一定值,当递归完成后得到的结果就是保存在R1中的最终结果。原创 2022-12-27 18:04:23 · 1321 阅读 · 0 评论 -
LC3汇编 递归解决汉诺塔问题—输出移动过程
【代码】LC3汇编 递归解决汉诺塔问题—输出移动过程。原创 2022-12-27 14:10:37 · 763 阅读 · 0 评论 -
LC3汇编——循环+递归 解决斐波那契问题
【代码】LC3汇编——递归解决斐波那契问题。原创 2022-12-27 13:41:42 · 670 阅读 · 0 评论 -
ICS计算系统概论实验3—LC3汇编代码实现最长重复子字符串Longest-duplicate-substring
要记录最长的重复数量,我们对字符串进行分析,可以看出,任意一个字符串,我们取其具有连续相同子串的模式,在任一时刻可以看作三部分,如xxxyzzz、xxxyzyzwww等,即两部分连续重复子串间隔一部分不连续的子串,即任意时刻我们最多只需要两个变量分别保存最长长度以及当前统计的连续重复子串长度,当这个相同连续被打破即出现不同字符时,比较一下两个长度,取其较大值。分别输出10 以及 13,结果如下图所示,两个样例最长的子串都应该是连续的10个k,两个样例的区别仅在于最后的ddd,然而输出结果却不同。原创 2022-12-03 01:26:28 · 702 阅读 · 1 评论