누구나 소스 코드가 어셈블리 언어 밉과 cisc로 실행되는 간단한 프로그램을 가지고있어 cisc보다 적은 CPU 사이클로 실행되는 밉을 설명 할 수 있습니까?Mips and cisc assembly langue
간단한 프로그램이 필요하지 않은 큰 일
는
누구나 소스 코드가 어셈블리 언어 밉과 cisc로 실행되는 간단한 프로그램을 가지고있어 cisc보다 적은 CPU 사이클로 실행되는 밉을 설명 할 수 있습니까?Mips and cisc assembly langue
간단한 프로그램이 필요하지 않은 큰 일
는
이 간단한 예는 비교 두 개의 서로에 대한 문자열이 될 것입니다 감사합니다 :
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에서 더 많은 코드가 필요할 수 있지만 ...). 그러나, 그들은 대략 동일한 양의 시간이 걸릴 가능성이 있습니다.
나는 그들이 같은 시간에 걸릴 것이라고 생각하지 않는다.'cmps'는 아마 최적화 될 것인가? – qwr
'cmps'는 일반적으로 느리다 ... 어쨌든 전체적으로 동일한 작업을 수행해야하지만 두 작업을 동시에 수행 할 수 있기 때문에 더 빨리 작업 할 수있다. 그러나 인텔 프로세서에는 지연 (특히 'inc'및 'dec')이 발생할 수있는 FLAGS 레지스터가 있습니다. –
안녕하세요. –
저는 베트남에 살면서 제 영어 실력이 정말 좋지 않아서 검색을 시도했지만 아무 것도 못 찾았습니다 –
왜 Mips가 더 적은 사이클로 그것을 실행할 것이라고 생각합니까? – Leeor