我一直在尝试按照这些说明来制作ASCII二进制十六进制转换器,但是在执行第3步及以后的操作时遇到了麻烦。 (不允许使用syscall 1和34)。希望对此有所帮助。
2。打印用户输入。
3。将ASCII字符串转换为带符号扩展的整数值,并将其存储在$ s0中。
4。将符号扩展的整数值转换为ASCII字符串,该字符串将其显示为十六进制数字。将ASCII字符串打印到控制台。
5。将符号扩展的整数值转换为ASCII字符串,该字符串将其显示为十进制数字。将ASCII字符串打印到控制台。
到目前为止的当前代码
.data
prompt1: .asciiz "You entered the binary number: \n"
prompt2: .asciiz "\nThe hex representation of the sign-extended number is: \n"
prompt3: .asciiz "\nThe number in decimal is: \n"
.text
main:
li $v0,4
la $a0,prompt1 # Insert value
syscall
lw $a1 ($a1) # print argument
la $a0 ($a1)
li $v0 4
syscall
la $a0,prompt2 # Insert value
syscall
signextend:
sll $a0, $a0, 24
sra $a0, $a0, 24
li $v0, 4
la $a0,
syscall
我现在正在尝试打印出符号扩展部分。