feat(mips.html.markdown): Added mathematical operations and logical operator examples

This commit is contained in:
spiderpig86 2018-07-08 15:05:27 -04:00
parent b3d8f0cdc7
commit 4c025bc12b

View File

@ -65,9 +65,30 @@ hello_world .asciiz "Hello World\n" # Declare a null terminated string
### Math ### ### Math ###
_math: _math:
# Remember to load your values into a register # Remember to load your values into a register
lw $t0, num # From the data section lw $t0, num # From the data section
li $t0, 5 # Or from an immediate (constant) li $t0, 5 # Or from an immediate (constant)
li $t1, 6 li $t1, 6
add $t2, $t0, $t1 # $t2 = $t0 + $t1 add $t2, $t0, $t1 # $t2 = $t0 + $t1
sub $t2, $t0, $t1 # $t2 = $t0 - $t1
mul $t2, $t0, $t1 # $t2 = $t0 * $t1
div $t2, $t0, $t1 # $t2 = $t0 / $t1 (Might not be supported in some versons of MARS)
div $t0, $t1 # Performs $t0 / $t1. Get the quotient using 'mflo' and remainder using 'mfhi'
# Bitwise Shifting
sll $t0, $t0, 2 # Bitwise shift to the left with immediate (constant value) of 2
sllv $t0, $t1, $t2 # Shift left by a variable amount in register
srl $t0, $t0, 5 # Bitwise shift to the right (does not sign preserve, sign-extends with 0)
srlv $t0, $t1, $t2 # Shift right by a variable amount in a register
sra $t0, $t0, 7 # Bitwise arithmetic shift to the right (preserves sign)
srav $t0, $t1, $t2 # Shift right by a variable amount in a register
# Bitwise operators
and $t0, $t1, $t2 # Bitwise AND
andi $t0, $t1, 0xFFF # Bitwise AND with immediate
or $t0, $t1, $t2 # Bitwise OR
ori $t0, $t1, 0xFFF # Bitwise OR with immediate
xor $t0, $t1, $t2 # Bitwise XOR
xori $t0, $t1, 0xFFF # Bitwise XOR with immediate
nor $t0, $t1, $t2 # Bitwise NOR
``` ```