|
|
  |
Помощь в Keil Uvision 4, BL.W __aeabi_memcpy4 |
|
|
|
Nov 19 2014, 21:14
|
Группа: Участник
Сообщений: 11
Регистрация: 16-11-14
Пользователь №: 83 698

|
Помогите ответить на вопрос: 0x08000530 F000F878 BL.W __aeabi_memcpy4 (0x08000624) А как вы думаете, зачем компилятор вставил вызов этой функции, хотя в вашем коде на С вызова нет?
|
|
|
|
|
Nov 21 2014, 15:14
|

Участник

Группа: Свой
Сообщений: 68
Регистрация: 7-05-05
Из: China, Shenzhen
Пользователь №: 4 812

|
Цитата(Only @ Nov 20 2014, 05:14)  Помогите ответить на вопрос:
0x08000530 F000F878 BL.W __aeabi_memcpy4 (0x08000624)
А как вы думаете, зачем компилятор вставил вызов этой функции, хотя в вашем коде на С вызова нет? так это оптимизация, а как он еще такое должен был реализовать? int32_t mass1 [11] = {55,36,3,67,84,123,53,7,47,65,217};
|
|
|
|
|
Nov 21 2014, 17:17
|
Группа: Участник
Сообщений: 11
Регистрация: 16-11-14
Пользователь №: 83 698

|
А можно поподробнее?) Как и что он оптимизирует? Цитата(UniSoft @ Nov 21 2014, 16:14)  так это оптимизация, а как он еще такое должен был реализовать? int32_t mass1 [11] = {55,36,3,67,84,123,53,7,47,65,217};
Сообщение отредактировал Only - Nov 21 2014, 17:17
|
|
|
|
|
Nov 21 2014, 19:11
|

Участник

Группа: Свой
Сообщений: 68
Регистрация: 7-05-05
Из: China, Shenzhen
Пользователь №: 4 812

|
Цитата(Only @ Nov 22 2014, 01:17)  А можно поподробнее?) Как и что он оптимизирует? за подробностями вам лучше к стандартам си обратиться. что оптимизирует? у вас массив из 11 элементов - локальная переменная, которая инициализируется неким значением, итого на заполнение этого массива поэлементно потребовалось бы как минимум 22 инструкции, а так всего 4 простым копированием. А вот как оптимизирует, все зависит от компилятора.
|
|
|
|
|
Nov 25 2014, 18:22
|
Группа: Участник
Сообщений: 11
Регистрация: 16-11-14
Пользователь №: 83 698

|
Здравствуйте. Ещё такой вопрос) По коду,там где создаём структуру. При описании листинга дизассемблера структуры, препод спрашивает следующее: Я пишу: Я понял так, что мы скопировали структуру в стек два раза. >>>> И зачем же два раза? Так, как у нас 11 элементов массива копируются не в регистры,а в стек. И функция работает с ними. >>>> И все 11 копируются в стек? Помогите пожалуйста разобраться с этим вопросом) Цитата(UniSoft @ Nov 21 2014, 20:11)  за подробностями вам лучше к стандартам си обратиться. что оптимизирует? у вас массив из 11 элементов - локальная переменная, которая инициализируется неким значением, итого на заполнение этого массива поэлементно потребовалось бы как минимум 22 инструкции, а так всего 4 простым копированием. А вот как оптимизирует, все зависит от компилятора.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|