本文已收录于 MIPS汇编语言学习笔记 系列,共计 27 篇,本篇是第 15 篇

原视频: https://www.bilibili.com/video/BV19J411y7pA?t=49&p=17   程序功能: 通过函数传递参数过程,理解和使用堆栈(push和pop)。 可参考图:   视频讲解: 代码: .text main: # 四个参数 g …

阅读全文 »

当把一个低精度的数据类型转成一个高精度的数据类型时,必然会涉及到如何扩展位数的问题。这里有两种解决方案: 补零扩展:填充一定位数的0。 补符号位扩展:填充一定位数的符号位(非负数填充0,负数填充1)。 对于无符号类型(相当于都是非负数)与有符号类型中的非负数部分,这两种方法没有区别,都是填充0; 对 …

阅读全文 »

reg1_i[31]、reg2_i[31]分别两个数的符号位,result[31]表示运算结果的符号位,overflow是溢出位。 当 reg1_i[31] = reg2_i[31] = 0(两数同为正)且 result[31] = 1(结果为负)时,产生负溢出; 当 reg1_i[31] = re …

阅读全文 »

.S文件,会进行预处理、汇编等操作。 .s文件,在后期阶段不在进行预处理操作,只有汇编操作。 .asm文件,等同于.s文件。因为汇编本质上是纯文本的,不管用什么后缀都可以。所以一般dos和windows下以.asm为主,linux下以.s为主。   参考文献:汇编文件后缀 .s 与 .S_ …

阅读全文 »

[title]负数的概念[/title] 1 + x = 0 二进制: 0001 + x = 0000 显然,只有让结果向前进位,才会有0000这个结果。 得出,x = 1110 + 1 = 1111 即,1111是二进制的 -1 这里用到的是溢出的思想,例如:加法器硬件第5位进位不存在。 取模,同 …

阅读全文 »

modelsim这个软件还真是奇怪,右键卸载会跳转到控制面板,控制面板里又找不到这个软件,又不敢直接删除目录。。。 最后,发现。原来是需要在控制面板中找到名为“Mentor Graphics Products”的软件,右键: 在这里就可以看到电脑里全部版本的modelsim软件了,勾选后,点next …

阅读全文 »

本文已收录于 MIPS汇编语言学习笔记 系列,共计 27 篇,本篇是第 14 篇

原视频: https://www.bilibili.com/video/BV19J411y7pA?p=16   代码功能: 本节讲述的是带返回值(return values)的函数调用。具体是实现一个函数可以将两数相加并返回给main函数打印输出。   视频讲解: 参考:MIPS …

阅读全文 »

本文已收录于 MIPS汇编语言学习笔记 系列,共计 27 篇,本篇是第 12 篇

代码功能:计算两个整数相除,打印输出。   与上一节MIPS汇编语言学习笔记13:Dividing Integers part 1不同,第13节采用 div $t1, $t2, $t3的方式进行的计算,后将结果放入$t1寄存器中。 本节使用 div $t1, $t2,将结果放入预先指定好的 …

阅读全文 »

本文已收录于 MIPS汇编语言学习笔记 系列,共计 27 篇,本篇是第 11 篇

程序功能:计算两个整数相除的结果,并打印输出。   代码提示:参考MIPS汇编语言学习笔记03:print HelloWorld中的MIPS pdf文档,里面有MIPS指令。经查询发现使用div指令即可。随即写出代码。   代码: .data intA: .word 8 intB …

阅读全文 »