Главная страница
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.025 c
3-49387
jack128
2003-12-20 15:25
2004.01.16
Проблема с запросом


4-49806
Johnson
2003-11-10 18:45
2004.01.16
Как наити нужную программу???


11-49476
Olgerd
2003-05-01 19:28
2004.01.16
Кнопка программы на KOL в панели задач


1-49511
Олег С.
2003-12-23 14:48
2004.01.16
Меню как в Delphi (Bar с меню, подвижный, съемный)


3-49460
vvh
2003-12-18 00:45
2004.01.16
Какие ограничения на количество записей в таблицах IB