Форум: "Основная";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
ВнизПытаюсь разобратся со встроенным ассемом Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c