2014-10-15 2 views
0

누구나 소스 코드가 어셈블리 언어 밉과 cisc로 실행되는 간단한 프로그램을 가지고있어 cisc보다 적은 CPU 사이클로 실행되는 밉을 설명 할 수 있습니까?Mips and cisc assembly langue

간단한 프로그램이 필요하지 않은 큰 일

+0

안녕하세요. –

+0

저는 베트남에 살면서 제 영어 실력이 정말 좋지 않아서 검색을 시도했지만 아무 것도 못 찾았습니다 –

+1

왜 Mips가 더 적은 사이클로 그것을 실행할 것이라고 생각합니까? – Leeor

답변

0

이 간단한 예는 비교 두 개의 서로에 대한 문자열이 될 것입니다 감사합니다 :

MIPS

; string pointers in $a0 and $a1 
more: 
    ld $r0,($a0) 
    ld $r1,($a1) 
    add 1, $a0 
    add 1, $a1 
    cmp $r0,$0 
    je eos 
    cmp $r1,$0 
    je eos 
    cmp $r0,$r1 
    je more 
eos: 
    cmp $r0, $r1 
; cmp result defines whether a0 < a1, a0 == a1, a0 > a1 

CISC (인텔)

; start with strings in edi and esi 
more: 
    cmps (edi), (esi) 
    loopnz more 
; cmps result defines whether a0 < a1, a0 == a1, a0 > a1 

이 코드의 유효성을 보장하지는 않습니다. 그러나 CISC가 MIPS와 동일한 명령어를 수행한다는 것을 알 수 있습니다 (초기화는 CISC에서 더 많은 코드가 필요할 수 있지만 ...). 그러나, 그들은 대략 동일한 양의 시간이 걸릴 가능성이 있습니다.

+0

나는 그들이 같은 시간에 걸릴 것이라고 생각하지 않는다.'cmps'는 아마 최적화 될 것인가? – qwr

+0

'cmps'는 일반적으로 느리다 ... 어쨌든 전체적으로 동일한 작업을 수행해야하지만 두 작업을 동시에 수행 할 수 있기 때문에 더 빨리 작업 할 수있다. 그러나 인텔 프로세서에는 지연 (특히 'inc'및 'dec')이 발생할 수있는 FLAGS 레지스터가 있습니다. –