2011-02-04 3 views
1

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

+0

Это тщательно ответил на суперпользователя: http://superuser.com/questions/56540/32-bit-vs-64-bit-systems –

ответ

2

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-битной ОС.

2

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

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

См. Wikipedia - 16-bit, 32-bit, 64-bit (и более).

+0

плюс есть другая инструкция между 16 и 32 бит –

+0

@ Фелисе Поллано - Хотя это не значит, что означают эти термины. Наборы команд могут быть идентичными (кроме адресации памяти). – Oded

+0

@Oded. Можно ли просто сказать, что 16-бит в «16-битном приложении» относится к максимальному размеру приложения, которое может принимать в памяти? – KawaiKx

0

Число (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