MIPS汇编-字符串(ASCII)指令

dar*_*sky 2 c string assembly ascii mips

我正在用C编写用于MIPS汇编的汇编程序(因此它将MIPS汇编转换为机器代码)。

现在,MIPS具有三种不同的指令:R型,I型和J型。但是,在中.data。部分,我们可能会有类似的内容message: .asciiz "hello world"。在这种情况下,我们如何将ASCII字符串转换为MIPS的机器代码?

谢谢

Iva*_*van 6

ASCII文本不会转换为机器代码。它通过Wikipedia上的格式存储。

ASCII码表

MIPS使用此格式存储ASCII字符串。至于.asciiz特别,它是字符串加上NUL字符。因此,根据工作表,A是41十六进制的,只是0100 0001二进制的。但是请不要忘记NUL字符,因此:0100 0001 0000

存储字符串时,我会采用Mars MIPS模拟器的想法,只是在内存中的已知地址处启动内存部分,然后对message设置到内存中该位置的标签进行任何引用。

请注意,数据部分中的所有内容都不是R型,I型或J型。这只是原始数据。