что подразумевается под 32-битным приложением?

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


person KawaiKx    schedule 04.02.2011    source источник
comment
На этот вопрос был подробно дан ответ в SuperUser: superuser.com/questions/56540/32-bit- против 64-битных систем   -  person 一二三    schedule 04.02.2011


Ответы (3)


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

Ответы на распространенные вопросы

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

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

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

person ayush    schedule 04.02.2011

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

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

См. википедию — 16-bit, 32-bit, 64-разрядная (и более).

person Oded    schedule 04.02.2011
comment
плюс есть разные наборы инструкций между 16 и 32 битами - person Felice Pollano; 04.02.2011
comment
@Felice Pollano - Хотя на самом деле это не то, что означают эти термины. Наборы инструкций могут быть идентичными (кроме адресации памяти). - person Oded; 04.02.2011
comment
@Oded Итак, можем ли мы просто сказать, что 16-бит в «16-битном приложении» относится к максимальному размеру, который приложение может занимать в памяти? - person KawaiKx; 04.02.2011
comment
@Saurabh - это также относится к типу процессора, на котором он может работать. Некоторые 32-битные процессоры имеют обратную совместимость с 16-битными приложениями, некоторые нет. - person Oded; 04.02.2011
comment
@Oded mov eax,1 ‹› mov ax,1 ? - person Felice Pollano; 04.02.2011
comment
@Felice - я думаю, вы говорите о конкретных процессорах. - person Oded; 04.02.2011

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

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

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

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

[use16]

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

[use32]

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

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

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

Кортик

person Dirk Wolfgang Glomp    schedule 02.02.2013