Глава 6. Использование регистров общего назначения для адресацииДля обращения к памяти через регистры обычно используются четыре 16-разрядных регистра общего назначения (РОН): BX, SI, DI и BP. В защищённом режиме для адресации можно использовать все 8 регистров общего назначения. Как видите, регистр AX является составной частью регистра EAX (так же, как регистры AL и AH являются составными частями регистра AX), т.е. если вы обращаетесь к регистру AX, то вы меняете содержимое регистра EAX. Также, расширен 16-разрядный регистр FLAGS - теперь это 32-разрядный EFLAGS, младшая половина которого представляет собой FLAGS: Регистр IP (Instruction Pointer) был расширен до 32-разрядного EIP: Регистр EIP непосредственно использовать нельзя, но теперь следует учитывать, что при 32-разрядной адресации памяти в качестве адреса перехода можно указывать 32-разрядную величину. В 32-разрядном процессоре вы по-прежнему можете адресовать память через четыре 16-разрядных регистра BX, SI, DI и BP, но дополнительно к этому можно использовать каждый из 32-разрядных регистров общего назначения, причём в любом режиме (не только защищённом). Например: mov ax,[ ebx ] ; Поместить в AX значение из памяти Дополнительно к этой возможности введены следующие:
Очевидно, что возможности, которые нам предоставляла XT, 32-разрядные процессоры значительно расширили. Следует, однако, учитывать, что в ранних процессорах (i386 и i486) на вычисление эффективного адреса процессор расходует дополнительное время, но благодаря универсальности этой системы адресации всё равно имеет место итоговый выигрыш в производительности. При использовании 32-разрядных регистров для адресации в режиме реальных адресов, следует учитывать, что размер сегмента фиксирован и равен 64 Кб. Если процессор сформирует адрес, больший 64 Кб, то процессор зависнет, т.е. он не будет производить заворачивание адресов. Например: mov eax,1234h Использование 32-разрядных регистров для адресации памяти в защищённом режиме очень распространено, в основном, из-за того, что размер сегментов может достигать 4 Гб, да и просто потому, что это удобно. |