MARS-MIPS编程Hello world快速入门

找一找资料,尝试MIPS编程。

1///先上代码( PPT )

How to use SYSCALL system services

Step 1. Load the service number in register $v0.

Step 2. Load argument values, if any, in $a0, $a1, $a2, or $f12 as specified.

Step 3. Issue the SYSCALL instruction.

Step 4. Retrieve return values, if any, from result registers as specified.

==========================================

Example: 在屏幕显示$t0+100的值

li  $v0, 1

li  $t0, 15

add $a0, $t0, 100

syscall

运行结果:

各寄存器的值:

编译成机器代码:

MIPS中的寄存器说明:
MIPS Architecture and Assembly Language Overview

Table of Available Services 系统调用表

把对应的系统服务编码放进$v0中,再syscall就可以调用相应的系统服务。

编码1就是打印$a0中存储的数据。

(为什么是a0呢?因为上面的表格说了a0-a3是用来存储参数argument的)

4号服务就是打印字符串。

10号服务就是退出程序。

##li:load immediate

格式:li register_destination, value

##la:load address

格式:la register_destination, address
MIPS程序结构: %1.Data Declarations

在.data指令之后:将程序将使用的数据存储在RAM中。

%2.Code

在.text指令后:包括程序代码,其中程序代码的起点是main:指令,并用syscall结束程序。

%3.Comments

注释不用说了 ~注释符号是#

2///运行hello_world

编译成机器代码:

MARS运行结果:

发表评论

电子邮件地址不会被公开。 必填项已用*标注