# CopiaStruct.asm # .text .globl main main: # creazione prima struct li $v0,9 # allocazione memoria li $a0,12 # 12 byte syscall # $v0 <-- indirizzo move $s1,$v0 # $s1 prima struct # inizializzazione della struct li $t0,34 # salva 34 sw $t0,0($s1) # in eta lw $t0,salario # salva 24000 sw $t0,4($s1) # in salario li $t0,12 # salva 12 sw $t0,8($s1) # in livello # creazione seconda struct li $v0,9 # allocazione memoria li $a0,12 # 12 byte syscall # $v0 <-- indirizzo move $s2,$v0 # $s2 seconda struct # copia dati dalla prima alla seconda struct lw $t0,0($s1) # copia eta dalla prima sw $t0,0($s2) # alla seconda struttura lw $t0,4($s1) # copia salario dalla prima sw $t0,4($s2) # alla seconda struttura lw $t0,8($s1) # copia livello dalla prima sw $t0,8($s2) # alla seconda struttura li $v0,10 # exit syscall .data salario: .word 24000 # salario (in memoria statica)