ฉันกำลังเขียนโปรแกรมประกอบ armv7 ซึ่งค้นหาตัวหารร่วมมาก (gcd) ของจำนวนเต็มสองตัว ทุกอย่างทำงานได้ดียกเว้นฟังก์ชันขึ้นบรรทัดใหม่ เมื่อฉันประกอบและรันโปรแกรม มันจะไม่พิมพ์บรรทัดใหม่ มีเพียงจำนวนเต็มในบรรทัดเดียว ข้อเสนอแนะใด ๆ เกี่ยวกับวิธีที่ฉันจะแก้ไขได้อย่างไร
.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
และmysub3
เป็นชื่อที่ค่อนข้างไร้ประโยชน์ - person fuz   schedule 26.11.2017