Saya sedang mengerjakan program perakitan armv7 yang menemukan pembagi persekutuan terbesar (gcd) dari dua bilangan bulat. Semuanya berfungsi dengan baik kecuali untuk fungsi baris baru. Ketika saya merakit dan menjalankan program, program tidak mencetak baris baru apa pun, hanya bilangan bulat dalam satu baris. Ada saran tentang bagaimana saya bisa memperbaikinya?
.global _start
_start:
mov r2, #24 @first set of integers
mov r4, #18
bl mysub1
bl mysub2
bl mysub3
mov r2, #78 @second set of integers
mov r4, #34
bl mysub1
bl mysub2
bl mysub3
mov r2, #99 @third set of integers
mov r4, #36
bl mysub1
bl mysub2
bl mysub3
_exit:
mov r7, #1
swi 0
mysub1: @subroutine to find gcd
cmp r2, r4
beq done
bgt greater
blt less
greater:
sub r2, r2, r4
bal mysub1
less:
sub r4, r4, r2
bal mysub1
done:
bx lr
mysub2: @subroutine to convert gcd result to ascii value
add r4, #48
ldr r9, =store
str r4, [r9]
mov r7, #4 @print out a newline
mov r0, #1
mov r2, #1
ldr r1, =newline
swi 0
bx lr
mysub3: @subroutine to print out the ascii value
mov r7, #4
mov r0, #1
mov r2, #2
ldr r1, =store
swi 0
bx lr
.data
store:
.space 2
newline:
.ascii "\n"
mysub1
,mysub2
, danmysub3
adalah nama yang tidak berguna. - person fuz   schedule 26.11.2017