Сборка, прочитанная из сегментации файла

    .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 каждый раз. Он распечатывает его правильно, а затем вылетает в самом конце.

0 ответов

Другие вопросы по тегам