Главная страница
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.027 c
1-49634
lipskiy
2004-01-02 18:38
2004.01.16
Не могу сохранить ветку реестра в файл.


1-49546
Noname
2004-01-06 11:11
2004.01.16
Combobox


4-49800
Extazio
2003-11-12 21:05
2004.01.16
Как Как зная хендл окна получить и вывести его иконку в битмап...


1-49524
Shreder
2004-01-06 08:13
2004.01.16
Откат


1-49548
Werewolf
2004-01-02 08:28
2004.01.16
Как удалить символ перехода на новую строку из строки?