Pseudo instructions Pseudo instructions MIPS supports pseudo instructions

















- Slides: 17

Pseudo instructions

Pseudo instructions • MIPS supports pseudo instructions. We have seen some like – li $t 0, 4 which set $t 0 to 4. – la $t 0, A which puts the address of label A (a 32 -bit value) into $t 0. – bgt $t 0, $t 1, L 1 which goes to L 1 if $t 0 > $t 1

Pseudo instructions • Pseudo instructions are not real instructions implemented in hardware. They are created to make the program more readable. • A pseudo instruction usually (not always) maps to several real instructions. The mapping is one-to-one.

Pseudo instructions • For example, li $t 0, 4 translate to ori $t 0, $0, 4 but what should li $t 0, 90000 translate to?

Pseudo instructions • So li $t 0, 90000 translates to lui ori $1, 1 #load upper 16 bits $t 0, $1, 24464 • The special register $1 is $at and should only be used for pseudo instructions.

Pseudo instructions • How to translate ``lw $t 0, val’’ ?

MIPS mul div, and MIPS floating point instructions

Multiply and Division Instructions • mul rd, rs, rt – put the result of rs times rt in rd • div rd, rs, rt – A pseudo instruction – put the quotient of rs/rt into rd

hi and lo • mult rs, rt – put the high word in hi and low word in lo. • div rs, rt – put the remainder in hi and quotient in lo.

Load and Store • Load or store from a memory location (pseudoinstruction ). Just load the 32 bits into the register. – l. s $f 0, val – s. s $f 0, val • Load immediate number (pseudoinstruction ) – li. s $f 0, 0. 5

Print and Read • Print: – li $v 0, 2 – li. s $f 12, 0. 5 – syscall • Read – li $v 0, 6 – syscall – (the read will be in $f 0)

Arithmetic Instructions • • • abs. s add. s sub. s mul. s div. s neg. s $f 0, $f 0, $f 1, $f 1 $f 2

Data move • mov. s $f 0, $f 1 copy $f 1 to $f 0. • mfc 1 $t 0, $f 0 copy $f 0 to $t 0. • mtc 1 $t 0, $f 0 copy $t 0 to $f 0.

Convert to integer and from integer • cvt. s. w $f 0, $f 1 – convert the 32 bit in $f 1 currently representing an integer to float of the same value and store in $f 0 • cvt. w. s $f 0, $f 1 – the reverse

Comparison instructions • c. lt. s $f 0, $f 1 – set a flag in coprocessor 1 if $f 0 < $f 1, else clear it. The flag will stay until set or cleared next time • c. le. s $f 0, $f 1 – set flag if $f 0 <= $f 1, else clear it • bc 1 t L 1 – branch to L 1 if the flag is set • bc 1 f L 1 – branch to L 1 if the flag is 0

Computing the square root of a number n • The Newton’s method x’=(x+n/x)/2 – For any n, guess an initial value of x as the sqrt of n and keep on updating x until is the difference between the two updates are very close. – The idea is that x’=x-f(x)/f’(x), where f(x) is x 2 -n=0.

val 1: val 2: . data. float 0. 6. float 0. 8 msg_done: . asciiz "donen". text. globl main: mtc 1 $a 0, $f 0 li. s $f 20, 2. 0 li. s $f 21, 0. 001 comparision div. s $f 1, $f 0, $f 20 # $f 1 gets n/2 calsqrtloop: div. s $f 2, $f 0, $f 1 add. s $f 2, $f 1 div. s $f 2, $f 20 sub. s $f 3, $f 2, $f 1 abs. s $f 3, $f 3 c. lt. s $f 3, $f 21 bc 1 t calsqrtdone mov. s $f 1, $f 2 j calsqrtloop li. s $f 0, 361. 0 mfc 1 $a 0, $f 0 jal calsqrt done: mtc 1 $v 0, $f 12 li $v 0, 2 syscall eixt: li $v 0, 10 syscall # # calsqrtdone: calsqrt: calculating the square root of n using the formular x'=(x+n/x)/2 loop until |x'-x| < 0. 001 calsqrt: addi swc 1 swc 1 $sp, -24 $f 0, 20($sp) $f 1, 16($sp) $f 2, 12($sp) $f 3, 8($sp) $f 20, 4($sp) $f 21, 0($sp) # $f 0 gets n # $f 20 storing constant 2 for dividing # $f 21 storing constant 0. 001 for exit mfc 1 $v 0, $f 2 lwc 1 lwc 1 addi $f 0, 20($sp) $f 1, 16($sp) $f 2, 12($sp) $f 3, 8($sp) $f 20, 4($sp) $f 21, 0($sp) $sp, 24 jr $ra # # # $f 2 $f 3 set gets n/x + x gets x'=(n/x + x)/2 gets x'-x gets |x'-x| the flag if |x'-x| < 0. 001
Li pseudo instruction
What is pseudo instruction
Pseudo instructions examples
Xchd instruction in 8051 example
Mips fields
Mul div
Tps in mis
She holds the book stationary against the wall
How spelling supports reading
Helius composite support
Positive behavioral interventions and supports
The passage supports the inference that unferth is
Accenture adm
Snmp model in computer networks
Metacognition and growth mindset supports grit.
Example of opinion paragraph
Pubocervical ligament
C6748 architecture supports