2016-10-15 19 views
-1

Я загружаю несколько значений char в программе armv7, используя команду vldm, , но все четыре значения загружают один регистр s, но мне нужно развернуть эти значения в регистре с плавающей запятой (q0).Как загрузить несколько значений char в программе сборки armv7?

Пожалуйста, помогите мне. Это мой C код:

void sum(){ 
int sum =0; 
char *p =NULL; 
p=(char *) malloc(sizeof(char) *10); 
for(int i=0; i<16;++i){ 
    p[i]=i; sum +=i; 
} 
printf("sum =%d\n",sum); 
} 

ответ

0

Вот типичный пример текста книги для загрузки/сохранения нескольких значений из/векторных банков регистров общего назначения, которые могут придерживаться назначения и источника адреса.

VLDM r1!, {d0-d7} 
VSTM r0!, {d0-d7} 

Если вы используете gdb, вы можете получить лучшее представление о конкретном наборе банков или групп регистров.

(gdb) p $q0 
{u8 = {0 <repeats 16 times>}, u16 = {0, 0, 0, 0, 0, 0, 0, 0}, u32 = {0, 0, 0, 0}, u64 = {0, 0}, f32 = {0, 0, 0, 0}, f64 = {0, 0}}