正在加载图片...
版权所有南京大学计算机科学与技术系许畅等2022春季版 表7.数据段中常见的storage_.ype。 storage_type 描述 .ascii str 存储str于内存中,但不以null结尾。 .asciiz str 存储str于内存中,并以nul结尾。 .byte bl,b2,bn 连续存储n个字节(8bits位)的值于内存中。 half h1,h2,.hn 连续存储n个半字(16bits位)的值于内存中。 .word wl,w2,.wn 连续存储n个字(32bits位)的值于内存中。 .space n 在当前段分配n个字节的空间。 从图中我们可以看到用户代码区已经存在一部分代码了,该代码的主要作用是布置初始运 行环境并调用名为main的函数。此时由于我们设有载入任何包含main标签的代码,如果我们 运行这段代码,会发现运行到jal main那一行就会出错。现在我们将一段包含main标签以及声 明main标签为全局标签的“globl main”语句的MPS32代码(例如前面样例1的输出)保存 为后缀名为.s或者.asm的文件。单击QtSPIM.工具栏上的按钮来选择我们保存好的文件,此时 就可以看到文件中的代码已经被载入到QtSPIM的代码区,再运行这段代码就能在Console窗 口观察到运行结果了。你也可以使用QtSPIM工具栏上的按钮或按F10快捷键来单步执行该代 码。 使用SPIM Simulator的一个好处就是我们不需要千预内存的分配,它会帮我们自动划分内 存中的代码区、数据区和栈区。SPIM Simulator具体采用大端(Big Endian,即数据从高位字 节到低位字节在内存中按照从低地址到高地址的顺序依次存储)还是小端(Little Endian,即 数据从低位字节到高位字节在内存中按照从低地址到高地址的顺序依次存储)的存储方式取决 于你机器的处理器的存储方式(由于大多数台式机或笔记本都使用了ntel x86体系结构的处理 器,不出意外的话你会发现自己的SPIM Simulator是小端机)。 在代码区上方的选项卡处切换到“Data”选项卡,就可以看到当前内存中的数据信息, 如图18所示。单击菜单栏上的Simulator→Run parameters,在弹出的对话框(如图19所示) 中可以设置程序运行的起始地址以及传给main函数的命令行参数。 5.2.2MIPS32汇编代码书写 SPIM Simulator不仅是一个MIPS32的模拟器,也是一个MPS32的汇编器。想要让SPIM Simulator正常模拟,你首先需要为它准备符合格式的MIPS32汇编代码文本文件。非操作系统 内核的汇编代码文件必须以.s或者.sm作为文件的后缀名。汇编代码由若干代码段和若干数据 段组成,其中代码段以.text开头,数据段以.data开头。汇编代码中的注释以#开头。 102版权所有 南京大学计算机科学与技术系 许畅等 2022春季版 102 从图中我们可以看到用户代码区已经存在一部分代码了,该代码的主要作用是布置初始运 行环境并调用名为main的函数。此时由于我们没有载入任何包含main标签的代码,如果我们 运行这段代码,会发现运行到jal main那一行就会出错。现在我们将一段包含main标签以及声 明main标签为全局标签的“.globl main”语句的MIPS32代码(例如前面样例1的输出)保存 为后缀名为.s或者.asm的文件。单击QtSPIM工具栏上的按钮来选择我们保存好的文件,此时 就可以看到文件中的代码已经被载入到QtSPIM的代码区,再运行这段代码就能在Console窗 口观察到运行结果了。你也可以使用QtSPIM工具栏上的按钮或按F10快捷键来单步执行该代 码。 使用SPIM Simulator的一个好处就是我们不需要干预内存的分配,它会帮我们自动划分内 存中的代码区、数据区和栈区。SPIM Simulator具体采用大端(Big Endian,即数据从高位字 节到低位字节在内存中按照从低地址到高地址的顺序依次存储)还是小端(Little Endian,即 数据从低位字节到高位字节在内存中按照从低地址到高地址的顺序依次存储)的存储方式取决 于你机器的处理器的存储方式(由于大多数台式机或笔记本都使用了Intel x86体系结构的处理 器,不出意外的话你会发现自己的SPIM Simulator是小端机)。 在代码区上方的选项卡处切换到“Data”选项卡,就可以看到当前内存中的数据信息, 如图18所示。单击菜单栏上的Simulator → Run parameters,在弹出的对话框(如图19所示) 中可以设置程序运行的起始地址以及传给main函数的命令行参数。 5.2.2 MIPS32汇编代码书写 SPIM Simulator不仅是一个MIPS32的模拟器,也是一个MIPS32的汇编器。想要让SPIM Simulator正常模拟,你首先需要为它准备符合格式的MIPS32汇编代码文本文件。非操作系统 内核的汇编代码文件必须以.s或者.asm作为文件的后缀名。汇编代码由若干代码段和若干数据 段组成,其中代码段以.text开头,数据段以.data开头。汇编代码中的注释以#开头。 表7. 数据段中常见的storage_type。 storage_type 描述 .ascii str 存储str于内存中,但不以null结尾。 .asciiz str 存储str于内存中,并以null结尾。 .byte b1, b2, …, bn 连续存储n个字节(8bits位)的值于内存中。 .half h1, h2, …, hn 连续存储n个半字(16bits位)的值于内存中。 .word w1, w2, …, wn 连续存储n个字(32bits位)的值于内存中。 .space n 在当前段分配n个字节的空间
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有