다른 수학 계산을하는 MIPS MARS 어셈블리를 사용하는 프로그램을 작성 중이며 왜 .data 섹션의 문자열 값이 개별 행 대신 프로그램 시작 부분에 블록으로 인쇄되는지 이해하는 데 문제가 있습니다. 올바른 문 옆에 값을 출력하는 데 문제가 있습니다.MIPS MARS의 개별 줄 대신 한 줄에 다른 줄의 문자열 인쇄가 나타나는 이유는 무엇입니까?
.data
NL: .asciiz "\n" #NL=new line varible kinda name
addition: .ascii "The value of a + b = \n"
subtraction: .ascii "The value of a - b = \n "
prob_3: .ascii "The value of (a + b) - 8 = \n"
prob_4: .ascii "The value of (a + b) - (c + d) = \n"
prob_5: .ascii "The value of ((a + b) + (d - c) + 17 = \n"
.text
li $s0, 8
li $s1, 8
li $s2, 16
li $s3, 8
la $a0, addition
li $v0, 4
syscall
add $t1, $s0, $s1
li $v0, 1
add $a0, $t1, $zero
syscall
la $a0, NL
li $v0, 4
syscall
la $a0, subtraction
li $v0, 4
syscall
sub $t2, $s0, $s1
li $v0, 1
sub $a0, $t2, $zero
syscall
la $a0, NL
li $v0, 4
syscall
la $a0, prob_3
li $v0, 4
syscall
subi $t3, $t1, 8
li $v0, 1
sub $a0, $t3, $zero
syscall
la $a0, NL
li $v0, 4
syscall
la $a0, prob_4
li $v0, 4
syscall
add $t4, $s2, $s3
sub $t5, $t1, $t4
li $v0, 1
sub $a0, $t5, $zero
syscall
la $a0, NL
li $v0, 4
syscall
la $a0, prob_5
li $v0, 4
syscall
sub $t6, $s3, $s2
add $t7, $t1, $t6
addi $t8, $t7, 17
li $v0, 1
add $a0, $t8, $zero
syscall
결과 내가 갖는 :
The value of a + b =
The value of a - b =
The value of (a + b) - 8 =
The value of (a + b) - (c + d) =
The value of ((a + b) + (d - c) + 17 =
16
The value of a - b =
The value of (a + b) - 8 =
The value of (a + b) - (c + d) =
The value of ((a + b) + (d - c) + 17 =
0
The value of (a + b) - 8 =
The value of (a + b) - (c + d) =
The value of ((a + b) + (d - c) + 17 =
8
The value of (a + b) - (c + d) =
The value of ((a + b) + (d - c) + 17 =
-8
The value of ((a + b) + (d - c) + 17 =
25
와 내가 얻으려고 결과 :
가The value of a + b = 16
The value of a - b = 0
The value of (a + b) - 8 = 8
The value of (a + b) - (c + d) = -8
The value of ((a + b) + (d - c) + 17 = 25
누군가가 나에게이 문제를 알아내는 데 도움이 수 있습니까?
당신에게 alot을 도움을 너무 많이 주셔서 감사합니다! –