Вопрос № 25535: Здравствуйте, уважаемые эксперты.
Помогите пожалуйста написать процедуру определения частоты процессора для DOS и Windows.Возможно ли изменить частоту процессора программным путем?
...Вопрос № 25545: Приветствую Вас, уважаемые эксперты!
У меня така проблема: установил SoftICE в Windows XP SP2, но он у меня "не открывается": я запускаю программу из Symbol Loader, программа преспокойно запускается, а окошка SI нет. Когда ставлю б...Вопрос № 25557: Пробегитесь товарищи по тексту, посмотрите ошибки пожалуйста :-)
;---------------------------------
CSEG segment
assume CS:CSEG, DS:CSEG, SS:CSEG
org 100h
start:
; записываем адреса строк в массив
MOV strs[0*2],offse...Вопрос № 25558:
Товарищи нужен алгоритм деления двойного слова(dd) на слово(dw)...
Вопрос № 25.535
Здравствуйте, уважаемые эксперты.
Помогите пожалуйста написать процедуру определения частоты процессора для DOS и Windows.Возможно ли изменить частоту процессора программным путем?
Отправлен: 30.08.2005, 12:17
Вопрос задал: Kuran (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Bob Johnson
Здравствуйте, Kuran!
Определение частоты процессора, начиная с Intel Pentium достаточно просто. В нем появилась команда rdtsc, которая считывает в регистры edx : eax показание внутреннего счетчика, который увеличивается с тактовой частотой. Т.е. определение частоты сводится к делению разности в показаниях этой команды на время, за которое была получена эта разность. Время при этом следует вычислять каким-либо внешним способом; точность определения частоты будет зависеть от точности отсчета этого времени. у меня на странице есть
утилита (с исходниками) под windows, которая измеряет скорость чтения и записи данных процессором в оперативную память для блоков разной длины, в ее коде есть определение частоты.
http://bobjohnson.nm.ru
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 30.08.2005, 13:15 Оценка за ответ: 5 Комментарий оценки: Вот что значит давно не был на Вашем сайте!
Отвечает: Евгений Иванов
Здравствуйте, Kuran!
частоту процессора программным путём менять не удастся, но вот частоту FSB сменить можно и коэффициента. так что запросто.
чтобы определить частоту процессора, нужно замерять количество тактов за секунду используя команду RDTSC.
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 30.08.2005, 15:03 Оценка за ответ: 4 Комментарий оценки: Японцем по имени H. Oda была создана замечательная программа SoftFSB, предназначенная для того, чтобы на лету изменять частоту FSB. Не знаю, как данная программа функционирует, но она корректирует параметры тактового генератора, и тот начинает работать на другой частоте!
Вопрос № 25.545
Приветствую Вас, уважаемые эксперты!
У меня така проблема: установил SoftICE в Windows XP SP2, но он у меня "не открывается": я запускаю программу из Symbol Loader, программа преспокойно запускается, а окошка SI нет. Когда ставлю бряк скажем, на правый клик мышки - сайс срабатывает. Раньше я работал с SI только под Win98, установил на ХР - и вот не работает...
Все настройки облазил вроде - всё как надо выставлено.
Подскажите, пожалуйста, в чём загвоздка?
Отвечает: BSOD
Здравствуйте, Капустин Евгений!
а чиво версию не написал ? че гадать должен ?
старые версии фигово работают на ХР
и ваще ? он те для чиго нужен ? эсли для дравов то оптимальный вариант SoftIce Driver Suite ver.2.7 намано пашет под хрюнделем
--------- Blue Screen of Death
Ответ отправил: BSOD (статус: 2-ой класс)
Отправлен: 30.08.2005, 14:44
Отвечает: Sager
Здравствуйте, Капустин Евгений!
Почитай вот это:
http://www.cracklab.ru/art/softice.php
Ответ отправил: Sager (статус: 5-ый класс)
Отправлен: 31.08.2005, 11:04
MOV AH,09h ; вывести строку
LEA DX, message
INT 21h
MOV AH,08h ; ввести символ без дублирования
INT 21h
SUB AL,30h
MOV str_,AL ; т.к. мне требуется менее девяти символов, то можно просто вычесть 48
XOR BX,BX
MOV Bl, AL
; тепреь в зависимости от введенного пользователем числа 0-7, нужно вывести соответсвующую строку символов
;----------------------
;т.к. мой массив имеет размерность 14 байтов, т.е. 2*7, то введем следующий алгоритм:
MOV AH, 09h
SHL BX,1 ; т.е. умножения на два
MOV DX, [strs+BX]
INT 21h
;----------------------
int 20h
day1 db 'Sunday..',0Ah,0Dh,'$'
day2 db 'Monday..',0Ah,0Dh,'$'
day3 db 'Tuesday.',0Ah,0Dh,'$'
day4 db 'Thursday',0Ah,0Dh,'$'
day5 db 'Saturday',0Ah,0Dh,'$'
day6 db 'Friday..',0Ah,0Dh,'$'
day7 db 'Saturday',0Ah,0Dh,'$'
message db 'введите номер дня недели: ',0Ah,0Dh,'$'
strs dw 7 dup(?)
str_ db ?
CSEG ends
end start
; В программе осталость определить такое условие, чтобы цифры введенные пользователем,
;не входящие в диапазон 0-6 игнорировались.
;---------------------------------
сам алгоритм искать лень, но могу подсказать, где найти.
подобные целочисленные алгоритмы (деления и умножения) активно предалагаются, при чем в ассемблерных мнемониках производителями однокристальных микроконтроллеров.
Документы на эту и др. тему называются Application Note(s)
Вот ссылочка на мой любимый сайтик www.atmel.ru
тут можно найти практически все. Остается только адаптировать к конкретному процессору - это просто, поверь
Ответ отправил: BOIL (статус: 4-ый класс)
Отправлен: 30.08.2005, 18:19
Отвечает: Евгений Иванов
Здравствуйте, Вася Пупкин!
чтобы заделить, используй команду DIV
sub edx,edx
mov eax, [dd_]
mov ebx, [dw_]
and ebx, 65535
div ebx
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 30.08.2005, 21:19
Отвечает: Sager
Здравствуйте, Вася Пупкин!
Добавлю, что вместо:
mov ebx, [dw_]
and ebx, 65535
пиши так:
movzx ebx, [dw_] (если кодишь под досом, то поставь вначале директиву .386)
Ответ отправил: Sager (статус: 5-ый класс)
Отправлен: 31.08.2005, 10:51