ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »