Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

Пытаюсь разобратся со встроенным ассемом   Найти похожие ветки 

 
AllDer   (2004-01-04 01:14) [0]

Пытаюсь разобратся со встроенным ассемом
из адресса Inn взять байт и записать его
в адресс Finn
var
Inn,Finn:cardinal;
m:byte;
{Фокусы с @ ^ здесь не катят(в asm дерективе).
}

asm
MOV m,OFFSET [Inn];
MOV Finn,m; ????
end;


 
default ©   (2004-01-04 01:55) [1]

да не парься ты с этим...нафиг тебе это?можно и без асма подобные вещи делать


 
AllDer   (2004-01-04 02:14) [2]

как?


 
default ©   (2004-01-04 02:29) [3]


procedure TForm1.Button1Click(Sender: TObject);
var
W1, W2: Word;
begin

W1 := $FF00;
W2 := $0102;
// по адресу первого байта W2 заносим значение из байта по адресу
// второго байта в W2 (это для примера)
PByte(@W2)^ := PByte(Cardinal(@W1) + 1)^;
// а так можно просто W2 := W2 and $FF00 + Hi(W1);
Caption := IntToHex(W2, 2)

end;


 
Andy BitOff   (2004-01-04 14:12) [4]

asm
MOV al,byte ptr [Inn];
MOV byte ptr [Finn], al

mov [m],al
xor al,al
mov al,[m]
MOV byte ptr [Finn], al
end;

Вот два варианта. С первым все ясно, а во втором... Твоя var m есть адрес в памяти и ты хочешь напрямую из памяти в память переслать байт, а так нельзя. А вообще для ясности всегда ставь квадратные скобки (так меня учили). Тогда понятно, что мы пишем в ячейку памяти, которая m и из нее берем.



Страницы: 1 вся ветка

Текущий архив: 2004.01.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
7-49791
Александр из Минска
2003-10-30 23:17
2004.01.16
Во всех ли Виндах есть файл regsvr32.exe?


1-49483
Blacklord2003
2003-12-28 15:22
2004.01.16
Как сделать подсветку синтаксиса в TRichEdit


14-49740
Ozod
2003-12-23 19:05
2004.01.16
Как программно мозжно изменить размер Рабочего стола


14-49712
IronHawk
2003-12-11 12:39
2004.01.16
У кого есть код, генератора чисел?


14-49680
UnDerT
2003-12-26 19:01
2004.01.16
HTTP Autharization