汇编中的la_mips汇编指令学习

文件:mips汇编指令基础.pdf.rar大小:155KB下载:mips的32个寄存器MIPS comes with 32 general purpose registers named $0. . . $31Registers also have symbolic names reflecting their conventional8 use:$0 $zero constant 0$1 $...
摘要由CSDN通过智能技术生成

文件:mips汇编指令基础.pdf.rar

大小:155KB

下载:mips的32个寄存器

MIPS comes with 32 general purpose registers named $0. . . $31

Registers also have symbolic names reflecting their conventional8 use:

$0  $zero constant 0

$1  $at used by assembler

$2  $v0 function result

$3  $v1 function result

$4  $a0 argument 1

$5  $a1 argument 2

$6  $a2 argument 3

$7  $a3 argument 4

$8  $t0 unsaved temporary

$9  $t1 unsaved temporary

$10 $t2 unsaved temporary

$11 $t3 unsaved temporary

$12 $t4 unsaved temporary

$13 $t5 unsaved temporary

$14 $t6 unsaved temporary

$15 $t7 unsaved temporary

$16 $s0 saved temporary

$17 $s1 saved temporary

$18 $s2 saved temporary

$19 $s3 saved temporary

$20 $s4 saved temporary

$21 $s5 saved temporary

$22 $s6 saved temporary

$23 $s7 saved temporary

$24 $t8 unsaved temporary

$25 $t9 unsaved temporary

$26 $k0 reserved for OS kernel

$27 $k1 reserved for OS kernel

$28 $gp pointer to global data

$29 $sp stack pointer

$30 $fp frame pointer

$31 $ra return address寄存器号            符号名            用途

0                 始终为0     看起来象浪费,其实很有用

1                 at          保留给汇编器使用

2-3               v0,v1       函数返回值

4-7               a0-a3       前头几个函数参数

8-15              t0-t7       临时寄存器,子过程可以不保存就使用

24-25             t8,t9       同上

16-23             s0-s7       寄存器变量,子过程要使用它必须先保存

然后在退出前恢复以保留调用者需要的值

26,27             k0,k1       保留给异常处理函数使用

28                gp          global pointer;用于方便存取全局或者静态变量

29                sp          stack pointer

30                s8/fp       第9个寄存器变量;子过程可以用它做frame pointer

31                 ra         返回地址

硬件上这些寄存器并没有区别(除了0号),区分的目的是为了不同的编译器产生的代码可以通用

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

lui 中i表示加载常数

li r, c:加载16bit或32bit常数到r

lui r, c:加载16bit常数到r的高16位load constant halfword c into upper halfword of register r

(translation of pseudo instructions)

伪指令                      翻译的实际指令

not r, s        ==>         nor r, s, $0

move r, s       ==>         or r, s, $0

li r, c         ==>         ori r, $0, c     load immediate (c: 16 bit constant)

li r, 0xABCDEF00==>         lui $at, 0xABCD和ori r, $at, 0xEF00 (c: 32 bit constant)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值