繁体   English   中英

MIPS将二进制转换为ASCII字符串

[英]MIPS Convert binary to ascii string

给我一个32位二进制数字,并告诉我将其转换为mips指令,整数和四字符ASCII字符串。 我转换为dec和struction,没有问题,但是ascii字符串给我带来了麻烦。 我有一个提供ascii值的表,但无法从该数字中得到四个字符的单词:

0000 0010 0001 0001 0100 0000 0010 0000

我真的很想如果有人可以简要说明如何转换,则该数字应返回4个字符,这些字符应具有一定的含义。 我不需要任何代码,只需手动转换即可。

要查看我是否对这些问题有误解,请参见此处的全部内容:

32位字没有内在含义,可以用许多同样有效的方式表示。 将以下内容解码为二进制表示形式,指令,正整数和四个字符的ASCII字符串。

0000 0010 0001 0001 0100 0000 0010 0000

ASCII字符串?

指令? 加$ t0,$ s0,$ s1

正整数? 34684960

二进制代表 给出了我输入的指令/ int。

据我了解,您被告知将每个8位都转换为一个ASCII字符,但是前2个字节是“不可打印的”(2是“文本开始”的ASCII,17是“设备控制1”的ASCII) ),所以如果输出出现问题,这不是您的错,只需更改数字以查看其是否工作正常。

FE:

0100 0001 0100 1100 0100 0101 0101 1000

通过简单的编码,我们就可以知道这些位代表什么(剧透警报:这是我的名字:))

.text
main:

li  $v0, 5
syscall


andi    $t1, $v0, 0xFF000000
srl $t1, $t1, 24

andi    $t2, $v0, 0x00FF0000
srl $t2, $t2, 16

andi    $t3, $v0, 0x0000FF00
srl $t3, $t3, 8

andi    $t4, $v0, 0x000000FF

li  $v0, 11

la  $a0, ($t1)
syscall

la  $a0, ($t2)
syscall

la  $a0, ($t3)
syscall

la  $a0, ($t4)
syscall


li  $v0, 10
syscall

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM