Сейчас на форуме: hgdagon, asfa (+3 невидимых)

 eXeL@B —› Программирование —› Вопрос про Asm вставку в visual с++ 6.0
Посл.ответ Сообщение

Ранг: 33.6 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 08 июня 2007 16:46
· Личное сообщение · #1

когда там делаешь asm всавку то компилятор автоматом прописывает сохранение некоторых регистров:

003C100C >/$ 55 PUSH EBP
003C100D |. 8BEC MOV EBP,ESP
003C100F |. 53 PUSH EBX
003C1010 |. 56 PUSH ESI
003C1011 |. 57 PUSH EDI
мой код
003C1031 |. 5F POP EDI
003C1032 |. 5E POP ESI
003C1033 |. 5B POP EBX
003C1034 |. 5D POP EBP
003C1035 \. C3 RETN

Как от этого избавиться? Ну чего он мусорит



Ранг: 45.7 (посетитель), 5thx
Активность: 0.020
Статус: Участник

Создано: 08 июня 2007 16:57
· Личное сообщение · #2

объяви атрибут у функции naked чтоб избавиться от пролога...


void __declspec( naked ) my_asm( void ){
__asm{
mov eax, 0;
}

}



 eXeL@B —› Программирование —› Вопрос про Asm вставку в visual с++ 6.0
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати