Нелегальное обучение на ассемблере (ARMv8) - PullRequest
0 голосов
/ 27 сентября 2018

Так что мне нужно написать программу (изображение выше), которая находит максимум функции в области -6 <= x <= 5, и если я пытаюсь запустить или отладить (gdb) программу, которую выводит терминалсообщение о недопустимой инструкции, в частности "в top ()".Я новичок в ассемблере и, по общему признанию, борюсь с ним в целом, поэтому любая помощь будет оценена. </p>

Спасибо

Мне пришлось избавиться от комментариев, так что это может бытьнемного сбивает с толку сейчас

.global main

mov x19, -6 // integer that gets inerated from -6 to 5 (x)


//the following integers are used as the constants for each term in the function 
y = -5x^3 - 31x^2 + 4x + 31

mov x24, -5 
mov x25, -31
mov x26, 4
mov x27, 0 
b main 

main:
        cmp x19,5 
        b.le loop 




loop:
        mul x20, x19, x19 
        mul x20, x20, x19 

        mul x20, x20, x24 

        mul x21, x19, x19 
        mul x21, x21, x25 

        mul x22, x19, x26 

        add x23, x20, x21 
        add x23, x23, x22 

        add x23, x23, 31  

        cmp x23, x27 
        b.gt top 

        add x19, x19, 1  

        b main 

top:
        mov x27, x23 
...