Число (32 или 16 директивы ассемблера адресного режима (например, «[use16]» и «[use32]»)) делает не относится к максимальному объему памяти, которое приложение может адрес!
Потому что с 80386+ также возможно использовать префиксы операндного размера и размера адреса в сочетании с 16-битным PM для адресации до 4 ГБ оперативной памяти.
(Максимальный объем памяти, который может использовать наше приложение, ссылается на записи сегментов размера сегмента внутри селектора GDT / LDT или на размер по умолчанию для сегмента 64 КБ.)
Единственное различие между 32-битным и 16-битным адресным режимом заключается в значении и использовании этих префиксов размера операндов и размеров адресов.
[USE16]
Так что, если мы хотим использовать в 16-битном адресном режиме 32-битные операнды / адреса, то мы должны добавить эти префиксы в наш код операции. Без этих префиксов мы можем использовать только 16 бит.
[USE32]
В 32-битном адресном режиме мы обнаружили диаметрально противоположную ситуацию, поэтому, если мы хотим использовать 32-битные операнды / адреса, мы должны исключить эти префиксы из нашего кода операции и только если мы хотим использовать 16 операндов / адресов, затем мы должны добавить эти префиксы в наш код операции.
Если мы будем осторожно использовать вышеуказанные директивы по размеру (или аналогичные обозначения), то наш ассемблер выполнит эту работу.
Префикс размера операнда в 16-битном режиме
Dirk