![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 23.12.2012
Сообщений: 4
|
![]()
Преподаватель задал задание в последние дни перед сессией - вызвать функцию cpuid и из регистров прочитать информацию, . Уже не знаю, что делать, изучать ассемблер с нуля нет времени. завтра последний день. путаюсь, где удобнее написать программу: в линуксе или в виндовс?
ну это полбеды, главное, что не могу разобраться с программой Если кто может помочь, буду очень признателен и благодарен! последовательность действий: Код:
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
In2ition
это не важно в линуксе или в виндовс после mov eax,0/CPUID в каждом из регистров ebx, ecx, edx будет по 4 буквы, а всего получится строка из 12 букв Код:
в результате получишь следующее Код:
Последний раз редактировалось Mikl___; 23.12.2012 в 13:58. |
![]() |
![]() |
![]() |
#3 | |
Регистрация: 23.12.2012
Сообщений: 4
|
![]()
Спасибо огромное, Mikl!
Возникли некоторые проблемы. Я так понял, Вы используете Intel-ситнаксис? По идее его должен и обязан поддерживать NASM в Linux-е. После некоторой доработки получил следующий код: Код:
Код:
Цитата:
Последний раз редактировалось In2ition; 23.12.2012 в 15:53. |
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
In2ition
Началось... неужели сложно было написать, что будет использован NASM? а в NASM данные определяются так Код:
Код:
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 23.12.2012
Сообщений: 4
|
![]()
Снова спасибо)) Дело в том, что мы не учили синтаксис языка, это особенности нашего современного образования, когда не учат, а требуют
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 23.12.2012
Сообщений: 4
|
![]()
Не получается вывести значение регистра eax после вызова CPUID. По документации интел в eax должно храниться максимальное колличество поддерживаемых стандартных функций или как то так (Largest Standart Function Number Supported).
Делаю по предыдущему примеру - на экран выводится "мусор". Нужно для целочисленных значений по другому резервировать место в памяти? или в чем проблема? One more question: Как можно извлечь отдельные биты регистра? например: 0-3 или с 4 - по 7 биты регистра eax? Последний раз редактировалось In2ition; 23.12.2012 в 23:18. |
![]() |
![]() |
![]() |
#7 | ||
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]() Цитата:
Цитата:
Биты из регистра извлекаются командой AND или TEST |
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программирование в командном процессоре ОС UNIX | Proby | Помощь студентам | 0 | 17.12.2011 07:10 |
Вопрос по процессоре!!! | foggot | Компьютерное железо | 2 | 28.01.2011 00:31 |
Как прочитать информацию из мэйл агента | samets | Win Api | 1 | 07.12.2009 16:26 |
Информация о процессоре | ofolfa | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 10 | 15.02.2009 11:46 |
информация о процессоре | Миша | Помощь студентам | 7 | 17.10.2007 19:04 |