首页 06MIPS指令系统(3)_665108544

06MIPS指令系统(3)_665108544

举报
开通vip

06MIPS指令系统(3)_665108544 1 微机原理 (计算机原理) 第6讲 MIPS指令系统(3) 2清华大学电子工程系,马洪兵,2011年秋 MIPS模拟器 MIPS汇编语言语法 MIPS汇编程序实例 第6讲MIPS指令系统(3) 3清华大学电子工程系,马洪兵,2011年秋 SPIM SPIM是主要的MIPS模拟器,能够运行和调试 MIPS汇编语言程序 SPIM支持Uinx、Windows等多个操作系统平 台 http://spimsimulator.sourceforge.net/ 4清华大学电子工程系,马洪兵,20...

06MIPS指令系统(3)_665108544
1 微机原理 (计算机原理) 第6讲 MIPS指令系统(3) 2清华大学电子 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 系,马洪兵,2011年秋 MIPS模拟器 MIPS汇编语言语法 MIPS汇编程序实例 第6讲MIPS指令系统(3) 3清华大学电子工程系,马洪兵,2011年秋 SPIM SPIM是主要的MIPS模拟器,能够运行和调试 MIPS汇编语言程序 SPIM支持Uinx、Windows等多个操作系统平 台 http://spimsimulator.sourceforge.net/ 4清华大学电子工程系,马洪兵,2011年秋 SPIM 寄存器窗口 正文段 数据与堆栈段 SPIM消息 5清华大学电子工程系,马洪兵,2011年秋 MARS MARS 是MIPS Assembler and Runtime Simulator (MIPS汇编器和运行时模拟器)的缩 写 能够运行和调试MIPS汇编语言程序 MARS采用Java开发,跨平台 http://courses.missouristate.edu/KenVollm ar/MARS/ 6清华大学电子工程系,马洪兵,2011年秋 MIPS模拟器 7清华大学电子工程系,马洪兵,2011年秋 系统调用 MIPS模拟器通过系统调用指令(syscall) 提供 了一组类似操作系统的服务 调用方法: 将系统调用代码装入$v0(寄存器编号2)寄存器 将参数(如果有)装入$a0~$a3(寄存器编号4~7) 或$f12寄存器 Syscall 返回值保存在$v0或$f0寄存器中 8清华大学电子工程系,马洪兵,2011年秋 系统调用 代码 系统调用 参数 结果 1 print integer $a0 2 print float $f12 3 print double $f12 4 print string $a0 5 read integer integer in $v0 6 read float float in $f0 7 read double double in $f0 8 read string $a0=buffer, $a1=length 9 sbrk $a0=amount address in $v0 10 exit 9清华大学电子工程系,马洪兵,2011年秋 系统调用 代码 系统调用 参数 结果 11 print char $a0 12 read char char in $v0 13 open $a0=file name(string), $a1=flags, $a2=mode file descriptor (fd) in $v0 14 read $a0 =fd, $a1=buffer, $a2=length num chars read in $v0 15 write $a0 =fd, $a1=buffer, $a2=length num chars write in $v0 16 close $a0 =fd 17 exit2 $a0=result 10清华大学电子工程系,马洪兵,2011年秋 Hello world .text main: la $a0, str li $v0, 4 syscall # print string li $v0, 10 syscall # exit .data .align 2 str: .asciiz "Hello world." 11清华大学电子工程系,马洪兵,2011年秋 内存布局 内存最低端保留,其上是正文段(代 码段) 正文段之上是静态数据段,存放全 局常量和其他静态数据 静态数据段之上为分配动态数据的 堆 栈由用户内存区的高地址端开始, 栈空间由高地址向低地址增长 各部分地址由软件规定,并非 MIPS体系结构的一部分 栈 动态数据(堆) 静态数据 正文 (指令) 保留 系统内存区 12清华大学电子工程系,马洪兵,2011年秋 Hello world 栈 动态数据(堆) 静态数据 正文 (指令) 保留 系统内存区 .text main: la $a0, str li $v0, 4 syscall li $v0, 10 syscall .data .align 2 str: .asciiz "Hello world." 7fffeffc 10040000 10010000 00400000 MARS约定 13清华大学电子工程系,马洪兵,2011年秋 MIPS模拟器 MIPS汇编语言语法 MIPS汇编程序实例 第6讲MIPS指令系统(3) 14清华大学电子工程系,马洪兵,2011年秋 数据类型 整型数据:支持十进制、十六进制、八 进制,表示法和C语言相同 十进制数前不可以有无效的0 八进制数加前导0 十六进制加前导0x 15清华大学电子工程系,马洪兵,2011年秋 数据类型 浮点型数据:表示方法 <尾符>d1[.d2][e|E<阶符>d3] 其中,d1、d2、d3都是十进制数 例如: 36.25e-2 16清华大学电子工程系,马洪兵,2011年秋 数据类型 字符串:表示形式与C语言类似,以双引 号为标志 遵守C语言的“\”使用规则: 换行——\n 制表符——\t 引号——\” 17清华大学电子工程系,马洪兵,2011年秋 标识符 由字母、数字、下划线(_)、点(.)构成, 但不能以数字开头 指令助记符等保留字不能作标识符 18清华大学电子工程系,马洪兵,2011年秋 MIPS汇编程序语句 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 指令与伪指令语句 [Label:] Arg1, [Arg2], [Arg3] [#comment] 汇编命令(directive)语句 [Label:] .Directive [arg1], [arg2], . . . [#comment] Label:为可选的标号,#comment为可 选的注释 19清华大学电子工程系,马洪兵,2011年秋 伪指令 伪指令(Pseudo-instructions)是为编程 方便而对指令集进行的扩展,并非真正 的指令。例如,ble、move等 编程时,伪指令可以和指令一样在程序 中使用,在汇编时伪指令将被等效的指 令取代 20清华大学电子工程系,马洪兵,2011年秋 常用的伪指令 move——寄存器到寄存器的数据传送 move $t2, $t4 add $t2, $zero, $t4 li——装入立即数,不同立即数的可能汇编成 不同的指令序列 li $t1, 40 addi $t1, $zero, 40 li $t1, -4000000 lui $at, 0xffc2 ori $t1, $at, 0xf700 21清华大学电子工程系,马洪兵,2011年秋 常用的伪指令 la——装入地址 la $t4, 0x1000056c lui $at, 0x1000 ori $t4, $at, 0x056c 22清华大学电子工程系,马洪兵,2011年秋 常用的伪指令 分支伪指令 beqz rsrc, label——当寄存器rsrc=0时分支 bnez rsrc, label——当寄存器rsrc0时分支 beqz $s1, label beq $s1, $zero, label 23清华大学电子工程系,马洪兵,2011年秋 常用的伪指令 分支伪指令 bge(u) rsrc1, src2, label——rsrc1>=src2时分支 bgt(u) rsrc1, src2, label——rsrc1>src2时分支 ble(u) rsrc1, src2, label——rsrc1<=src2时分支 blt(u) rsrc1, src2, label——rsrc1 # 在内存中存放字符串 .asciiz # 在内存中存放NULL结束的 # 字符串 .word w1, w2, . . . , wn # 在内存中存放n个字 .half h1, h2, . . . , hn # 在内存中存放n个半字 .byte b1, b2, . . . , bn # 在内存中存放n个字节 26清华大学电子工程系,马洪兵,2011年秋 汇编命令 .double d1, d2, …, dn # 在内存中存放n个双精度 # 浮点数 .float f1, f2, …, fn # 在内存中存放n个单精度 # 浮点数 .global sym # 指示sym为全局标记 27清华大学电子工程系,马洪兵,2011年秋 宏 宏(macro)提供了一种对经常使用的指令序列 进行命名的机制。使用宏时,程序员只需在源 程序中定义一次,就可以多次调用 宏与子程序相似——对频繁使用的指令序列进 行命名 宏与子程序的区别 子程序调用由处理器完成,宏指令调用在汇编 过程中由汇编器完成宏展开 子程序调用可以减小目标程序的大小,宏指令 调用不能 28清华大学电子工程系,马洪兵,2011年秋 宏 宏可以有参数 .macro print_string($arg) la $a0, $arg li $v0, 4 syscall # print string .end_macro 29清华大学电子工程系,马洪兵,2011年秋 MIPS模拟器 MIPS汇编语言语法 MIPS汇编程序实例 第6讲MIPS指令系统(3) 30清华大学电子工程系,马洪兵,2011年秋 MIPS汇编程序实例 从键盘输入两个数,计算并输出这两个数的和 .data str1: .asciiz "Enter 2 numbers:" str2: .asciiz "The sum is " .text main: li $v0, 4 la $a0, str1 syscall li $v0, 5 syscall add $t0, $v0, $zero li $v0, 5 syscall add $t1, $v0, $zero li $v0, 4 la $a0, str2 syscall li $v0, 1 add $a0, $t1, $t0 syscall 31清华大学电子工程系,马洪兵,2011年秋 MIPS汇编程序实例 计算12+22+…+1002 .text main: li $t0, 1 li $t8, 0 loop: mul $t7, $t0, $t0 add $t8, $t8, $t7 addi $t0, $t0, 1 ble $t0, 100, loop la $a0, str li $v0, 4 syscall li $v0, 1 move $a0, $t8 syscall li $v0, 10 syscall .data .align 2 str: .asciiz "The sum of square from 1 to 100 is " 32清华大学电子工程系,马洪兵,2011年秋 MIPS汇编程序实例 计算n! (n=6) .data .align 2 str: .asciiz "The factorial is " .text main: la $a0, str li $v0, 4 syscall li $a0, 6 jal fact move $a0, $v0 li $v0, 1 syscall li $v0, 10 syscall fact: addi $sp, $sp, -8 sw $ra, 4($sp) sw $a0, 0($sp) slti $t0, $a0, 1 beq $t0, $zero, L1 addi $v0, $zero, 1 addi $sp, $sp, 8 jr $ra L1: addi $a0, $a0, -1 jal fact lw $a0, 0($sp) lw $ra, 4($sp) addi $sp, $sp, 8 mul $v0, $a0, $v0 jr $ra 33清华大学电子工程系,马洪兵,2011年秋 小结 MIPS模拟器 MIPS汇编语言语法 MIPS汇编程序实例 34清华大学电子工程系,马洪兵,2011年秋 进一步学习的建议 2nd Edition:3.9、附录A 3rd Edition:2.10、附录A 35清华大学电子工程系,马洪兵,2011年秋 课后作业 2.37、2.38 36清华大学电子工程系,马洪兵,2011年秋 实验1:MIPS汇编语言程序设计 题目:A.6、A.7、A.8、A.9、A.10 实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 要求: 设计思路说明 算法说明(必要时可以包含 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图) 程序 清单 安全隐患排查清单下载最新工程量清单计量规则下载程序清单下载家私清单下载送货清单下载 (应当包含适当的注释) 运行结果
本文档为【06MIPS指令系统(3)_665108544】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_625212
暂无简介~
格式:pdf
大小:1MB
软件:PDF阅读器
页数:0
分类:其他高等教育
上传时间:2013-04-12
浏览量:10