QtSpim简明教程

spim是一款用于编写x86汇编的编辑器软件,最新的版本更名为qtspim

软件下载地址: https://sourceforge.net/projects/spimsimulator/files/

 QtSpim简明教程_第1张图片

 1号箭头:

                Regs和Int Regs [16]选项卡:     显示 整型(16位)、浮点型寄存器;

 2箭头  :       

                    右侧    Data  Text 选项卡 :

                            text segment :显示指令

                            data segment:显示数据

  3箭头  :

                    

                     底部小的窗口:Qtspim的运行信息

 

 

一、 程序

         QtSpim简明教程_第2张图片

            (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 标签页进行修改 

                                     QtSpim简明教程_第3张图片

 

        分别为 用户信息、内核信息、注释、指令值; 打勾代表在窗口中显示该项信息

 

(3)data segment       对data标签页进行修改

        QtSpim简明教程_第4张图片

         设定在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 文件

     QtSpim简明教程_第5张图片

    2.运行hello_world.s文件

    

                                               点击图标以运行、暂停、停止  或 点击 simulator — run以运行;

                                              

     3.观察输出结果

                            若没有出现console窗口,可点击 window — 勾选console  ,以显示结果

                            QtSpim简明教程_第6张图片

      4. 观察寄存器值

                        在左侧 Int Regs[16]窗口可观察寄存器的值

                    QtSpim简明教程_第7张图片

                        更改寄存器值以何种进制显示:   

                                                        空白处右键,可分别选择 Binary(二进制),Decimal(十进制), Hex (十六进制)


(3)调试程序

                    1. 每点击 Simulator—  Single Step一次,程序便从上一次执行处向下单步执行

                    2.  F10

                    3  点击图标   

        注:qtspim不支持设置断点

                每单步执行一次,PC中的值便会增加,增加的值取决于指令的长度。


(4)参考

《计算机组成与设计:硬件/软件接口》第四版



                                                                  

                


 

 

 

 

你可能感兴趣的:(随笔,SPIM,汇编语言,计算机组成)