Создание пустого массива для передачи в функцию. Использование сборки рычага - PullRequest
0 голосов
/ 25 мая 2020

Здравствуйте, я пытаюсь создать массив из 3 индексов, который будет заполнен функцией, в которую я его передаю.

@ r4 contains length
sub sp, sp, #12     @ allocate 3 indexes for NEW array
mov r3, #4       @ r3 = 4
mul sp, sp, r3   @ sp = (# array elements)*4
mov r0, r4       @ r0 = r4 = length parameter
mov r1, sp       @ r1 = (sp*index number) len[0] parameter
bl convert2pixel @ convert2pixel(length, len) 

Здесь что-то не так. потому что я продолжаю segfaulting, когда я перехожу к convert2pixel

Convert2Pixel C Код:


void convert2pixel(int length, unsigned char len[3])
{
        // byte3-byte2-byte1
    unsigned char byte1, byte2, byte3;

        byte1 = (unsigned char)(length % 256);
        byte2 = (unsigned char)((length >> 8) % 256);
        byte3 = (unsigned char)((length >> 16) % 256);

        len[0] = byte1;
        len[1] = byte2;
        len[2] = byte3;
}
...