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

Вниз

Тут промелькивал вопрос про серийный номер камня   Найти похожие ветки 

 
han_malign ©   (2003-06-20 12:29) [0]

никак не пойму где туплю, но какая то непонятка вышла:
program cpu_;
{$APPTYPE CONSOLE}
uses Windows,
Utils in "..\Common\utils.pas";
var id,id1: array[0..2]of dword;
begin
asm
push EBX
mov eax,3
db $0F,$A2//CPUID opcode
mov dword ptr id[2],ebx//least significant (Transmeta Crusoe processors only)
mov dword ptr id[1],ecx
mov dword ptr id[0],edx//most significant

mov dword ptr id1[0],ebx
mov dword ptr id1[1],ecx
mov dword ptr id1[2],edx
pop EBX
end;
Writeln(HexDword(id[0])+HexDword(id[1])+HexDword(id[2]));
Writeln(HexDword(id1[0])+HexDword(id1[1])+HexDword(id1[2]));
end.

- самое непонятное в том, что оно выдает
0C04084100000000 00000000
08410000 00000C0400000000


Как??????


 
han_malign ©   (2003-06-20 13:20) [1]

Вот так и узнаешь, что в BASM смещение всегда побайтовое...
program cpu_;
{$APPTYPE CONSOLE}
uses Windows,
Utils in "..\Common\utils.pas";
var id: array[ 0..2]of dword;
begin
asm
push EBX
mov eax,3
db $0F,$A2//CPUID opcode
mov dword ptr id[ 0],ebx//(Transmeta Crusoe processors only)
mov dword ptr id[ 4],ecx
mov dword ptr id[ 8],edx
pop EBX
end;
Writeln(HexDword(id[ 0])+HexDword(id[ 1])+HexDword(id[ 2]));
end.
- так катит..., похоже дело, как всегда, в прямом приведении типов (dword (ptr id)[1])...



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

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

Наверх




Память: 0.46 MB
Время: 0.017 c
1-20096
Intell
2003-06-20 14:47
2003.07.07
Полупрозрачность Image


14-20263
swordent
2003-06-20 09:13
2003.07.07
Компонент


14-20301
postx
2003-06-20 15:21
2003.07.07
Ищу генератор API


1-20109
Goga
2003-06-24 10:41
2003.07.07
Подскажите, как реализовать обратный вызов от MIDAS сервера


4-20343
-= Demon =-
2003-05-06 15:51
2003.07.07
CreateProcess