0
    .data
pn:     .string "input.bin"
string: .string "%f\n"

buf_size = 8
alloc = -(16+buf_size)&-16
dealloc = -alloc
buf_s = 16

    .text
    .balign 4
    .global main
main:   stp x29,x30,[sp,alloc]!
    mov x29,sp

    mov w0,-100
    ldr x1,=pn
    mov w2,0
    mov w3,0
    mov x8,56
    svc 0
    cmp w0,0
    mov w19,w0
    mov w24,w19
    mov x20,0
    mov x21,8
    b.ge open_ok
open_ok:

    mov w0,w19
    add x1,x29,x21
    mov x2,8
    mov x8,63
    svc 0

    ldr d0,[x1]
    ldr x0,=string
    bl  printf
    add x21,x21,8

    cmp x20,199
    add x20,x20,1
    b.lt  open_ok

    mov w0,w24
    mov x8,57
    svc 0

    mov x1,x0
    ldr x0,=string
    bl  printf

    ldp x29,x30,[sp],dealloc
    ret

我正在尝试编写一个从文件“input.bin”读取并显示文件内容的程序。它正确读取文件并以应有的方式显示数据,但最终由于分段错误而崩溃。不知道发生了什么。输入包含数字 0.5 到 100,每次递增 0.5。它正确打印出来,然后在最后崩溃。

4

0 回答 0