Мегаобучалка Главная | О нас | Обратная связь


Определение типа центрального процессора



2016-09-16 444 Обсуждений (0)
Определение типа центрального процессора 0.00 из 5.00 0 оценок




В некоторых случаях эффективность работы программы можно заметно повысить, если использовать команды новых моделей процессоров Pentium, такие как, например, команды MMX. На сервере Intel с адресом http://www.intel.com вы найдете исчерпывающую информацию о том, как распознать различные модели процессоров, созданных этой фирмой. В нашей книге мы рассмотрим упрощенную методику, которая, тем не менее, может быть использована в большинстве случаев.

Программа CPUINFO определяет модель и характеристики процессора, пользуясь только что описанной нами методикой. Полученная информация выводится на консоль в следующем виде:

CPU model: 5

Vendor ID: GenuineIntel

CPU Signature 00000619

CPU Feature EDX 0000F9FF

CPU type: 0

CPU family: 6

CPU model: 1

CPU stepping: 9

FPU detected

В листинге 1.1 вы найдете исходный текст модуля, составленного на языке ассемблера. В этом модуле определены все функции, необходимые для распознавания процессора и получения его характеристик.

Листинг 1.1. Файл cpuinfo\askcpu.asm

Model small

CPU_ID MACRO

Db 0fh

Db 0a2h

ENDM

Stack 100h

Data

Public _vendor_id_msg

Public _cpu_model

Public _cpu_signature

Public _features_ecx

Public _features_edx

Public _features_ebx

Public _get_cpu_model

_vendor_id_msg db "............", 0dh, 0ah, "$"

_cpu_model db 0

_cpu_signature dd 0

_features_ecx dd 0

_features_edx dd 0

_features_ebx dd 0

Code

; ============================================

; _get_cpu_model

; ============================================

.8086

_get_cpu_model proc

Call cpu_8086

Cmp ax, 0

Jz try_80286

Mov _cpu_model, 0

Jmp end_of_detect

try_80286:

Call cpu_80286

Cmp ax, 0

Jz try_80386

Mov _cpu_model, 2

Jmp end_of_detect

try_80386:

Call cpu_80386

Cmp ax, 0

Jz try_80486

Mov _cpu_model, 3

Jmp end_of_detect

try_80486:

Call cpu_80486

Cmp ax, 0

Jz Pent_CPU

Mov _cpu_model, 4

Jmp end_of_detect

Pent_CPU:

Mov _cpu_model, 5

.386

Pusha

Mov eax, 00h

CPU_ID

Mov dword ptr _vendor_id_msg, ebx

mov dword ptr _vendor_id_msg[+4], edx

mov dword ptr _vendor_id_msg[+8], ecx

Cmp eax, 1

Jl end_of_detect

Mov eax, 1

CPU_ID

Mov _cpu_signature, eax

Mov _features_ebx, ebx

Mov _features_edx, edx

Mov _features_ecx, ecx

Popa

end_of_detect:

.8086

Ret

_get_cpu_model endp

; ============================================

; cpu_8086

; ============================================

Cpu_8086 proc

Pushf

Pop ax

Mov cx, ax

And ax, 0fffh

Push ax

Popf

Pushf

Pop ax

And ax, 0f000h

Cmp ax, 0f000h

Je is_8086

Mov ax, 0

Ret

is_8086:

Mov ax, 1

Ret

Cpu_8086 endp

; ============================================

; cpu_80286

; ============================================

.286

Cpu_80286 proc

Mov ax, 0f000h

Push ax

Popf

Pushf

Pop ax

And ax, 0f000h

Jz is_80286

Mov ax, 0

Ret

is_80286:

Mov ax, 1

Ret

Cpu_80286 endp

; ============================================

; cpu_80386

; ============================================

.386

Cpu_80386 proc

Pushfd

Pop eax

Mov ecx, eax

Xor eax, 40000h

Push eax

Popfd

Pushfd

Pop eax

Xor eax, ecx

Jz is_80386

Mov ax, 0

Ret

is_80386:

Push ecx

Popfd

Mov ax, 1

Ret

Cpu_80386 endp

; ============================================

; cpu_80486

; ============================================

Cpu_80486 proc

Pushfd

Pop eax

Mov ecx, eax

Xor eax, 200000h

Push eax

Popfd

Pushfd

Pop eax

Xor eax, ecx

Je is_80486

Mov ax, 0

Ret

is_80486:

Mov ax, 1

Ret

Cpu_80486 endp

End

Задание

1. Определите тип центрального процессора.

2. Получить и отобразить на консоли дату изготовления версии BIOS, а также содержимое таблицы конфигурации.

3.Получить информации о конфигурации компьютера при помощи BIOS

5 Контрольные вопросы

1. Определение конфигурации с помощью BIOS

2. Программа HDWCFG

Программа BIOSINFO

Лабораторная работа №6

Логические команды и команды сдвига микропроцессора

Цель работы

Организация арифметико-логических устройств (АЛУ), устройств управлений (УУ), системы прерываний.Арифметические операции с ис­пользованием сопроцессора

Базовые знания, необходимые для выполнения данной работы

• устройство микропроцессора (арифметико-логическое устройство);

• основные логические операции и таблицу основных логических операций;

• понятие сдвига и виды команд сдвига.

Теоретические основы

Основные логические операции

• логическое отрицание (NOT); результат - ИСТИНА, если аргумент - ЛОЖЬ;

• конъюнкция/логическое умножение (AND); результат - ИСТИНА, если оба аргумента - ИСТИНА;

• дизъюнкция/логическое сложение (OR); результат - ИСТИНА, если хотя бы один аргумент - ИСТИНА;

• исключающее ИЛИ (XOR); результат - ИСТИНА, если только один аргумент - ИСТИНА.

Таблица логических операций

В МП типа i486/Pentium логические команды могут быть 8-ми, 16-ти и 32-х разрядными, т.е. оперировать, соответственно, байтами, словами и двойными словами.

Логические команды

Команда NOT

Форматы команды

NOT r/m8

NOT r/m16

NOT r/m32

Команда выполняет инверсию битов указанного в команде операнда. Команда NOT не влияет на флаги.

Пример:

MOV AL, 00001111b

NOT AL; AL = 11110000b

3.2.2 Команда AND

Форматы команды

AND AL, imm8

AND AX, imm16

AND EAX, imm32

AND r/m8, imm8

AND r/m16, imm16

AND r/m32, imm32

AND r/m16, imm8

AND r/m32, imm8

AND r/m8, r8

AND r/m16, r16

AND r/m32, r32

AND r8, r/m8

AND r16, r/m16

AND r32, r/m32

Команда может быть использована для сброса битов.

Пример:

Mov AL, 11111111b

and AL, 00001111b; AL = 00001111b

3.2.3 Команда OR

Форматы команды

те же, что и у AND.

Команда может быть использована для установки битов.

Пример:

Mov AL, 00001111b

or AL, 11110000b; AL = 11111111b

3.2.4 Команда XOR

Форматы команды

те же, что и у AND.

Команда может быть использована для обнуления регистров, а также для инвертирования битов.

Пример:

xor AX, AX; AX = 0000000000000000b

Mov AL, 00001111b

xor AL, 11111111b; AL = 11110000b

3.2.5 Команда TEST

Форматы команды

те же, что и у AND.

Команда выполняет операцию AND, но не изменяет операнд-приемник. Воздействует на флаги SF, ZF и PF.



2016-09-16 444 Обсуждений (0)
Определение типа центрального процессора 0.00 из 5.00 0 оценок









Обсуждение в статье: Определение типа центрального процессора

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (444)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)