2014-11-02 2 views
2

방금 ​​아키텍처를 배우기 시작했고 MIPS와 ARM 아키텍처간에 약간의 혼란이있었습니다.MIPS와 ARM의 차이점

MIPS에는 주로 I와 R (J도 마찬가지)이라는 두 가지 명령어 형식이 있다는 것을 알게되었습니다. 이 표현 형식, rs, rt, opcode 및 관련 내용에 대해 읽었습니다. 또한 ARM ISA에 중점을 둔 Patterson COA 책 (Edition-IV)을 살펴 보았습니다. 명령 표현은 해당 에디션과 다릅니다. 다양한 아키텍처로 인해 이러한 차이가 있습니까? 그리고 ARM 어셈블리 코드는 MIPS ISA에서 사용한 책과 약간 다릅니다.

예 : 내가 읽은 다른 MIPS 하나는 그들이 수행하거나 같은 ISA의 두 가지 다른 버전입니다

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

인해 ISA에 차이가 말한다 동안 패터슨 '판 IV는

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

을 말한다? MIPS와 ARM의 주요 차이점에 대해서도 설명 할 수 있습니까?

+0

r5 나 r1도없는 MIPS 어셈블리 구문이 없습니다. $ 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은로드이고 arm이라는 단어를 저장합니다. x86의 경우 mov를 사용합니다.

Mips는 일반적으로 $ 0- $ 31 또는 더 역겨운 $ v0 등을 사용하는 구문을 가지고 있습니다. 팔과 많은 다른 사람들은 r과 숫자 r0-rn을 사용합니다 (일부 사람들은 별칭 이름을 사용하여이를 uglify하려고합니다.).

ARM과 MIPS는 경쟁 업체이며 동일한 아키텍처가 아닌 동일한 회사가 아닙니다. MIPS 머신 인코딩은 위에서 언급 한 몇 가지 범주로 분류되며, ARM은 그 이유가 무엇이든간에 여러 가지 이유로 MIPS 또는 ARM 설명서에 잘 설명되어 있습니다.

명령 집합의 발명가가 선택한 이유가 무엇이든, 좋고, 나쁘거나 또는 다른 이유로 명령 인코딩이 가능한 한 원하는대로 할 수있는 것은 명령 인코딩입니다.

어셈블리 언어 구문에 관한 한, isa 발명가는 일반적으로 명령어 세트에 대한 문서와 함께 작성하고 일반적으로 어셈블러를 만들 사람을 만들거나 고용합니다. 그러나 어셈블러 (어셈블리 언어를 가져 와서 기계 코드를 작성하는 소프트웨어) 작성자는 궁극적으로 어셈블리 언어 구문을 지정하며 isa 문서의 구문을 준수하지 않아도됩니다. 두 개의 별도로 작성된 어셈블러가 동일한 구문을 사용하는 이유는 없습니다. 예를 들어 16 진수의 경우 달러 기호 $ 12 또는 후행 시간이 12 시간 이었지만 이제는 C 구문이 지원되거나 선호되는 0x12가 표시됩니다. 가끔 간접비와 오프셋을 12 (r3) 또는 [r3, # 12]로 보거나 똑같은 것을 설명하기도합니다.

+0

대부분의 ISA에는 asm에서 매우 비슷하게 보일 수있는 몇 가지 매우 유사하고 기본적인 명령어가 포함될 것입니다. ldr/lw와 str/sw처럼, 모든 arith 연산은 add, and, or 등과 같이 유사합니다 (ARM과 MIPS도 x86과 달리 3 가지 레지스터/값 접근법을 사용하는 것 같습니다). 이 작업의 배경은 하드웨어가 작동하는 방식에있어 이러한 작업이 다소 중요하다는 것입니다. – Unn

+0

당신이 배울 때 배워야 할 몇 가지 사실은 서로 다르지만로드, 저장, 추가 또는 일반적으로 다른 기본 작업과 비슷하지만 쉼표의 구문과 뉘앙스가 광범위하다는 것입니다. . –

+0

사실, 구문은 완전히 어셈블러에 의존합니다 (예 : x86의 경우 AT & T vs Intel 구문). 그러나 구조는 그것을 통해 독서하는 것만 큼 매우 유사합니다. 이러한 뉘앙스는 MIPS의 분기 지연 슬롯과 ARM의 예측 된 실행과 너무 비슷하지만 재미있을 수 있습니다. – Unn

관련 문제