Почему программа, написанная на языке ассемблера Intel, не может быть выполнена на процессоре PowerPC?

408
Stack Holder

Инструкции на языке ассемблера являются родными для процессора, используемого в системе. Например, программа, написанная на языке ассемблера Intel, не может быть выполнена на процессоре PowerPC.

Я не могу этого понять. Пожалуйста, уточните меня.

-2
Учтите это: книгу, написанную на французском, может прочитать только тот, кто понимает французский. Он не может быть прочитан кем-то, кто говорит только по-голландски. Hennes 8 лет назад 0
Другой язык ассемблера, разные инструкции, совершенно разные архитектуры Ramhound 8 лет назад 0
Там нет такого понятия, как кросс-ассемблер? Хм .. конечно есть. Jamie Hanrahan 8 лет назад 0
@JamieHanrahan - да, конечно, есть компиляторы и ассемблеры, но если вы посмотрите на фактический шестнадцатеричный код, используемый в архитектуре одного процессора, а также на несовместимый процессор другой компании, то фактический код для функции может отличаться. Следовательно, вы не можете писать код непосредственно в файл и ожидать, что он будет означать то же самое для другой строки - не семейства процессоров. Вот почему мы называем их «наборы инструкций» x86, mmx, mmx2 и т. Д. - общеизвестные для процессоров «intel», TG2 8 лет назад 0
Я все это знаю. Вопрос не в том, «какой фактический гекс используется в архитектуре одного процессора». Вопрос о «программе, написанной на языке ассемблера Intel». В этом отношении программа, написанная на языке ассемблера Intel, также не будет работать на процессорах Intel. Это должно быть собрано. И есть кросс-ассемблеры. Вполне возможно сгенерировать машинный код PowerPC из языка ассемблера Intel (хотя некоторые конкретные детали, такие как реализация сегментирования Intel, не будут отображаться напрямую из одного в другой). «Лучший ответ» действительно должен прояснить это различие. Jamie Hanrahan 8 лет назад 0

1 ответ на вопрос

1
music2myear

Потому что архитектура (физическая структура определяется логическими принципами работы процессора) различна.

И x86, и PowerPC выполняют одно и то же: центральный процессор общего назначения для обработки кода в вычислительном устройстве, но они построены с использованием разных представлений о том, как работает такая система, и поэтому используют разные формы и методы для достижения сходных целей. ,

Я бы не сказал архитектуру, потому что это слишком расплывчатый * специфический набор команд *, который процессор был разработан для работы, в порядке, порядке и для ожидаемого результата, который был разработан по-разному для каждого семейства процессоров или типа. Каждый может согласиться с тем, что «умножение» как математическая функция должно быть одинаковым результатом для каждого способа выполнения действия. Однако процессор Intel делает это не так, как процессор PowerPC, и хотя простое указание имени функции не означает, что один и тот же базовый шестнадцатеричный код одинаков для разных марок, типов или семейств процессоров. TG2 8 лет назад 1
Набор инструкций и архитектура являются двумя сторонами одной медали, и я думаю, что было бы лучше сказать, что они оба являются причиной. Каждый информирует другого, и оба они определяются предположениями, знаниями, сильными и слабыми сторонами людей и команд, которые изначально разрабатывали эти два одинаковых, но разных процессора. music2myear 8 лет назад 0
- «Набор инструкций и архитектура - две стороны одной медали» - не всегда так. посмотрите на процессоры брендов Intel и AMD. Они имеют длительный период размножения, * оба * реализуют набор команд x86, но архитектура процессора сильно отличается. Даже когда AMD добавила MMX и другие расширения, им не нужно было использовать ту же эталонную архитектуру процессора Intel, лишь бы у чипа AMD был тот же результат из набора инструкций, который Intel изначально создала. TG2 8 лет назад 0