about summary refs log tree commit diff
path: root/mips/chapter-3/exercise-4.s
diff options
context:
space:
mode:
Diffstat (limited to 'mips/chapter-3/exercise-4.s')
-rw-r--r--mips/chapter-3/exercise-4.s20
1 files changed, 20 insertions, 0 deletions
diff --git a/mips/chapter-3/exercise-4.s b/mips/chapter-3/exercise-4.s
new file mode 100644
index 0000000..29888f1
--- /dev/null
+++ b/mips/chapter-3/exercise-4.s
@@ -0,0 +1,20 @@
+# t0 = 0b11001, using only bit shift and add
+	.text
+main:
+	li	$t0,	0		# t0 = 0
+	addi	$t0,	$t0,	1	# t0++
+	sll	$t0,	$t0,	1	# t0 <<= 1
+	addi	$t0,	$t0,	1	# t0++
+	sll	$t0,	$t0,	3	# t0 <<= 3
+	addi	$t0,	$t0,	1	# t0++
+
+	li	$v0,	1		# print integer
+	move	$a0,	$t0		# at t0
+	syscall
+
+	li	$v0,	11		# print character
+	li	$a0,	10		# newline
+	syscall
+
+	li	$v0,	10		# terminate
+	syscall