2014-11-02 2 views
2

Я только начал изучать архитектуру, и у меня есть некоторые путаницы между архитектурой MIPS и ARM.Различия MIPS и ARM

Я узнал, что MIPS преимущественно имеет два формата инструкций: I и R (J). Я читал об этих форматах представления, rs, rt, opcode и связанных с ними вещах. Я также посмотрел книгу COA Паттерсона (издание-IV), в которой основное внимание уделяется ARM ISA. Представление инструкции в этом издании отличается. Являются ли эти различия из-за меняющейся архитектуры? И код сборки ARM немного отличается от книги, которую я использовал с MIPS ISA.

например. Паттерсона»издание IV говорит

LDR r5,[r3,#32] 
STR r1,[r4,#48] 

в то время как другой MIPS один я прочитал говорит

lw r5,[r3,#32] 
sw r1,[r4,#48] 

ли разница в связи с ISA они следуют или это две разные версии одного и того же ISA? Не могли бы вы также объяснить основные различия между MIPS и ARM?

+0

Нет синтаксиса сборки MIPS, такого как r5 или r1. У вас есть только от $ 0 до $ 32 или зарегистрируйте имена, такие как $ s0, $ t1, $ a0, $ v0, $ k0 ... Вам нужно написать что-то вроде 'lw $ 5, 32 ($ t3)' или 'sw $ a0, 48 ($ t4) ' –

+1

MIPS и ARM - это разные архитектуры и различные ISA. Они не отличаются друг от друга, поэтому называть «переменным» является неуместным –

+0

, поэтому lw, sw означает загрузку и сохранение для MIPS и ldr, str означает то же самое для ARM? – Mail

ответ

1

Да lw и sw загружают и сохраняют слово для mips. ldr и str загружаются и сохраняют слово для руки. а для x86 вы используете mov.

Mips обычно имеет синтаксис, который использует $ 0-3 $ или еще более отвратительный $ v0 и т. Д. Arm и многие другие используют r и число r0-rn (некоторые люди пытаются угадать это, а также именами псевдонимов).

ARM и MIPS являются конкурентами, это не та же компания, что и не те же архитектуры. Машиностроение MIPS относится к нескольким категориям, о которых вы упомянули, у ARM много причин по хорошей или плохой причине, они оба хорошо документированы в документации MIPS или ARM.

Что касается кодировки команд, которая определяется изобретателями инструкции, установленной по каким-либо причинам, которые они выбирают, хорошим, плохим или иным образом, это их дело, что они могут делать то, что хотят.

Как и в случае синтаксиса языка ассемблера, изобретатель isa, как правило, создает один для документации для набора инструкций, и они обычно создают или нанимают кого-то для создания ассемблера. Но ассемблер (программное обеспечение, которое берет язык ассемблера и выводит из него машинный код), авторы в конечном итоге диктуют синтаксис языка ассемблера, и они не должны соответствовать синтаксису документации isa. И нет никаких оснований для того, чтобы любые два отдельно созданных ассемблера использовали один и тот же синтаксис. Со временем, например, шестнадцатеричные числа имели знак доллара $ 12 или конечный h 12h, но теперь вы часто видите синтаксис C, поддерживаемый или предпочитаемый 0x12. Иногда вы видите косвенное плюс смещение как 12 (r3) или [r3, # 12] или описываете то же самое.

+0

Возможно, стоит отметить, что большинство МСА будут включать в себя несколько очень похожих и основных инструкций, которые, вероятно, будут очень похожи в asm. Так же, как и ldr/lw и str/sw, все операции arith будут похожи, например, add, и, или, и т. Д. (ARM и MIPS также оба используют 3 подхода к регистру/значению в отличие от x86). Причины этого в том, что эти операции несколько фундаментальны для того, как работает оборудование. – Unn

+0

правильно, что вы узнаете, когда узнаете несколько isas, что они похожи, поскольку они разные, загружают, сохраняют, добавляют или, как правило, и другие основные операции, но нюансы и, конечно же, синтаксис для asm широко варьируются. , –

+0

Очень верно, синтаксис полностью зависит от ассемблера (например, AT & T против синтаксиса Intel для x86); но конструкции все очень похожи, просто просматривая его. Хотя эти нюансы могут быть интересными также как интервалы задержки ветвления в MIPS и предполагаемое выполнение в ARM. – Unn

Смежные вопросы