Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > стыковка С++ и АСМ


Автор: lp_sun 21.12.2007, 19:45
вот такая проблемка возникает при стыковке С и асма:

#include <iostream.h>
mul_16b(long* op2)
{
__asm
{
mov eax,op2
mov [eax],511
}
}

void main()
{
long op21[]={2,0,0,0,0,0,0,0};

mul_16b(op21);

cout<<op21[0];
cin.get();
}

вроде совсем простенькая програмка, в которой описана фу-ия с помощью ассемблерной вставки
в эту функцию передается адрес переменной в которую записуется число...токо вот фишка какое б число я не писал в команде mov [eax],511 туда запишется это число по модулю 256
т.е. в данном примере cout<<op21[0]; выведет на экран не 511 котор я поместил в переменную а 255
помоги разобратся я не программер тока учусь....

Автор: MAKCim 21.12.2007, 20:39
lp_sun, 

M
MAKCim
Модератор: Читайте правила раздела!

по теме
попробуй так
Код

mov dword ptr [eax], 511

Автор: lp_sun 21.12.2007, 22:21
благодарю, работает  smile 

тему пока не закрывайте smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)