Главная страница
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.011 c
3-19961
Lord Vader
2003-06-11 10:32
2003.07.07
Несколько копий одного QuickReport на одной странице


1-20040
Anonimus
2003-06-25 14:01
2003.07.07
Как отловить нажатие клавиш.....


6-20186
Tenrai
2003-04-04 06:11
2003.07.07
Новое окно при клике на ссылку в TWebBrowser


3-19948
Chayan
2003-06-11 11:54
2003.07.07
Помогите выбрать сервер БД


3-20014
Kinda
2003-06-15 13:22
2003.07.07
Создание запроса.