Автор lisa
|
06.07.2011 г. |
Все службы ROM BIOS активизируются с помощью прерываний. Каждая команда прерывания обращается к конкретной записи в таблице векторов прерываний, расположенной в младших адресах памяти. В этой таблице хранятся адреса всех служебных программ ROM BIOS. Такая организация позволяет любой программе обращаться к службе, не зная ее точного местоположения в памяти. Это также позволяет перемещать служебные программы в памяти, расширять или модифицировать их, не оказывая при этом воздействия на те программы, которые используют данные службы. Хотя IBM старается поддерживать неизменным положение в памяти некоторых компонентов ROM BIOS, глупо было бы использовать эти абсолютные адреса, так как в будущем они могут измениться. Стандартным и в то же время предпочтительным и наиболее надежным способом активизации службы ROM BIOS является обращение к ней через прерывание, а не по абсолютному адресу.
Службы ROM BIOS могли бы выполняться под управлением одного главного прерывания, однако на самом деле они разбиты на группы по назначению, каждой из которых выделено свое прерывание. Такая организация облегчает замену при необходимости конкретной программы обработки прерывания. Например, если производитель аппаратуры разработал бы совершенно новый дисплей, функционирующий под управлением новой программы ROM BIOS, то он мог бы включить эту программу в комплект поставки вместе с дисплеем.
Новая программа ROM BIOS могла бы быть записана в RAM и заменяла бы собой соответствующий компонент ROM BIOS, используемый со старой аппаратурой. Обеспечивая модульность ROM BIOS, фирма IBM облегчает тем самым процесс модернизации и расширения возможностей своих компьютеров.
|