1
整数を入力し、バイナリとヘックスの両方で表現したいと思っています。次に、ビット12,13,14、および15を$ a0の最下位ビットに移動し、出力をバイナリと16進数として表現します。例えば、整数1006460についてMIPSで整数をマスキングする(素早く簡単)
.data
enter: .asciiz "Please enter your integer:\n"
binaryI: .asciiz "\nHere is the input in binary: "
hexI: .asciiz "\n\nHere is the input in hexadecimal: "
binaryO: .asciiz "\n\nHere is the output in binary: "
hexO: .asciiz "\n\nHere is the output in hexadecimal: "
.text
prompt:
li $v0, 4
la $a0, enter
syscall
li $v0, 5
syscall
add $s2, $0, $v0
li $v0, 4
la $a0, binaryI
syscall
li $v0, 35
move $a0, $s2
syscall
li $v0, 4
la $a0, hexI
syscall
li $v0, 34
move $a0, $s2
syscall
addi $t0, $0, 7
srl $s0, $s2, 12
and $s0, $s0, $t0
li $v0, 4
la $a0, hexO
syscall
li $v0, 35
move $a0, $s0
syscall
li $v0, 4
la $a0, binaryO
syscall
li $v0, 34
move $a0, $s0
syscall
li $v0, 1
add $a0, $0, $s0
syscall
li $v0, 10
syscall
完全に入力し、六角出力作業が、バイナリ出力が最後に余分5を持っている:ここでは私のプログラムです。私が手にエラーがこれです:
ここではバイナリで出力されます。この余分な5は、出力の最後にあることを引き起こしている可能性が何0x000000055
?