Главная страница
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.016 c
14-49770
SPeller
2003-12-17 07:35
2004.01.16
Посоветуйте HTML редактор


14-49731
Романов Р.В.
2003-12-25 09:24
2004.01.16
Happy New Year


1-49610
alexEagle
2004-01-06 14:33
2004.01.16
Плавающие окна в Делфи


7-49783
MAXHO
2003-10-27 18:06
2004.01.16
Help Async


14-49692
DillerXX
2003-12-25 20:04
2004.01.16
Стих