Меню сайта |
|
|
|
Наш опрос |
|
|
|
|
Главная » 2008 » Апрель » 08
Я тут ударился в объединение Blitzmax и Assembler. Получилось. В связи с этим скоро выложу статейку как интегрировать ассемблер с Blitzmax. А пока обнаружился еще один ужос - качество кода, производимого Blitzmax. Я добавил это в Неприятное в BlitzMax, ч.1 - язык по нумером 21. А для ленивых кратко здесь: Простейшая функция: function _RDT:long() return 111 endfunction Сгенерированный Blitzmax код: push ebp mov ebp,esp sub esp,8 mov edx,dword [ebp+8] mov dword [ebp-8],111 mov dword [ebp-4],0 _3: mov eax,dword [ebp-8] mov dword [edx],eax mov eax,dword [ebp-4] mov dword [edx+4],eax mov esp,ebp pop ebp ret Это
же просто ужас. Зачем метка внутри? - она не используется! Ну это еще ладно. Зачем
отнимается от указателя стека 8 в начале? Что за манипуляции с ним
между BP и DX? А вот аналогичный нормальный код, выполняющий ту-же
задачу: push ebp mov ebp,dword[esp+8] mov dword [ebp],111 mov dword [ebp+4],0 pop ebp ret
Просмотров:
1017
|
Добавил:
oxid
|
Дата:
08.04.2008
|
| |
|
|
Форма входа |
|
|
|
Календарь новостей |
|
« Апрель 2008 » | Пн | Вт | Ср | Чт | Пт | Сб | Вс | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
|
|
Поиск |
|
|
|
Ссылки |
|
|
|
|