ShpuntiK
@ShpuntiK

Assembler в VS10

Как оформить процедуру на ассемблере в VS10?
Пишу так:

Calculate proc
...
ret
Calculate endp

Выдаёт синтаксическую ошибку, якобы «proc» не найден и тд…
  • Вопрос задан
  • 3139 просмотров
Решения вопроса 1
apangin
@apangin
Коли это «встроенный ассемблер», процедура должна быть оформлена в соответствии с синтаксисом C.

int Calculate(int x, int n)
{
  __asm {
    mov eax, x
    mov ecx, n
    mov ebx, 0
for:
    push eax
    imul eax, ecx
    imul eax, 2
    add ebx, eax
    pop eax
    loop for
    mov eax, ebx
  }
}
 
void main()
{
  int s = Calculate(2, 2);
  cout << "Result=" << s;
}


Если же хотите использовать синаксис MASM, нужно код функции выносить в отдельный файл .asm и компилировать с помощью ml.exe.

Вот тут есть пример для обоих способов.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
rasa
@rasa
PROC, ENDP и другие ключевые слова не доступны в таком режиме. В отдельном asm файле внутри проекта с использованием применения правила построения «Microsoft Macro Assembler» это будет компилироваться.
Ответ написан
Комментировать
rasa
@rasa
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы