ВУЗ:
Составители:
55
ВНИМАНИЕ! Как уже было сказано, после выхода из защищенного
режима нельзя перезаписывать регистр GS, иначе будет полностью или
частично стерта информация в соответствующем теневом регистре. В
частности, нельзя выполнять операции сохранения/восстановления
содержимого регистра при помощи команд работы со стеком push и pop.
При использовании нестандартных режимов работы возникают
определенные трудности в процессе отладки программ: стандартные
программы-отладчики становятся неудобными. Во многих случаях, однако,
достаточно использовать простую отладочную печать. В листинге 2.2 [1]
приведена подпрограмма ShowRegs, отображающая на экране содержимое
регистров общего назначения, сегментных регистров, регистра флагов и
регистра CR0. Недостаток этого упрощенного примера заключается в том, что
ShowRegs не сохраняет содержимое видеопамяти. Однако при использовании
линейной адресации программу не трудно усовершенствовать, если есть
достаточный запас оперативной памяти: в текстовом режиме для сохранения
одной страницы нужно менее 4 Кбайт, а в графическом режиме TrueColor32 с
разрешением 1920x1280 требуется уже 9,5 Мбайт.
Листинг 2.2 – Отладочная подпрограмма, предназначенная для
отображения на экран содержимого регистров процессора
DATASEG
label REGROW_386 byte
DB 0,0,'EAX =',0
DB 1,0,'EBX =',0
DB 2,0,'ECX =',0
DB 3,0,'EDX =',0
DB 4,0,'ESI =',0
DB 5,0,'EDI =',0
DB 6,0,'EBP =',0
DB 7,0,'ESP =',0
DB 8,0,'IP =',0
DB 9,0,'CS =',0
DB 10,0,'DS =',0
ВНИМАНИЕ! Как уже было сказано, после выхода из защищенного режима нельзя перезаписывать регистр GS, иначе будет полностью или частично стерта информация в соответствующем теневом регистре. В частности, нельзя выполнять операции сохранения/восстановления содержимого регистра при помощи команд работы со стеком push и pop. При использовании нестандартных режимов работы возникают определенные трудности в процессе отладки программ: стандартные программы-отладчики становятся неудобными. Во многих случаях, однако, достаточно использовать простую отладочную печать. В листинге 2.2 [1] приведена подпрограмма ShowRegs, отображающая на экране содержимое регистров общего назначения, сегментных регистров, регистра флагов и регистра CR0. Недостаток этого упрощенного примера заключается в том, что ShowRegs не сохраняет содержимое видеопамяти. Однако при использовании линейной адресации программу не трудно усовершенствовать, если есть достаточный запас оперативной памяти: в текстовом режиме для сохранения одной страницы нужно менее 4 Кбайт, а в графическом режиме TrueColor32 с разрешением 1920x1280 требуется уже 9,5 Мбайт. Листинг 2.2 – Отладочная подпрограмма, предназначенная для отображения на экран содержимого регистров процессора DATASEG label REGROW_386 byte DB 0,0,'EAX =',0 DB 1,0,'EBX =',0 DB 2,0,'ECX =',0 DB 3,0,'EDX =',0 DB 4,0,'ESI =',0 DB 5,0,'EDI =',0 DB 6,0,'EBP =',0 DB 7,0,'ESP =',0 DB 8,0,'IP =',0 DB 9,0,'CS =',0 DB 10,0,'DS =',0 55
Страницы
- « первая
- ‹ предыдущая
- …
- 53
- 54
- 55
- 56
- 57
- …
- следующая ›
- последняя »