45 lines
1.1 KiB
NASM
45 lines
1.1 KiB
NASM
####################################################################
|
|
##### Beispielcode für Schiebeoperationen sll, srl, sra #####
|
|
####################################################################
|
|
|
|
.data
|
|
src: .word 0xf30002a8
|
|
sll: .asciiz "\nshift left logical\n11110011000000000000001010101000 um 4 Stellen = \n"
|
|
srl: .asciiz "\nshift right logical\n11110011000000000000001010101000 um 4 Stellen = \n"
|
|
sra: .asciiz "\nshift right arithmetic\n11110011000000000000001010101000 um 4 Stellen = \n"
|
|
.text
|
|
lw $s0, src # $s0 = 0xf30002a8
|
|
|
|
# Schiebeoperationen
|
|
sll $s1, $s0, 4 # Schiebe den Inhalt von $s0 um 4 Stelle nach links, fuelle rechts mit 0en auf
|
|
srl $s2, $s0, 4 # Schiebe den Inhalt von $s0 um 4 Stellen nach rechts, fuelle links mit 0en auf
|
|
sra $s3, $s0, 4 # Schiebe den Inhalt von $s0 um 4 Stellen nach rechts, fuelle links mit dem Vorzeichenbit auf
|
|
|
|
# Ausgabe sll
|
|
la $a0, sll
|
|
li $v0, 4
|
|
syscall
|
|
move $a0, $s1
|
|
li $v0, 35
|
|
syscall
|
|
|
|
# Ausgabe srl
|
|
la $a0, srl
|
|
li $v0, 4
|
|
syscall
|
|
move $a0, $s2
|
|
li $v0, 35
|
|
syscall
|
|
|
|
# Ausgabe sra
|
|
la $a0, sra
|
|
li $v0, 4
|
|
syscall
|
|
move $a0, $s3
|
|
li $v0, 35
|
|
syscall
|
|
|
|
# exit
|
|
li $v0, 10
|
|
syscall
|