2015-01-30 3 views
-1

У меня есть задание сделать код сборки, который я должен запускать на процессоре Intel с 32-разрядным регистром. Проблема в том, что у меня нет 32-битного процессора.Имитация 32-разрядного регистра процессора - требуется достаточно компилятора или 32-разрядной ОС?

Мой вопрос: Мне интересно, если компиляция в виде 32-разрядного приложения с -m32 в gcc достаточна для имитации 32-разрядного регистра процессора? Или мне нужно установить 32-разрядную ОС для правильной имитации 32-разрядного регистра процессора?

+2

вы можете полностью эмулировать современную 64-битную ОС, работающую на i7 cpu, используя старую коробку 8088-4,77 МГц в качестве хоста. производительность может быть несколько недостаточной, но это теоретически выполнимо. так что ... да, вы можете сделать 32-битную математику на процессоре, который не является 32-битным. он просто требует больше инструкций и не будет столь эффективным. –

ответ

1

Это зависит от того, что вы подразумеваете под «имитировать 32-разрядный регистр», 64-разрядный регистр «имитирует» 32-битный регистр, если вы игнорируете верхние 32 бита.

+0

Да, я думаю, мой вопрос в основном, если компиляция в gcc, поскольку 32-битное приложение заставит его игнорировать верхние 32 бита? Или мне нужно запустить 32-разрядную ОС? – user3284549

+2

Если вы скомпилируете 32-разрядное приложение, оно будет работать на 64-битном процессоре так же, как если бы оно выполнялось на 32-битном процессоре (предполагая, что мы говорим о x86/x86_64). – tangrs