MIPS汇编语言学习笔记15:Introduction to Functions

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

本文已收录到:MIPS汇编语言学习笔记 专题

程序功能:通过函数实现打印输出字符“Hello World!”。

 

原视频:

https://www.bilibili.com/video/BV19J411y7pA?p=15

 

讲解视频:

 

代码:

.data
	message:	.asciiz "Hello World!\n"
.text
	main:
		jal display	# $pc <- display代码地址,$ra <- pc+4,也就是第七行代码地址
		# 宣告本程序执行完毕,exit退出
		li $v0, 10
		syscall 
	display:
		la $a0, message
		li $v0, 4
		syscall 
		jr $ra		# $pc <- $ra

 

作者: 高志远

高志远,23岁,男生,毕业于上海杉达学院电子商务系。

《MIPS汇编语言学习笔记15:Introduction to Functions》有5条评论

  1. 提示:博客中的视频如果播放卡顿可以在阿里云盘上下载/在线看视频:
    「2021-03-21-12-57-07.mp4」https://www.aliyundrive.com/s/EvtXoQnizVA
    点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

    1. Blog用的香港线路的云主机,境外访问效果确实不好,我稍后把视频上传到阿里云盘上。 :taikaixin:

  2. 感谢讲解,这里清晰了很多,确实和C比较像,不过比C更细致就是了。这里注意到相邻的指令地址相差是4,之前都没有在意。。这个是内置的吗?

    1. 晚上好,“相邻的指令地址相差是4”是因为在32位MIPS体系的CPU中,每一条指令都是固定长度。这是MIPS设计之初就确定的事情——MIPS采用定长指令。
      又因为32位MIPS CPU每一条指令占用32比特位,即 4 字节(1字节 = 8比特位),所以在指令存储器中每相邻的两条MIPS指令相差4字节,这也就解释了为什么“相邻的指令地址相差是4”。
      可以点击这篇文章,里面有附图,可以解释一条指令占用32比特位:https://gaozhiyuan.net/computer/cpu/mips-logic-shifting-instruction.html

发表评论

邮箱地址不会被公开。