Я не уверен, что подразумевается под 16-разрядными или 32-разрядными приложениями. Разве это 16-битное приложение - это приложение, которое не требует больше 2 × 16 байт памяти? Этот 16-бит относится к максимальному размеру приложения?Что означает 32-битное приложение?
ответ
A 32-bit application is software that runs in a 32-bit flat address space.
Ответы на общие вопросы
Будет ли 64-битный процессор работать с программой (32-бит) стандарта на 64-разрядной версии ОС с? Да, это будет. 64-битные системы обратно совместимы с 32-разрядными аналогами.
Будет ли 64-разрядная ОС запускать стандартное приложение на 64-битном процессоре? Опять же, это будет. Это связано с обратной совместимостью.
Могу ли я запустить W2K и WXP на 64-битном процессоре и использовать старое программное обеспечение? Да, 32-разрядная ОС (W2K и WXP) будет работать на 64-битном процессоре. Кроме того, вы должны иметь возможность запускать «старое программное обеспечение» на 64-битной ОС.
Это означает, что приложение было скомпилировано для процессора, который имеет 16 бит адресации памяти или 32-разрядную адресацию памяти. То же самое касается 64-битных приложений.
Номер относится к максимальному объему памяти, к которому может обратиться приложение.
плюс есть другая инструкция между 16 и 32 бит –
@ Фелисе Поллано - Хотя это не значит, что означают эти термины. Наборы команд могут быть идентичными (кроме адресации памяти). – Oded
@Oded. Можно ли просто сказать, что 16-бит в «16-битном приложении» относится к максимальному размеру приложения, которое может принимать в памяти? – KawaiKx
Число (32 или 16 директивы ассемблера адресного кода (пример «[use16]» и «[use32]»)) делает не относится к максимальному объему памяти, к которому может обратиться приложение!
Поскольку в 80386+ также возможно использовать префиксы operandize и adresssize в сочетании с 16-битным PM для адресации до 4 ГБ оперативной памяти.
(Максимальный объем памяти, что наше приложение может быть использование ссылается к записям сегмента в segmentsize внутри селектора GDT/LDT, по размеру или по умолчанию для сегмента 64 кб.)
Единственное отличие между 32-битным и 16-разрядным адресным модами - это значение и использование этих операндов и адресов.
[USE16]
Так что, если мы хотим использовать в 16 бит addressmode 32 битовых операндов/адресов, то мы должны добавить эти префиксы к нашему опкодом. Без этих префиксов мы можем использовать только 16 бит.
[USE32]
В 32 битном addressmode мы нашли диаметральную противоположную ситуацию, поэтому, если мы хотим использовать 32-битные операнды/адрес, то мы должны выйти из этих префиксов из нашего опкода и только если мы хотим использовать 16 операндов/адресов, то мы должны добавить эти префиксы в наш код операции.
Если мы используем эти директивы размера выше (или аналогичные обозначения), то наш ассемблер выполнит эту работу.
Operand size prefix in 16-bit mode
Dirk
Это тщательно ответил на суперпользователя: http://superuser.com/questions/56540/32-bit-vs-64-bit-systems –