Jump to content

    

IAR STM8 - uint64_t

4 минуты назад, _pv сказал:

не уверен, что так как оно написано на С, скомпилируется именно в ADD ADC ADC ADC ADC ADC ADC ADC ADC

да "стопудово минус песчинка" что не скомпилируется так. Даже не надеюсь. Это так, накидал для примера

Share this post


Link to post
Share on other sites

ну вот я лишь про то, что если для примера накидать сложение не 8х8-битных чисел, а 2х32-битных получится быстрее, так как хотя бы они внутри будут сделаны компилятором правильно.

Share this post


Link to post
Share on other sites
5 часов назад, megajohn сказал:

вы не понимаете следующего.

библиотечная функция даст ADD ADC ADC ADC для младшего 32битного, и тоже само для старшего 32битного. Но как вы сделаете CARRIER от младшего к старшему ?

Сделать то можно. Не в этом дело. Кроме ADD/ADC там ещё куча команд будет (сохранений/восстановлений на стеке, чтений/записей регистров и т.п., переходов). Так как CPU - 8-битный и имеет мало регистров. И количество таких команд будет в разы больше чем ADD/ADC. Поэтому эффективность кода будет очень низкая. Да и написать цикл суммирования двух рядов байтов на асме - задача совершенно тривиальнейшая. Даже для начинающего. Не сложнее суммирования 2-х 32-битных слов. Имхо.

36 минут назад, _pv сказал:

ну вот я лишь про то, что если для примера накидать сложение не 8х8-битных чисел, а 2х32-битных получится быстрее, так как хотя бы они внутри будут сделаны компилятором правильно.

Вы как-нить попробуйте что-нить 32-битное скомпилить для STM8 и посмотреть на результат. Плакать захочется. :cray:

Я довольно много писал для STM8 на си и на асме и имею понятие.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now