spim是一款用于编写x86汇编的编辑器软件,最新的版本更名为qtspim
软件下载地址: https://sourceforge.net/projects/spimsimulator/files/
1号箭头:
Regs和Int Regs [16]选项卡: 显示 整型(16位)、浮点型寄存器;
2号箭头 :
右侧 Data Text 选项卡 :
text segment :显示指令
data segment:显示数据
3号箭头 :
底部小的窗口:Qtspim的运行信息
(1)加载汇编文件
file- load file可加载以 .s 后缀的汇编文件;
汇编文件的编写,可以使用普通的记事本
(2)Reinitialize and Load File
初始化并加载最后一次的文件;用于debug
(3)运行程序:
1
2simulator - run
可在console看到结果,window将console打上勾;
(1)单步运行
1 simulator – single step
2
(2)设置断点
指令上右键 setbreakpoint
点击run 会运行到断点;
(1)pause 再点击run 会继续运行
(2)停止 再点击run 会从头开始运行;
(1)registers 决定以何种进制显示寄存器中信息
(2)text segment 对text 标签页进行修改
分别为 用户信息、内核信息、注释、指令值; 打勾代表在窗口中显示该项信息
(3)data segment 对data标签页进行修改
设定在data标签页 显示哪些内容、并以何种进制显示;
Simulator –settings
出现两个标签页
(1)Qtspim
可设置字体、背景颜色、显示最近文件的个数等
(2)MIPS
1 bare machine 是qtspim模拟 精简的spim处理器
2 accept pseudo instruction
是否接受伪代码
3 enable delayed branches:
启用分支延迟;
4 enable delayed loads:
启用加载延迟
5 enable mapped IO
启用映射I/O
(3)快捷设置:
Simple machine : 对应普通人的设置;
Bare machine : 对应真实的MIPS处理器
(1)编写汇编程序
##
## print “hello world”
## programed by:stevie zou
##
#########################################
# text segment #
#########################################
.text
.globl main
main:
la $a0,str #$a0储存要打印字符的地址
li $v0, 4 #为syscall读取整数值
syscall #system call service 4 打印字符串
li $v0,10
syscall #system call service 10 退出
#########################################
# data segment #
#########################################
.data
str: .asciiz "hello world/n"
##
############end of file
可用记事本编写,并保存为hello_world.s
(2)加载并编译运行
1.加载hello_world.s 文件
2.运行hello_world.s文件
点击图标以运行、暂停、停止 或 点击 simulator — run以运行;
3.观察输出结果
若没有出现console窗口,可点击 window — 勾选console ,以显示结果
4. 观察寄存器值
在左侧 Int Regs[16]窗口可观察寄存器的值
更改寄存器值以何种进制显示:
空白处右键,可分别选择 Binary(二进制),Decimal(十进制), Hex (十六进制)
(3)调试程序
1. 每点击 Simulator— Single Step一次,程序便从上一次执行处向下单步执行
2. F10
3 点击图标
注:qtspim不支持设置断点
每单步执行一次,PC中的值便会增加,增加的值取决于指令的长度。
(4)参考
《计算机组成与设计:硬件/软件接口》第四版