diff --git a/sample_input/example01.o b/sample_input/example01.o
new file mode 100644
index 0000000000000000000000000000000000000000..4a47d1fdffc0d9a8b0da054006508b5b315403cc
--- /dev/null
+++ b/sample_input/example01.o
@@ -0,0 +1 @@
+000000000000000000000000010110000000000000000000000000000000110000000010001000001000100000100100000000100100000010010000001001000011110000001000000100000000000000111100000010010001000000000000001101010010100100000000000001000000000101000000010100000010010000000001011000000101100000100100001001100011000100000000000000010010010101101011000000000000000100000001001000000100100000100101000101010110100011111111111111000010011001010010000000000000001000100101011010110000000000000001000000000001000110010000010000000000000000010010100010000100001000000010001100101001100000100100000101010110100111111111111110100000000010111111001010000010000100000010001100101000000000100111000100010100100000000000000000010000100000010000000000000000011000110110000100001111000011110000000000000000000000000000011001000000000000000000000000001100100000010010001101000101011001111000
diff --git a/sample_input/example01.s b/sample_input/example01.s
new file mode 100644
index 0000000000000000000000000000000000000000..1eec136a1eec37d34274c084b7dcb1545bdbbe56
--- /dev/null
+++ b/sample_input/example01.s
@@ -0,0 +1,32 @@
+	.data
+data1:	.word	100
+data2:	.word	200
+data3:	.word	0x12345678
+	.text
+main:
+	and	$17, $17, $0
+	and	$18, $18, $0
+	la	$8, data1
+	la	$9, data2
+	and	$10, $10, $0
+lab1:
+	and	$11, $11, $0
+lab2:
+	addiu	$17, $17, 0x1
+	addiu	$11, $11, 0x1
+	or	$9, $9, $0
+	bne	$11, $8, lab2
+lab3:
+	addiu	$18, $18, 0x2
+	addiu	$11, $11, 1
+	sll	$18, $17, 1
+	srl	$17, $18, 1
+	and	$19, $17, $18
+	bne	$11, $9, lab3
+lab4:
+	addu	$5, $5, $31
+	nor	$16, $17, $18
+	beq	$10, $8, lab5
+	j	lab1
+lab5:
+	ori	$16, $16, 0xf0f0
diff --git a/sample_input/example02.o b/sample_input/example02.o
new file mode 100644
index 0000000000000000000000000000000000000000..7b2f8c10e1c8906a93f3202b714daf425f037211
--- /dev/null
+++ b/sample_input/example02.o
@@ -0,0 +1 @@
+000000000000000000000000001111000000000000000000000000000001000000100100000000100000010000000000000000000100001000011000001000010000000001100010001000000010010100000000000001010011010000000000001001001100011100100111000011110000000011100010010000000010001100000000100000110100100000100111001101000100101000000000111111110000000000000110010110010100001000111100000001000001000000000000001101001000010000000000000011000000000101100101011010000010010000110000100011100000000001100100001111000001000100000000011001000010010000000010000000000000101000000000000000000000000000000011000000000000000000000000011110110000000000000000000100001111101000010001000100010001000100010001
diff --git a/sample_input/example02.s b/sample_input/example02.s
new file mode 100644
index 0000000000000000000000000000000000000000..063b66bee490304f846ed4bbd1b41460bd4a3f8b
--- /dev/null
+++ b/sample_input/example02.s
@@ -0,0 +1,21 @@
+	.data
+array:	.word	3
+	.word	123
+	.word	4346
+array2:	.word	0x11111111
+	.text
+main:
+	addiu	$2, $0, 1024
+	addu	$3, $2, $2
+	or	$4, $3, $2
+	sll	$6, $5, 16
+	addiu	$7, $6, 9999
+	subu	$8, $7, $2
+	nor	$9, $4, $3
+	ori	$10, $2, 255
+	srl	$11, $6, 5
+	la	$4, array2
+	and	$13, $11, $5
+	andi	$14, $4, 100
+	lui	$17, 100
+	addiu	$2, $0, 0xa
diff --git a/sample_input/example03.o b/sample_input/example03.o
new file mode 100644
index 0000000000000000000000000000000000000000..d5939cf42d218676aedf626a6c3231d49f8ac541
--- /dev/null
+++ b/sample_input/example03.o
@@ -0,0 +1 @@
+000000000000000000000000001111000000000000000000000000000001000000111100000000110001000000000000100011000110010100000000000000001000110001101000000000000000010010001100011010010000000000001000100011000110101000000000000011000010010010100101000000000001100000100100000001100000000001111100000000001010011000111000001000011010110001100101000000000001000010101100011001100000000000010100101011000110011100000000000110000010010001100011000000000000110010001100011011001111111111111100100011000110110111111111111110001000110001101110111111111111010000000000000000000000000001100100000000000000000000000000110010000001001000110100010101100111100000000000000000010010001101000001
diff --git a/sample_input/example03.s b/sample_input/example03.s
new file mode 100644
index 0000000000000000000000000000000000000000..c9957eab1b859e32cf407dbdb9c4b64a22813f73
--- /dev/null
+++ b/sample_input/example03.s
@@ -0,0 +1,22 @@
+	.data
+data1:	.word	100
+data2:	.word	200
+data3:	.word	0x12345678
+	.word	0x12341
+	.text
+main:
+	lui	$3, 0x1000
+	lw	$5, 0($3)
+	lw	$8, 4($3)
+	lw	$9, 8($3)
+	lw	$10, 12($3)
+	addiu	$5, $5, 24
+	addiu	$6, $0, 124
+	addu	$7, $5, $6
+	sw	$5, 16($3)
+	sw	$6, 20($3)
+	sw	$7, 24($3)
+	addiu	$3, $3, 12
+	lw	$12, -4($3)
+	lw	$13, -8($3)
+	lw	$14, -12($3)
diff --git a/sample_input/example04.o b/sample_input/example04.o
new file mode 100644
index 0000000000000000000000000000000000000000..53a4ff0e7d8d7cb5944d0a4cbf78eb57e7932590
--- /dev/null
+++ b/sample_input/example04.o
@@ -0,0 +1 @@
+000000000000000000000000010000000000000000000000000000000000000000000000100001010001000000100001000000001100011100010000001000010000000001100010010010000010001100000001011000000101100000100100001001010100101000000000000000010000000011000000001100000010010100001100000100000000000000000111000000000000011000111000100000000000000000000100001010001000001000101101010010010000000001100100000100010010000000000000000000010000001111100000000000000000100000000000010000110010000000101011000101001000000000000000000000010000100000010000000000000000001100110110000100001111000011110000
diff --git a/sample_input/example04.s b/sample_input/example04.s
new file mode 100644
index 0000000000000000000000000000000000000000..46c70849bfc143cba6d31218bf65540d28a2eed7
--- /dev/null
+++ b/sample_input/example04.s
@@ -0,0 +1,23 @@
+	.data
+	.text
+main:
+	addu	$2, $4, $5
+	addu	$2, $6, $7
+	subu	$9, $3, $2
+lab1:
+	and	$11, $11, $0
+	addiu	$10, $10, 0x1
+	or	$6, $6, $0
+	jal	 lab3
+lab3:
+	sll	$7, $6, 2
+	srl	$5, $4, 2
+	sltiu	$9, $10, 100
+	beq	$9, $0, lab4
+	jr	$31
+lab4:
+	sltu	$4, $2, $3
+	bne	$4, $0, lab5
+	j	lab1
+lab5:
+	ori	$16, $16, 0xf0f0
diff --git a/sample_input/example05.o b/sample_input/example05.o
new file mode 100644
index 0000000000000000000000000000000000000000..dfbf6fed0143b2d1093c2dbf0e4cbb461fcacaf5
--- /dev/null
+++ b/sample_input/example05.o
@@ -0,0 +1 @@
+000000000000000000000000011010000000000000000000000000000001010000111100000011110001000000000000001101011110111100000000000011000010010110001100111111111001110000100101110011101111111111111111001001011010110111111111111111110000000010000101000100000010000100000000110001110001000000100001000000000110001001001000001000110000000101100000010110000010010000100101010010100000000000000001000000001100000000110000001001010000110000010000000000000000110010001101111001100000000000000100000000000000011000111000100000001010110111100111000000000000100000000000000001000010100010000010000000001010000000101000001001110010110101001001111111111111110000010001001000000000000000000001000000111110000000000000000010000011110000010001000100000000000010001110001100100000000000000000000000000100001100100000001010110001010010000000000000000000000100001000000100000000000000001000001101100001000011110000111100000000000000000000000000000000001100000000000000000001000000000000000000000000111101001100001010100111111111111111111111111111111001111111111111111111111111111111
diff --git a/sample_input/example05.s b/sample_input/example05.s
new file mode 100644
index 0000000000000000000000000000000000000000..1a81c736c9f87e4fbfb981b701ebea9d9012a36b
--- /dev/null
+++ b/sample_input/example05.s
@@ -0,0 +1,37 @@
+	.data
+data1:	.word	3
+	.word	4096
+	.word	0xf4c2a
+data2:	.word	2147483646
+data3:	.word	2147483647
+	.text
+main:
+	la	$15, data2
+	addiu	$12, $12, -100
+	addiu	$14, $14, -1
+	addiu	$13, $13, 0xffff
+	addu	$2, $4, $5
+	addu	$2, $6, $7
+	subu	$9, $3, $2
+cs311:
+	and	$11, $11, $0
+	addiu	$10, $10, 0x1
+	or	$6, $6, $0
+	jal	cs312
+cs312:
+	lw	$6, 4($15)
+	sll	$7, $6, 2
+	sw	$7, 8($15)
+	srl	$5, $4, 2
+	nor	$5, $5, $0
+	sltiu	$9, $10, -4
+	beq	$9, $0, cs313
+	jr	$31
+cs313:
+	lui	$17, 0x1000
+	lw	$18, 0($17)
+	sltu	$4, $2, $3
+	bne	$4, $0, cs314
+	j	cs311
+cs314:
+	ori	$16, $16, 0xf0f0
diff --git a/sample_input/fact.o b/sample_input/fact.o
new file mode 100644
index 0000000000000000000000000000000000000000..b59d6b6da8a26b0e9fa2772d6c68c79f5ba985a3
--- /dev/null
+++ b/sample_input/fact.o
@@ -0,0 +1 @@
+0000000000000000000000000010010000000000000000000000000000000000101011111010010000000000000000000010110010001000000000000000000100010001000000000000000000000001001001000000001000000000000000010010010010000100111111111111111100001100000100000000000000000000100011111010010000000000000000001000111110111111000000000000010000000000100000100001000000100001
\ No newline at end of file
diff --git a/sample_input/fact.s b/sample_input/fact.s
new file mode 100644
index 0000000000000000000000000000000000000000..86651661c28882c22ccdff339f145b243fc5103f
--- /dev/null
+++ b/sample_input/fact.s
@@ -0,0 +1,13 @@
+	.data
+	.text
+main:
+	sw	$a0, 0($sp)
+	sltiu	$t0, $a0, 1
+	beq	$t0, $zero, L1
+	addiu	$v0, $zero, 1
+L1:
+	addiu	$a0, $a0, -1
+	jal	main
+	lw	$a0, 0($sp)
+	lw	$ra, 4($sp)
+	addu	$v0, $a0, $v0
diff --git a/sample_input/leaf_example.o b/sample_input/leaf_example.o
new file mode 100644
index 0000000000000000000000000000000000000000..552ecf3d3e0ec586bf514762acaf79922e564de3
--- /dev/null
+++ b/sample_input/leaf_example.o
@@ -0,0 +1 @@
+000000000000000000000000000100000000000000000000000000000000000000000000100001010100000000100001000000001100011101001000001000010000000100001001100000000010001100000010000000000001000000100001
\ No newline at end of file
diff --git a/sample_input/leaf_example.s b/sample_input/leaf_example.s
new file mode 100644
index 0000000000000000000000000000000000000000..f1f2d88c1619da09157f8506d14317fc8806997e
--- /dev/null
+++ b/sample_input/leaf_example.s
@@ -0,0 +1,7 @@
+	.data
+	.text
+main:
+	addu	$t0, $a0, $a1
+	addu	$t1, $a2, $a3
+	subu	$s0, $t0, $t1
+	addu	$v0, $s0, $zero