The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Тематический каталог: От C к Ассемблеру (gcc assembler)"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Тематический каталог: От C к Ассемблеру (gcc assembler)"  +/
Сообщение от auto_topic on 19-Авг-05, 13:13 
Обсуждение статьи тематического каталога: От C к Ассемблеру (gcc assembler)

Ссылка на текст статьи: http://www.opennet.ru/base/dev/from_c_to_asm.txt.html

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "От C к Ассемблеру (gcc assembler)"  +/
Сообщение от chorik email on 19-Авг-05, 13:13 
Rules !!!
я так смотрел - да вроде неплохо !
,но не стоит так уж жeстко писать и использовать asm где попало !!!
Учитывая всякие исключения, прерывания и schedule of procceses нужно изьавляться от этого всего.
Жаль root не всемогущ (относительно asm instruction)/*если не так то напишите - может я чего не еще не узнал*/

для таких замеров самая рульная ось - MS-DOS или unix-подобные но {как я сделал дописал kernel и ВСУНУЛ ТУДА read 64-bit TSC/* это когда я оптимизировал string.h */}

By !!!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "От C к Ассемблеру (gcc assembler)"  +/
Сообщение от кирогазов on 28-Июл-11, 17:39 
феноменально! листинги 11 и 12 раздвигают рамки понятия "идиотский" до невообразимых пределов. это надо было додуматься сделать двойной цикл там где можно обойтись 2 вычитаниями и одним сдвигом.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "От C к Ассемблеру (gcc assembler)"  +/
Сообщение от Аноним (??) on 28-Дек-12, 09:31 
Отличная статья.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "От C к Ассемблеру (gcc assembler)"  +/
Сообщение от Алексей email(??) on 30-Дек-12, 22:57 
Вот два моих примера по-копированию строки, работает как обычная
Си-библиотечная функция strcpy, только работает на 15%-быстрее, тестировал функцией WinAPI: QueryPerformanceCounter которая не участвует в планирование и время не считает при переключений контекстов, но windows система не реального времени точных результатов всё равно не получить, ну хоть приблизительно.


//На синтаксисе AT&T компилятор GCC.

#include <stdio.h>


char* _strcpy(char* _s, const char* _d) {
  char* t = _s;
  asm("movl %0, %%esi"::"d"(_d));
  asm("movl %0, %%edi"::"d"(_s));
  asm("n:");
  asm("mov (%esi), %al");
  asm("mov %al, (%edi)");
  asm("or $0, %al");
  asm("jz e;");
  asm("incl %esi");
  asm("incl %edi");
  asm("jmp n;");
  asm("e:");
  return t;
}


int main(void) {
  char s[64];
  _strcpy(s, "Hello GCC from syntaxis AT&T");
  puts(s);
  return 0;
}


***********************************************************************


//На синтаксисе INTEL компилятор Borland C.

#include <stdio.h>


char* _strcpy(char* _s, const char* _d) {
  char* t = _s;
  __asm {
      mov esi, _d
      mov edi, _s
      n:
      mov al, [esi]
      mov [edi], al
      or al, 0
      jz e;
      inc esi
      inc edi
      jmp n;
      e:
  };
  return t;
}


int main(void) {
  char s[64];
  _strcpy(s, "Hello Borland C from syntaxis INTEL");
  puts(s);
  return 0;
}

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

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