70 likes | 182 Views
SET DI ISTRUZIONI. PROCESSORE DELUXE. Examples of Arithmetic / Logical instructions. Banco Registri. Banco Registri. ADD | SUB | MULT | DIV. C.S. < Regs dest >, < Reg sorg 1 >, < Reg sorg 2 >. LHI | LLI. 4. Examples of Load and Store instructions.
E N D
SET DI ISTRUZIONI PROCESSORE DELUXE
Examples of Arithmetic / Logicalinstructions Banco Registri Banco Registri ADD | SUB | MULT | DIV C.S. <Regsdest>, <Regsorg 1>, <Regsorg 2> LHI | LLI 4
Examples of Load and Storeinstructions C.S. <Regs dest>, immediato ( <Reg sorg> ) LOAD Memoria Esterna Banco Registri C.S. immediato ( <Reg dest> ), <Regs sorg> Store Memoria Esterna Banco Registri 5
Examples of Control-Flowinstructions Altero il contenuto del registro speciale PC che contiene l’indirizzo in memoria programmi dell’istruzione corrente <Regs dest> = PC 6
SimpleAssembly Code PROCESSORE DELUXE
Somma Vettoriale di due vettori A e B a n componenti int 32bits:C = A + B • - a, b, c sono i rispettivi indirizzi in memoria delle prime componenti vettoriali (int 32bits) • tali vettori sono memorizzati in memoria con componenti sequenziali Example of AssemblyProgram Language C++ For (k=0; k<n; k++) C[k] = A[k] + B[k]; C[k] = A[k] + B[k]; LW R1, a(R4) LW R2, b(R4) ADD R3,R1,R2 SW c(R4),R3 R1 <- Mem [R4+a] R2 <- Mem [R4+b] R3 <- R1 + R2 Mem [c+R4] <- R3 dove R4 = 0, 4, 8, 12 …, (4xn) 7
Somma Vettoriale di due vettori A e B a n componenti int 32bits:C = A + B • - a, b, c sono i rispettivi indirizzi in memoria delle prime componenti vettoriali (int 32bits) • tali vettori sono memorizzati in memoria con componenti sequenziali Branch label2: Branch label1: Example of AssemblyProgram Language C++ For (k=0; k<n; k++) C[k] = A[k] + B[k]; Istruzione precedente LW R5, addr_n(R0) SUB R4,R4,R4 SLT R12,R4,R5 BEQZ R12,label1 carico il num “n x 4” in R5 azzero R4 if R4<R5 then R12=1 else R12=0 salta a label1 (+6x4) se R12=0 LW R1, a(R4) LW R2, b(R4) ADD R3,R1,R2 SW c(R4),R3 incremento R4 di 4 byte salta a label2(-8x4) ADDI R4,R4,#4 J label2 Istruzione successiva 8