Претензии к файлу справки

Предыдущая тема Следующая тема Перейти вниз

Претензии к файлу справки

Сообщение  VerhoLom в Пт Авг 13, 2010 2:00 pm

Файл справки далеко не полон.

Вот примеры:
1. Нету упоминания, что в Extern-End Extern можно писать еще и Lib "..." Sad
2. Что такое Naked после имени процедуры или функции? Я это видел в коде ОС-ки на ФБ (хоть он и 16-битный) Shocked

А может я плохо умею читать? Suspect

Sleep albino cherry study study study
avatar
VerhoLom

Сообщения : 67
Дата регистрации : 2010-07-06
Возраст : 36

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Претензии к файлу справки

Сообщение  Саня в Пт Авг 13, 2010 9:40 pm

1 - действительно нет Exclamation
2 - а это вот как раз есть. Это. чтобы писать функции\сабы без пролог\епилог кода
Вот текст из справки:

Naked Write functions without prolog/epilog code


Syntax

Sub identifier Naked [calling_convention] ( param_list )

asm_statements

End Sub
Function identifier Naked [calling_convention] ( param_list ) As data_type

asm_statements

End Function


Parameters

identifier - name of the procedure.
calling_convention - calling convention of the procedure - can be cdecl, pascal, or stdcall
asm_statements - the code in the procedure body. The code for handling parameters and returning values must all be done manually. Note that the methods for doing these can change, depending on the calling convention.
param_list - parameters to be passed to the procedure.
data_type - the data type of the function.


Description

Naked allows the programmer to write procedures without the compiler generating any prolog/epilog code. This is useful when writing small, fast functions in Asm without any unnecessary overhead.
И пример к нему из того же самого:
Код:

'' Naked cdecl function
Function add naked cdecl _
    ( _
        ByVal a As Integer, _
        ByVal b As Integer _
    ) As Integer
   
    Asm
        mov eax, dword Ptr [esp+4] '' a
        add eax, dword Ptr [esp+8] '' + b
        ret                        '' return result in eax
    End Asm
   
End Function

Print add( 1, 5 )
Удобно, думаю, для создания очень мелких собственных функций. Правда, создавать фрейм и все остальное самому придется, но возвращать более удобно и не надо никакого ассемблера, имхо.
avatar
Саня

Сообщения : 65
Дата регистрации : 2010-04-28
Возраст : 23
Откуда : Екатеринбург

Посмотреть профиль http://vkontakte.ru/id30561430#/id57547166

Вернуться к началу Перейти вниз

Кстати...

Сообщение  VerhoLom в Ср Авг 18, 2010 4:26 pm

Кстати, вот способ писать строки без отдельного вынесения их в секцию данных (и без создания переменных для каждой):

Код:
Function DoHello  naked() As Integer
   Asm
      push dword Ptr 0
      push dword Ptr 0
      Call @1 'на стеке будет адрес следующей строчки,
                                'а потом MessageBox сама все сделает
      .ascii "Hello world\0"
   @1:push dword Ptr 0
      Call MessageBox
      
      mov eax,0x00000001
      ret
   End Asm
End Function

Может еще как можно? bounce
avatar
VerhoLom

Сообщения : 67
Дата регистрации : 2010-07-06
Возраст : 36

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Претензии к файлу справки

Сообщение  VerhoLom в Ср Авг 18, 2010 4:28 pm

Саня пишет: Правда, создавать фрейм и все остальное самому придется

Фрейм не везде нужен. Suspect Хотя возможность очень полезная... I love you
avatar
VerhoLom

Сообщения : 67
Дата регистрации : 2010-07-06
Возраст : 36

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Претензии к файлу справки

Сообщение  electrik в Вс Авг 22, 2010 3:35 pm

да, в справке действительно не все есть, но про extern, я как то давно писал.
http://freebasic.justforum.net/forum-f10/tema-t152.htm

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 37
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Претензии к файлу справки

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения