Cтраница 2
Задача записи или установки значения пиксела заключается в том, чтобы по заданным экранным координатам ( х, у) и значению пиксела ( оно обычно содержится в младших битах регистра AL) поместить значение пиксела в соответствующую ячейку видеобуфера. S этой задаче, как и в задаче считывания значения пиксела, требуются преобразование экранных координат в адрес байта видеобуфера и двоичное смещение, показывающее позицию пиксела в байте. В приводимых далее фрагментах предполагается такое же начальное содержимое регистров, как в предыдущих фрагментах для считывания значения пиксела: регистры ES: BX адресуют байт в видеобуфере, регистр CL содержит смещение в байте, а в регистре АН находится маска. [16]
Знание запасов и темпов их погашения ( отборов) - важный вопрос при продаже или реализации нефтеносных земель. Расчет запасов во вновь разведанных месторождениях особенно важен, так как он является путеводителем к созданию обоснованных проектов разработки. Кроме того, инженер по разработке должен тщательно изучить начальное содержимое продуктивных пластов. Он обязан изучить поведение пласта v чтобы рассчитать и ( или) улучшить первичные методы нефтеотдачи, что устранит одну из неизвестных величин в уравнениях. [17]
Первые пять команд введены, чтобы очистить адресуемые регистры РЗ-Р7. Однако очистка регистров Р5 и Р6 явно лишняя, ведь их начальное содержимое не влияет на работу программы. Фактически команды 37 и 42, заносящие в эти регистры нужную для дальнейшей обработки информацию, и очищают их, стирая предыдущее содержимое. [18]
Под счетчиком понимают обычную рабочую ячейку, в которой подсчитывают, сколько раз повторился цикл или сколько повторений осталось сделать. По способу отсчета различают счетчики прямой, обратный, отрицательный. Независимо от типа, суть их работы заключается в следующем. Перед началом цикла в счетчик засылают его начальное содержимое, а при каждом повторении меняют его на какое-то число, обычно на единицу. После очередного изменения сравнивают его с тем числом, которое должно получиться после n - кратного повторения цикла. При несовпадении управление передают на начало цикла, при совпадении - на выход из цикла. [19]
Способ б позволяет увеличивать содержимое адресов команд на содержимое регистра адреса. Этот способ удобен, если шаг изменения адресов одинаков. По сравнению со способом а достигается экономия команд и тактов работы машины, так как вместо переадресации нескольких команд достаточно изменить содержимое регистра адреса. В командах перехода после цикла изменение регистра адреса совмещено с управлением повторениями цикла. Восстановление цикла состоит в восстановлении начального содержимого РА. Так как изменение адресов с признаками состоит в сложении адресов с содержимым РА по модулю 212, то адреса можно не только увеличивать, но и уменьшать. [20]
Содержимое индекс-регистра сравнивается с числом а. Бели содержимое индекс-регистра больше числа а, то это число вычитается из содержимого индекс-регистра и разность заносится в индекс-регистр, после чего производится переход по адресу Р; в противном случае производится переход к следующей по порядку команде. Заметим, что здесь содержимое индекс-регистра выполняет роль и счетчика, и относительного адреса. Конечно, эта команда должна использоваться совместно с командой, задающей начальное содержимое индекс-регистра. [21]
А, а на четвертый раз передает его оператору F4 ( 0 - После нового получения управления оператором A. Вычисления прекращаются после того, как последняя единица логической шкалы уйдет влево за пределы разрядной сетки. Ае переводит результаты в десятичную систему счисления; П7 выдает их на перфокарты; Я8 останавливает машину. Сдвиг шкалы будем производить раньше проверки содержимого ее нулевого разряда, поэтому первую цифру шкалы поставим в первый разряд, а нулевой разряд, начальное содержимое которого не используется, для определенности займем нулем. [22]
Процессы являются более интересными, чем задания, а также более важными. Как и в системе UNIX, процессы представляют собой контейнеры для ресурсов. У каждого процесса есть 4-гигабайтное адресное пространство, в котором пользователь занимает нижние 2 Гбайт ( в версиях Windows 2000 Advanced Server и Datacenter Server этот размер может быть по желанию увеличен до 3 Гбайт), а операционная система занимает остальную его часть. Таким образом, операционная система присутствует в адресном пространстве каждого процесса, хотя она и защищена от изменений с помощью аппаратного блока управления памятью MMU. У процесса есть идентификатор процесса, один или несколько потоков, список дескрипторов ( управляемых в режиме ядра) и маркер доступа, хранящий информацию защиты. Процессы создаются с помощью вызова Win32, который принимает на входе имя исполняемого файла, определяющего начальное содержимое адресного пространства, и создает первый поток. [23]
Процессы являются более интересными, чем задания, а также более важными. Как и в системе UNIX, процессы представляют собой контейнеры для ресурсов. У каждого процесса есть 4-гигабайтное адресное пространство, в котором пользователь занимает нижние 2 Гбайт ( в версиях Windows 2000 Advanced Server и Datacenter Server этот размер может быть по желанию увеличен до 3 Гбайт), а операционная система занимает остальную его часть. Таким образом, операционная система присутствует в адресном пространстве каждого процесса, хотя она и защищена от изменений с помощью аппаратного блока управления памятью MM U. У процесса есть идентификатор процесса, один или несколько потоков, список дескрипторов ( управляемых в режиме ядра) и маркер доступа, хранящий информацию защиты. Процессы создаются с помощью вызова Win32, который принимает на входе имя исполняемого файла, определяющего начальное содержимое адресного пространства, и создает первый поток. [24]
Задача считывания значения пиксела ( или, проще, считывание пиксела) формулируется следующим образом: по заданным экранным координатам ( х, у) необходимо получить из видеобуфера значение соответствующего пиксела. Обычно это значение возвращается в младших битах регистра AL. По существу эта задача состоит из двух подзадач. Первая из них связана с преобразованием экранных координат ( х, у) в адрес байта видеобуфера, содержащего значение требуемого пиксела, и двоичным смещением в байте, определяющим позицию нужного пиксела. Эта подзадача для всех адаптеров была рассмотрена в разд. ES: BX адресуют байт видеобуфера, в регистре CL находится двоичное смещение в байте, а в регистре АН содержится маска. Такое начальное содержимое регистров обеспечивают соответствующие процедуры преобразования координат, приведенные в разд. Вторая подзадача состоит в том, чтобы локализовать значение нужного пиксела и поместить его в младшие биты регистра AL. Она решается довольно просто для адаптера CGA с линейной организацией видеобуфера ( и для режимов эмуляции CGA других адаптеров), но при организации видеобуфера в виде двоичных плоскостей несколько усложняется. [25]