ВУЗ:
Составители:
22
138 and eax,0fffffffeh ; Сброс бита 0
139 mov cr0,eax ; Запись cr0
140 db 0eah ; Код команды дальнего перехода
141 dw return ; Смещение
142 dw text ; Сегмент кода
143 ;*****************************************************
144 ;* Теперь процессор опять работает в реальном режиме *
145 ;*****************************************************
146 ;Восстановление операционной среды реального режима
147 return:
148 mov ax,data ; Инициализация сегментных регистров
149 mov ds,ax ; данных и
150 mov ax,stk ; стека
151 mov ss,ax ; в реальном режиме
152 ;Мы не восстанавливает содержимое SP, так как при таком мягком (без
153 ; сброса) переходе в реальный режим SP не разрушается
154 ;Разрешение всех прерываний
155 sti ; Разрешение маск. прерываний
156 mov al,0 ; Сброс бита 7 порта 70 КМОП -
157 out 70h,al ; разрешение NMI
158 ;Вывод сообщения в реальном режиме
159 mov ah,9 ; Вывод сообщения
160 mov dx,offset mes ; функцией DOS
161 int 21h
162 ;Ожидание нажатия клавиши
163 xor ah,ah
164 int 16h
165 ; Завершение программы
166 mov ax,4c00h
167 int 21h
168 main endp
169 code_size=$-main
170 text ends
171 stk segment stack 'stack'
172 db 256 dup(0)
173 stk ends
174 end main
К тексту программы добавлены номера строк, которые облегчат
описание отдельных команд в тексте. Следует иметь в виду, что перед
трансляцией показанного текста, необходимо удалить все номера строк,
так как компилятор на каждый номер будет выдавать ошибку.
32-разрядные микропроцессоры отличаются расширенным набором
команд, часть которых относится к привилегированным. Для того, чтобы
разрешить транслятору обрабатывать эти команды, в текст программы
138 and eax,0fffffffeh ; Сброс бита 0
139 mov cr0,eax ; Запись cr0
140 db 0eah ; Код команды дальнего перехода
141 dw return ; Смещение
142 dw text ; Сегмент кода
143 ;*****************************************************
144 ;* Теперь процессор опять работает в реальном режиме *
145 ;*****************************************************
146 ;Восстановление операционной среды реального режима
147 return:
148 mov ax,data ; Инициализация сегментных регистров
149 mov ds,ax ; данных и
150 mov ax,stk ; стека
151 mov ss,ax ; в реальном режиме
152 ;Мы не восстанавливает содержимое SP, так как при таком мягком (без
153 ; сброса) переходе в реальный режим SP не разрушается
154 ;Разрешение всех прерываний
155 sti ; Разрешение маск. прерываний
156 mov al,0 ; Сброс бита 7 порта 70 КМОП -
157 out 70h,al ; разрешение NMI
158 ;Вывод сообщения в реальном режиме
159 mov ah,9 ; Вывод сообщения
160 mov dx,offset mes ; функцией DOS
161 int 21h
162 ;Ожидание нажатия клавиши
163 xor ah,ah
164 int 16h
165 ; Завершение программы
166 mov ax,4c00h
167 int 21h
168 main endp
169 code_size=$-main
170 text ends
171 stk segment stack 'stack'
172 db 256 dup(0)
173 stk ends
174 end main
К тексту программы добавлены номера строк, которые облегчат
описание отдельных команд в тексте. Следует иметь в виду, что перед
трансляцией показанного текста, необходимо удалить все номера строк,
так как компилятор на каждый номер будет выдавать ошибку.
32-разрядные микропроцессоры отличаются расширенным набором
команд, часть которых относится к привилегированным. Для того, чтобы
разрешить транслятору обрабатывать эти команды, в текст программы
22
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »
