TD IML:
[TD_IML.git] / TD4 / mips1.asm
CommitLineData
9cb0c823
JB
1.data
2buffer1: .space 20
3buffer2: .space 20
4n: .asciiz "\n"
5string_part_one: .asciiz "Le temps est "
6string_part_two: .asciiz ", je devrais prendre "
7string_part_three: .asciiz " avant de sortir."
8string_hole: .asciiz "__________"
9input_string: .asciiz "Mot manquant ? "
10.text
11la $a0,string_part_one
12li $v0,4
13syscall
14la $a0,string_hole
15li $v0,4
16syscall
17la $a0,string_part_two
18li $v0,4
19syscall
20la $a0,string_hole
21li $v0,4
22syscall
23la $a0,string_part_three
24li $v0,4
25syscall
26la $a0,n
27li $v0,4
28syscall
29la $a0,input_string
30li $v0,4
31syscall
32li $v0,8
33la $a0,buffer1
34li $a1,20
35syscall
36
37 la $s0, buffer1 # $s0 contains base address of the string buffer
38 addi $s3, $0, '\n' # $s3 = '\n'
39loop1:
40 lb $s1, 0($s0) # load character into $s0
41 beq $s1, $s3, end1 # break if byte is newline
42 addi $s0, $s0, 1 # increment buffer address
43 j loop1
44end1:
45 sb $0, 0($s0) #replace newline with 0
46
47la $a0,input_string
48li $v0,4
49syscall
50li $v0,8
51la $a0,buffer2
52li $a1,20
53syscall
54
55 la $s0, buffer2 # $s0 contains base address of the string buffer
56 addi $s3, $0, '\n' # $s3 = '\n'
57loop2:
58 lb $s1, 0($s0) # load character into $s0
59 beq $s1, $s3, end2 # break if byte is newline
60 addi $s0, $s0, 1 # increment buffer address
61 j loop2
62end2:
63 sb $0, 0($s0) #replace newline with 0
64
65la $a0,string_part_one
66li $v0,4
67syscall
68la $a0,buffer1
69li $v0,4
70syscall
71la $a0,string_part_two
72li $v0,4
73syscall
74la $a0,buffer2
75li $v0,4
76syscall
77la $a0,string_part_three
78li $v0,4
79syscall
80
81li $v0,10
82syscall