vidigummy KAU/2020년 2학기 컴퓨터 구조

컴구 과제 2

vidi 2021. 1. 3. 22:43

아 이거 하다가 생각난건데, 교수님 문제 어렵다. 진짜 어렵다. 그 개념도 중요하긴 한데, 개념+계산(이게 연습문제 +a 난이도) 가 9장이 나왔다. 문제만 9장이다. 문제 수는 13개다. 진짜 너무 무서웠다. 풀이지 하숙방에 남아있는데.... 안줄래. 그건 안 줄거다.

    .data
c: .word 5
d: .word 7
    .text

    main:
        lw $s4, c
        lw $s5, d
        li $t4, 1
        
        slt $s1, $s4, $s5
        beq $s1, $t4, abss
        bne $s1, $t4, subb


    abss:
        sub $s0, $s5, $s4
        
        move $a0, $s0
        li $v0, 1
        syscall

        li $v0, 10
        syscall

    subb:
        sub $s0, $s4, $s5

        move $a0, $s0
        li $v0, 1
        syscall

        li $v0, 10
        syscall

 

1번

 

    .data
    .text

    main:
        li $v0,5
        syscall
        move $s2, $v0
        li $s0,0
        li $s1,1
        j loop
    loop:
        add $s0, $s1, $s0
        beq $s1, $s2, ending
        addi $s1, 1
        j loop
    ending:
        move $a0, $s0
        li $v0, 1
        syscall
        li $v0, 10
        syscall

2번

 

    .data
    .text

    main:
        li $s0, 3
        move $a1, $s0
        jal plus_one

        move $a0, $v1
        li $v0, 1
        syscall
        li $v0, 10
        syscall

    plus_one:
        addi $v1, $s0, 1
        jr $31

3번

 

    .data
        list:
            .align 6
            .space 25
        d:
            .word 10
    .text

    main:
        lw $s3, d
        # $s3은 10이다
        la $s0, list
        # $s0는 list다
        li $s1, 1
        # $s1은 i이다 
        li $s2, 4
        # $s2는 int의 사이즈 (4byte)

        jal loop

        la $s0, list
        li $s1, 0
        jal PrintAll

        li $v0, 10
        syscall
    loop:
        sub $t1, $s3, $s1
        # t1에 10-i 값을 집어 넣고
        sw $t1, 0($s0)
        # 그걸 집어넣는다.
        addi $s0, 4
        #인덱스 증가
        addi $s1, 1
        # i 증가
        bne $s1, 6, loop
        # 6되면 끝나도록 한다. 어차피 5까지만 돌아가긴 하니까 상관 없다 이 말이지?
        jr $ra

    PrintAll:
        lw $a0, 0($s0)
        li $v0, 1
        syscall
        addi $s0, 4
        addi $s1, 1
        bne $s1, 5, PrintAll

        jr $ra



4번