Вопрос № 51065: Привет, эксперты. Помогите разобраться с вопросом, я новичок в этом деле.
mov al, 05; 5
add al, 04; 4
ret
Вот. Почему после опперации add у меня изменяется регистр
pf в значение 1, когда в книге написано что он устанавливает...Вопрос № 51068: Привет эксперты. Вот я тут задумался и у меня возник вопрос. Всем известно что Windows многозадачная О.С. Расскажите про это, как она может выполнять сразу несколько программ одновременно? Ну допустим одна программа использует регистры, записала туда...
Вопрос
№ 51.065
Привет, эксперты. Помогите разобраться с вопросом, я новичок в этом деле.
mov al, 05; 5
add al, 04; 4
ret
Вот. Почему после опперации add у меня изменяется регистр
pf в значение 1, когда в книге написано что он устанавливается в 1, когда чётное число битов равно 1, хотя как я понимаю результат будет
9, а 9 это в бин - это 1000 - И где здесь чётное число битов равных 1, если он здесь только один. Спасибо.
Отвечает: Physicist
Здравствуйте, Александр Михайлович!
Вы не правы. 9 в двоичной системе это 1001 (8=1000, 4=0100, 2=0010, 1=0001, поэтому 9=8+1=1000+0001=1001).
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 03.08.2006, 19:50 Оценка за ответ: 5 Комментарий оценки: Таблётки пью от зубной боли - туплю
Отвечает: Волков Павел Юрьевич
Здравствуйте, Александр Михайлович!
Дополню, что pf=1 указывает на четное количество бит равных 1.
--------- Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: 5-ый класс)
Ответ отправлен: 03.08.2006, 22:43
Вопрос № 51.068
Привет эксперты. Вот я тут задумался и у меня возник вопрос. Всем известно что Windows многозадачная О.С. Расскажите про это, как она может выполнять сразу несколько программ одновременно? Ну допустим одна программа использует регистры, записала туда нужные знчаения, а потом О.С. передаёт управление другому процессу или приложению, и это приложение тоже исп. теже самые регистры и затирает те данные, которые исп. предыдущая программа. И как программа снова восстанавливает их? Или они куда то временно пишутся
и как процессор узнёт какому приложению какие данные для этих регистров загрузить. Спасибо.
Этим занимается сама Windows, она сохраняет набор регистров процесса при переключении на другой, а потом при обратном переключении восстанавливает.
Кстати меня когда-то тоже мучал этот вопрос, ответ я нашел на wasm.ru, к сожалению сейчас найти не смог того материала, но советую Вам посетить этот ресурс, очень много толкового материала для новичка и для профи.
Удачи ;)
Ответ отправил: Saw (статус: 2-ой класс)
Ответ отправлен: 03.08.2006, 20:06 Оценка за ответ: 5 Комментарий оценки: Понятно значит это просто вынь так делает. Интересно а куда она их сохраняет?
Отвечает: newinfo2005
Здравствуйте, Александр Михайлович!
Есть такая штука TSS куда записываются данные (регистры,FPU и т.д.).
Многозадачность реализуются в основном через таймер проца вызывающийся с частотой 18.5 Гц.
как правило обработчик таймера сохраняет регистры,другие данные старой задачи и восстанавливает другой задачи и после чего передаются туда управление.
И делается это так быстро, что нам кажется они работают одновременно.
Это я описал для процов одноядерников с двумядерниками такая же примерно схема. Всё про всё эото можете найти в любой книжке по защ. режиму процу.
--------- "Спасибо" - нет такой валюты.
Ответ отправил: newinfo2005 (статус: 7-ой класс)
Ответ отправлен: 03.08.2006, 20:11
Отвечает: Mihasic
Здравствуйте, Александр Михайлович!
Винда сохраняет контекст программы, этот контекст представляет собой структуру в памяти, в которой содержаться все регистры, флаги, сегменты и не только (также есть дополнительная информация). Переключение осуществляется по прерыванию от таймера (для разъяснения этого почитай про мультизадачность в защищенном режиме проца - хотя в этом смысле я знаю только про x86). Вообще майкрософт не документирует это все (но структуру контекста можно выдрать из исходников windows platform SDK), майкрософт лишь говорит, что
механизм распределения рпоцессорного времени работает "честно" - значит все может изменится в следующей ОСи.
Ответ отправил: Mihasic (статус: 3-ий класс)
Ответ отправлен: 04.08.2006, 11:31