[英]How to create an Assembly Mips program which counts binary 1 in an ASCII string
[英]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.