Консультация № 55114
12.09.2006, 08:50
0.00 руб.
0 5 1
Здравствуйте!
Почему в Delphi eax, в Masm 6.11 ax?

Обсуждение

Неизвестный
12.09.2006, 09:10
общий
это ответ
Здравствуйте, KuchumHan!

ЕАХ - 32-х битный регистр
АХ - 16-и битный регистр...

оба регистра есть и в MASM и в delphy...
Неизвестный
12.09.2006, 09:44
общий
Пробовал в дельфи ax - выкидывает ошибку : Operand size mismatch
Неизвестный
12.09.2006, 20:10
общий
по ошибке, надо смотреть на контекст, приведите пример кода.MASM 6.11 компилирует 16-битный код, а Delphi 32-битный, ошибка повествует о не соответствии размера диапазона значений регистра размеру операнда :).
Неизвестный
13.09.2006, 07:43
общий
Вот так работает:function Sum(X,Y:integer):integer;begin asm mov eax,X add eax,y mov @Result,eax end;end;procedure TForm1.Button1Click(Sender: TObject);var c:integer;begin c:=Sum(3,5); Edit1.Text:=IntToStr(c);end;а вот так нет:.................................................. mov ax,X add ax,y..............................................
Неизвестный
15.09.2006, 05:44
общий
таким образом переопределите eax на ax:beginasmdb 66hmov eax,Xdb 66hadd eax,ydb 66hmov @Result,eax
Форма ответа