что подразумевается под 32-битным приложением?
Вопрос
Я не совсем понимаю, что подразумевается под 16-битными или 32-битными приложениями.Это 16-битное приложение, которому не требуется более 2 ^ 16 байт памяти?Относится ли этот 16-битный к максимальному размеру приложения?
Другие советы
Это означает, что приложение было скомпилировано для процессора с 16-битной или 32-битной адресацией памяти.То же самое и с 64-битными приложениями.
Число означает максимальный объем памяти, который может адресовать приложение.
См. википедию - 16-битный , 32-разрядный , 64-битная (и другие).
Число (32 или 16 директивы ассемблера для режима адресации (например, «[use16]» и «[use32]»)) не относится к максимальному объему памяти, который приложение можно обратиться!
Потому что с 80386+ также можно использовать префиксы размера операнда и размера адреса в сочетании с 16-битным PM для адресации до 4 ГБ оперативной памяти.
(Максимальный объем памяти, который может использовать наше приложение, относится к элементам сегмента segmentize внутри селектора GDT / LDT или по размеру по умолчанию для сегмента 64 КБ.)
Единственное отличие между 32-битным и 16-битным режимами адреса - это значение и использование этих префиксов размера операнда и размера адреса.
< sizes[use16pting
Итак, если мы хотим использовать в 16-битном адресном режиме 32-битные операнды / адреса, то мы должны добавить эти префиксы в наш код операции. Без этих префиксов мы можем использовать только 16 бит.
< sizes[use32pting
В 32-битном адресном режиме мы обнаружили диаметрально противоположную ситуацию, поэтому, если мы хотим использовать 32-битные операнды / адреса, мы должны исключить эти префиксы из нашего кода операции, и только если мы хотим использовать 16 операндов / адресов, затем мы должны добавить эти префиксы в наш код операции.
Если мы будем осторожно использовать указанные выше директивы размера (или аналогичные обозначения), то наш ассемблер выполнит эту работу.
Префикс размера операнда в 16-битном режиме
Дирк