Помощь в написании студенческих работ
Антистрессовый сервис

И битовые целые числа со знаком и без знака

РефератПомощь в написанииУзнать стоимостьмоей работы

В этом формате двоичный код интерпретируется обрабатывающей его командой как код символа. При работе с персональными ЭВМ обычно используется система кодирования ASCII, о которой говорилось в другом месте. В ней стандартизированы (закреплены за определенными символами) коды, у которых значение старшего бит, а равно 0; все прочие коды остаются за символами национальных алфавитов и дополнительными… Читать ещё >

И битовые целые числа со знаком и без знака (реферат, курсовая, диплом, контрольная)

Они в точности аналогичны 8-и битовым, но код имеет вдвое большую длину. Соответственно, многократно возрастает диапазон представимости: для чисел без знака от 0000 до FFFF (т.е. от 0 до 65 535 в десятичной системе), для чисел со знаком — от -8000 до +7FFF (т.е. от -32 768 до +32 767).

-и битовые символы

В этом формате двоичный код интерпретируется обрабатывающей его командой как код символа. При работе с персональными ЭВМ обычно используется система кодирования ASCII, о которой говорилось в другом месте. В ней стандартизированы (закреплены за определенными символами) коды, у которых значение старшего бит, а равно 0; все прочие коды остаются за символами национальных алфавитов и дополнительными специальными символами.

Битовые поля

В этом формате значащим является не весь 8-и или 16-и разрядный код в целом, а каждый из составляющих его битов. Пример битового поля — содержимое регистра состояния процессора. Существуют и другие форматы данных — двоично-десятичные числа, строки и т. д.

Обработка внутрипроцессорных и программных прерываний.

В процессе исполнения программы могут произойти события, которые либо делают дальнейшую работу невозможной, либо требуют специальной реакции — т.н. прерывания. В этом пункте обсуждаются три класса прерываний; разговор о прерываниях от внешних устройств — в следующем пункте.

Приведем примеры внутрипроцессорных прерываний. Всегда возможен аппаратный сбой при выполнении операции, после которого процессор «не знает» что делать дальше. Возможны переполнения разрядной сетки при выполнении как арифметических, так и логических операций, когда получившийся операнд не помещается в регистр.

Другой тип — программные прерывания. Например, для IBM-совместимых компьютеров в литературе часто описываются многочисленные команды прерывания INT с самыми разнообразными номерами. Следует четко представлять, что INT — это одна из инструкций процессора; чтобы она заработала, ее код должен содержаться в программе. В противоположность этому, «настоящие» прерывания возникают аппаратно и не требуют наличия каких-то специальных команд в тексте прерываемой программы. Более того, аппаратное прерывание может произойти между двумя любыми командами программы.

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

События, вызывающие прерывания, можно разделить на 2 группы:

  • · фатальные
  • · нефатальные.

На фатальные (неотвратимо наступающие) процессор может реагировать единственным способом: прекратить исполнение программы, проанализировать событие и принять соответствующие меры (чаще всего — сообщить причину прерывания пользователю и ждать его реакции). Однако, часто можно с остановкой программы повременить: запомнить, что прерывание было, и продолжать исполнять программу. Например, сложение с переполнением разрядной сетки — фатальное событие, после которого остановка неизбежна; попытка вывода на принтер, неготовый к приему информации, может быть отложена (с сохранением этой информации).

Запрет прерываниямаскировказадается программистом или системной программой. Делается это либо с помощью установления вида битового поля в специальном регистре маски прерываний, в котором значения разрядов — 0 или 1 — связаны соответственно с отсутствием или наличием маскировки закрепленного за этим разрядом прерывания, либо с аналогичным использованием разрядов регистра состояния процессора.

После получения сигнала о незамаскированном прерывании процессор делает следующее:

  • · распознает источник прерывания;
  • · запоминает состояние прерванной программы;
  • · вызывает и выполняет специальную системную программу обработки прерываний;
  • · восстанавливает состояние прерванной программы и, при возможности, продолжает ее исполнение.

Для распознания источника прерывания анализируются некоторые биты регистра состояния процессора, состояние внешних устройств (детали см. ниже) и т. д.

Для запоминания состояния прерванной программы чаще всего используется стек. Выше мы уже говорили о стеке в ракурсе организации особого способа адресации. Кроме того, стек используется процессором как для организации механизма прерываний, так и для обработки обращения к подпрограммам, передачи параметров и временного хранения данных.

Вообще говоря, стек — это одна из линейных динамических структур данних, в которую можно добавить или из которой можно удалить данное лишь через специальную область — вершину стека. Роль вершины в данном случае играет одна из ячеек ОЗУ, адрес которой храниться в регистре «указатель стека» .

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

Назначение программы обработки — понять и в удобной для пользователя форме вывести (обычно на экран) сообщение о причине прерывания и иногда — рекомендации по возможной реакции на эту причину. При занесении в стек некоторого данного оно поступает в вершину стека; после поступления следующего данного оно занимает вершину, а предыдущее «опускается» по стеку и т. д. При этом адресации подлежит лишь вершина, т.к. ячейки, образующие стек, расположены в памяти последовательно. Чтение из стека возможно лишь в обратном порядке через вершину по принципу «последним пришел — первым ушел» .

Все это разительно отличается от ситуации с машинами 1-ого и 2-ого (а отчасти — и 3-его) поколений, когда пользователь без помощи системного программиста в большинстве случаев не мог разобраться в причине события, вызвавшего прерывание его программы на этапе исполнения. Такая ситуация стала нетерпимой для персональных компьютеров и чем совершеннее анализатор программы обработки прерываний, тем выше уровень «дружелюбности» пользовательского интерфейса.

Показать весь текст
Заполнить форму текущей работой