The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Как правильно собрать программу для Debian (Raspbian"
Отправлено pavlinux, 05-Янв-14 05:40 
> Или это такой хитрый способ  исполнить именно memset "руками" компилера?

Ага.


mov      $0x0,%eax        ; чем заполняем, в EAX
mov      $0x20,%edx       ; длина - 32 или 0x20  (32 WORD или 64 BYTE)
mov      %ebx,%edi        ; указатель на начало в EDI
mov      %edx,%ecx        ; длину в ECX  
rep stos %eax,%es:(%edi)  ; повторять запись по адресу указанному в (ES:EDI) значением в EAX, пока ECX не будет равен 0  
sub      $0xffffff80,%esp ; новый указатель  

На x86_64 оно за 10 повторов обнулит, даже если у тя тип будет unsigned char или short.
Поэтому типы меньше int на x64 практически бесполезны.  

Это обычный цикл

из-за операции сравнения (i < 64) получим цикл loop 64 раза.


    jg     out
    mov    0xc(%esp),%eax
loop:
    mov    0xc(%esp),%eax
    inc    %eax
    mov    %eax,0xc(%esp)
    mov    0xc(%esp),%eax
    cmp    $0x3f,%eax
    jle    loop
out:
    add    $0x10,%esp

---
Так что, чтоб лишний раз не дёргать glibc. Конечно есть __builtin_memset,
но он всё равно тормознутее и не портабельно, а эта фича STD C99
 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру