что подразумевается под 32-битным приложением? - PullRequest
1 голос
/ 04 февраля 2011

Я не уверен, что подразумевается под 16-битными или 32-битными приложениями.Это 16-битное приложение - это приложение, которое не требует более 2 ^ 16 байт памяти?Относится ли этот 16-битный к максимальному размеру приложения?

Ответы [ 3 ]

2 голосов
/ 04 февраля 2011

32-разрядное приложение - это программное обеспечение, работающее в 32-разрядном плоском адресном пространстве.

Ответы на общие вопросы

Будет ли 64-разрядный ЦП запускать стандартную (32-разрядную) программу в 64-разрядной версии ОС? Да, это будет. 64-битные системы обратно совместимы с 32-битными аналогами.

Будет ли 64-разрядная ОС запускать стандартное приложение на 64-разрядном процессоре? Опять будет. Это из-за обратной совместимости.

Можно ли запустить W2K и WXP на 64-разрядном процессоре и использовать старое программное обеспечение? Да, 32-разрядная ОС (W2K и WXP) будет работать на 64-разрядном процессоре. Кроме того, вы должны иметь возможность запускать «старое программное обеспечение» в 64-битной ОС.

2 голосов
/ 04 февраля 2011

Это означает, что приложение было скомпилировано для процессора, который имеет 16-битную адресацию памяти или 32-битную адресацию памяти.То же самое касается 64-битных приложений.

Число относится к максимальному объему памяти, к которому может обращаться приложение.

См. Википедию - 16-бит , 32-разрядный , 64-разрядный (и более).

0 голосов
/ 02 февраля 2013

Число (32 или 16 директивы ассемблера адресного режима (например, «[use16]» и «[use32]»)) делает не относится к максимальному объему памяти, которое приложение может адрес!

Потому что с 80386+ также возможно использовать префиксы операндного размера и размера адреса в сочетании с 16-битным PM для адресации до 4 ГБ оперативной памяти.

(Максимальный объем памяти, который может использовать наше приложение, ссылается на записи сегментов размера сегмента внутри селектора GDT / LDT или на размер по умолчанию для сегмента 64 КБ.)

Единственное различие между 32-битным и 16-битным адресным режимом заключается в значении и использовании этих префиксов размера операндов и размеров адресов.

[USE16]

Так что, если мы хотим использовать в 16-битном адресном режиме 32-битные операнды / адреса, то мы должны добавить эти префиксы в наш код операции. Без этих префиксов мы можем использовать только 16 бит.

[USE32]

В 32-битном адресном режиме мы обнаружили диаметрально противоположную ситуацию, поэтому, если мы хотим использовать 32-битные операнды / адреса, мы должны исключить эти префиксы из нашего кода операции и только если мы хотим использовать 16 операндов / адресов, затем мы должны добавить эти префиксы в наш код операции.

Если мы будем осторожно использовать вышеуказанные директивы по размеру (или аналогичные обозначения), то наш ассемблер выполнит эту работу.

Префикс размера операнда в 16-битном режиме

Dirk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...