MIPS ALU Instructions(2)

hello_hidi·2022년 10월 3일
0

Computer Architecture

목록 보기
3/8
post-thumbnail

1. 곱셈

Instruction기능형식
mult레지스터의 값을 곱하는 명령어mult $3 $4
multu레지스터의 값을 곱하는 명령어
(no overflow exception)
multu $3 $4

2. 나눗셈

Instruction기능형식
div레지스터의 값을 나누는 명령어div $3 $4
divu레지스터의 값을 나누는 명령어
(no overflow exception)
divu $3 $4

3. mfhi, mflo

덧셈, 뺄셈과 다르게 2개의 operand밖에 보이지 않는다 그 이유는?
곱셈과 나눗셈은 값이 overflow가 될 가능성이 큼으로 64비트를 나눠서 표현을 한다

Instruction기능형식
mfhimult : 값을 2진수로 표현할때 상위 32비트
div : 몫
mfhi $4
mflwmult : 값을 2진수로 표현할때 하위 32비트
div : 나머지
mflo $3 $5

4. 예시코드

// 곱셈 예시코드
.text
.globl main
main:
    addi $t0, $0, 2 
    addi $t1, $0, 3
    mult $t0, $t1
    mflo $t2
    mfhi $t3
// 나눗셈 예시코드
.text
.globl main
main:
    addi $t0, $0, 2 
    addi $t1, $0, 3
    div $t0, $t1
    mflo $t2
    mfhi $t3
profile
안뇽희디

0개의 댓글