Σύγκριση κώδικα CISC / RISC

Κώδικας C

/*
 * Print tabs to indent the following character by indent_level
 */
void
indent(void)
{
	int i;

	for (i = 0; i < indent_level; i++)
		putchar('\t');
}

Κώδικας Pentium

Διακρίνουμε τη χρήση ειδικών καταχωρητών και τις σύνθετες εντολές.
indent:
	pushl %ebp
	movl %esp,%ebp
	pushl %ebx
	xorl %ebx,%ebx
	cmpl indent_level,%ebx
	jge .L18
	.p2align 4,,7
.L20:
	pushl stdout
	pushl $9
	call _IO_putc
	addl $8,%esp
	incl %ebx
	cmpl indent_level,%ebx
	jl .L20
.L18:
	movl -4(%ebp),%ebx
	leave
	ret

Κώδικας ARM

Διακρίνουμε εντολές με τρεις τελεστέους και την πρόσβαση στη μνήμη μέσω καταχωρητών.
_indent:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, current_function_anonymous_args = 0
	mov	ip, sp
	stmfd	sp!, {r4, r5, r6, r7, fp, ip, lr, pc}
	ldr	r6, L199
	ldr	r3, [r6, #0]
	sub	fp, ip, #4
	mov	r4, #0
	cmp	r4, r3
	ldmgeea	fp, {r4, r5, r6, r7, fp, sp, pc}
	mov	r7, #9
	ldr	r5, L199+4
L9:
	ldr	r3, [r5, #8]
	sub	r2, r3, #1
	str	r2, [r5, #8]
	cmp	r2, #0
	bge	L10
	ldr	r3, [r5, #24]
	cmp	r2, r3
	blt	L11
L10:
	ldr	r3, [r5, #0]
	strb	r7, [r3], #1
	str	r3, [r5, #0]
	b	L8
L11:
	mov	r0, #9
	mov	r1, r5
	bl	___swbuf
L8:
	ldr	r3, [r6, #0]
	add	r4, r4, #1
	cmp	r4, r3
	blt	L9
	ldmea	fp, {r4, r5, r6, r7, fp, sp, pc}
L200:
	.align	0
L199:
	.word	_indent_level
	.word	___sF+88
Lfe3:
	.size	 _indent,Lfe3-_indent
	.align	0

Κώδικας SPARC

Διακρίνουμε τη χρήση παραθύρου καταχωρητών εισερχομένων παραμέτρων (i) τοπικών μεταβλητών (l) και εξερχομένων παραμέτρων (o).
indent__Fv:
.LLFB4:
	!#PROLOGUE# 0
	save	%sp, -112, %sp
.LLCFI3:
	!#PROLOGUE# 1
	sethi	%hi(indent_level), %o0
	ld	[%o0+%lo(indent_level)], %o1
	mov	0, %l0
	cmp	%l0, %o1
	bge	.LL10
	mov	%o0, %l4
	sethi	%hi(__iob+16), %l2
	or	%l2, %lo(__iob+16), %l1
	mov	9, %l3
	ld	[%l2+%lo(__iob+16)], %o0
.LL171:
	add	%o0, -1, %o0
	cmp	%o0, 0
	bge	.LL7
	st	%o0, [%l2+%lo(__iob+16)]
	mov	9, %o0
	call	__flsbuf, 0
	mov	%l1, %o1
	b	.LL170
	ld	[%l4+%lo(indent_level)], %o0
.LL7:
	ld	[%l1+4], %o0
	stb	%l3, [%o0]
	add	%o0, 1, %o0
	st	%o0, [%l1+4]
	ld	[%l4+%lo(indent_level)], %o0
.LL170:
	add	%l0, 1, %l0
	cmp	%l0, %o0
	bl	.LL171
	ld	[%l2+%lo(__iob+16)], %o0
.LL10:
	ret
	restore