Istruzioni: linguaggio macchina. Università di Bergamo - corso di Calcolatori Elettronici
|
|
- Ippolito Tucci
- 6 anni fa
- Visualizzazioni
Transcript
1 Istruzioni: linguaggio macchina 1
2 Instructions Language of the Machine More primitive than higher level languages e.g., no sophisticated control flow Very restrictive e.g., MIPS Arithmetic Instructions We ll be working with the MIPS instruction set architecture similar to other architectures developed since the 1980's used by NEC, Nintendo, Silicon Graphics, Sony Design goals: maximize performance and minimize cost, reduce design time 2
3 MIPS arithmetic All instructions have 3 operands Operand order is fixed (destination first) Example: C code: A = B + C MIPS code: add $s0, $s1, $s2 (associated with variables by compiler) 3
4 MIPS arithmetic Design Principle: simplicity favors regularity. Why? Of course this complicates some things... C code: A = B + C + D; E = F - A; MIPS code: add $t0, $s1, $s2 add $s0, $t0, $s3 sub $s4, $s5, $s0 Hp: A $s0, B $s1, C $s2, D $s3, E $s4, F $s5 Operands must be registers, only 32 registers provided Design Principle: smaller is faster. Why? 4
5 Registers vs. Memory Arithmetic instructions operands must be registers, only bit registers provided (word in MIPS architecture) Compiler associates variables with registers What about programs with lots of variables Control Input Memory Datapath Output Processor I/O 5
6 Memory Organization Viewed as a large, single-dimension array, with an address. A memory address is an index into the array "Byte addressing" means that the index points to a byte of memory bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 6
7 Memory Organization Bytes are nice, but most data items use larger "words" For MIPS, a word is 32 bits or 4 bytes bits of data 32 bits of data 32 bits of data 32 bits of data Registers hold 32 bits of data 2 32 bytes with byte addresses from 0 to words with byte addresses 0, 4, 8, Words are aligned i.e., what are the least 2 significant bits of a word address? 7
8 Instructions Load and store instructions Example: C code: MIPS code: A[8] = h + A[8]; lw $t0, 32($s3) add $t0, $s2, $t0 sw $t0, 32($s3) Hp: h $s2, indirizzo base di A $s3 Store word has destination last Remember arithmetic operands are registers, not memory! 8
9 So far we ve learned MIPS loading words but addressing bytes arithmetic on registers only Instruction Meaning add $s1, $s2, $s3 $s1 = $s2 + $s3 sub $s1, $s2, $s3 $s1 = $s2 $s3 lw $s1, 100($s2) $s1 = Memory[$s2+100] sw $s1, 100($s2) Memory[$s2+100] = $s1 9
10 Machine Language Instructions, like registers and words of data, are also 32 bits long Example: add $t0, $s1, $s2 registers have numbers, $t0=8, $s1=17, $s2=18 Instruction Format: op rs rt rd shamt funct Can you guess what the field names stand for? 10
11 Machine Language Consider the load-word and store-word instructions, What would the regularity principle have us do? New principle: Good design demands a compromise Introduce a new type of instruction format I-type for data transfer instructions other format was R-type for register Example: lw $t0, 32($s2) op rs rt 16 bit number Where's the compromise? 11
12 Stored Program Concept Instructions are bits Programs are stored in memory to be read or written just like data Processor Memory memory for data, programs, compilers, editors, etc. Fetch & Execute Cycle Instructions are fetched and put into a special register Bits in the register "control" the subsequent actions Fetch the next instruction and continue 12
13 Control Decision making instructions alter the control flow, i.e., change the "next" instruction to be executed MIPS conditional branch instructions: bne $t0, $t1, Label beq $t0, $t1, Label Example: if (i==j) h = i + j; bne $s0, $s1, Label add $s3, $s0, $s1 Label:... Hp: i $s0, j $s1, h $s3 13
14 Control if then else MIPS unconditional branch instructions: j label Example: if (i!=j) beq $s4, $s5, Lab1 h=i+j; add $s3, $s4, $s5 else j Lab2 h=i-j; Lab1: sub $s3, $s4, $s5 Lab2:... Hp: h $s3, i $s4, j $s5 Can you build a simple for loop? 14
15 Control Loops E importante disporre di un istruzione per iterare: Esempio: Loop:g=g+A[i]; Loop: add $t1, $s3, $s3 i=i+j; add $t1, $t1, $t1 if (i h) goto Loop add $t1, $t1, $s5 lw $t0, 0($t1) add $s1, $s1, $t0 add $s3, $s3, $s4 bne $s3, $s2, Loop BASIC BLOCK Hp: g $s1, h $s2, i $s3, j $s4, A $s5, 15
16 Control Loop C code: L1: g = g + A[i]; i = i + j; if (i!= h) goto L1; MIPS code: L1: add $t1, $s3, $s3 # $t1 = 2 * i add $t1, $t1, $t1 # $t1 = 4 * i add $t1, $t1, $s5 # $t1 = indirizzo di A[i] lw $t0, 0($t1) # $t0 = A[i] add $s1, $s1, $t0 # g = g + A[i] add $s3, $s3, $s4 # i = i + j bne $s3, $s2, L1 # vai a L1 se i h Attribuzione dei registri alle variabili: g = $s1, h = $s2, i = $s3, j = $s4, indirizzo di inizio del vettore A = $s5 16
17 Control While loop Più comodo disporre di un istruzione while che ciclare con goto: Esempio: while (save [i] ==k) Loop: add $t1, $s3, $s3 i=i+j; add $t1, $t1, $t1 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit add $s3, $s3, $s4 j Loop Exit:.. Hp: i $s3, j $s4, k $s5, save $s6 17
18 Ciclo While C code: while (save [i] == k) i = i + j; MIPS code: Loop: add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit add $s3, $s3, $s4 j Loop Exit: # $t1 = 2 * i # $t1 = 4 * i # $t1 = indirizzo di save[i] # $t0 = save[i] # vai a Exit se save[i] k # i = i + j # vai a Loop Attribuzione dei registri alle variabili: i = $s3, j = $s4, k = $s5, indirizzo di inizio del vettore save = $s6 18
19 Control Flow We have: beq, bne, what about Branch-if-less-than? New instruction: slt $t0, $s1, $s2 if $s1 < $s2 then $t0 = 1 else $t0 = 0 Can use this instruction to build "blt $s1, $s2, Label" can now build general control structures Note that the assembler needs a register to do this, there are policy of use conventions for registers bne $t0, $zero, less slt+bne = branch on less (less complicated than a specific instruction) 19
20 Control Case/Switch Selezione tra diverse alternative a seconda del valore di una variabile: anziché n if then else, una tabella indicizzata (jump address table) contenente indirizzi che corrispondono a etichette nel codice jr salto incondizionato a un registro switch(k) slt $t3, $s5, $zero case 0 f=i+j;break; bne $t3, $zero, Exit case 1 f=g+h;break; slt $t3, $s5, $t2 case 2 f=g-h;break; beq $t3, $zero, Exit case 3 f=i-j;break; add $t1, $s5, $s5 add $t1, $t1, $t1 add $t1, $t1, $t4 lw $t0, 0($t1) jr $t0 L0: add $s0, $s3, $s4; j Exit L1: add $s0, $s1, $s2; j Exit L2: sub $s0, $s1, $s2; j Exit L3: sub $s0, $s3, $s4; j Exit Exit:.. Hp: f $s0, g $s1, h $s2, i $s3, j $s4, k $s5, 4 $t2, indirizzo tabella $t4 20
21 Case/Switch Switch (k) { slt $t3, $s5, $zero # k <0? case 0: f=i+j; break; bne $t3, $zero, Exit case 1: f=g+h; break; slt $t3, $s5, $t2 # k >3? case 2: f=g-h; break; beq $t3, $zero, Exit case 3: f=i-j; break; add $t1, $s5, $s5 } add $t1, $t1, $t1 # $t1=4*k add $t1, $t1, $t4 lw $t0, 0($t1) jr $t0 #vai a indir. letto L0: add $s0, $s3, $s4 #k=0, f=i+j j Exit L1: add $s0, $s1, $s2 #k=1, f=g+h j Exit L2: sub $s0, $s1, $s2 #k=2, f=g-h j Exit L3: sub $s0, $s3, $s4 #k=3, f=i-j Exit: f = $s0, g = $s1, h = $s2, i = $s3, j = $s4, k = $s5; $t2 = 4; $t4 =indirizzo tabella etichette 21
22 So far Instruction Meaning add $s1,$s2,$s3 $s1 = $s2 + $s3 sub $s1,$s2,$s3 $s1 = $s2 $s3 lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1 bne $s4,$s5,l Next instr. is at Label if $s4 $s5 beq $s4,$s5,l Next instr. is at Label if $s4 = $s5 j Label Next instr. is at Label Formats: R I J op rs rt rd shamt funct op rs rt 16 bit address op 26 bit address 22
23 Policy of Use Conventions Name Register number Usage $zero 0 the constant value 0 $v0-$v1 2-3 values for results and expression evaluation $a0-$a3 4-7 arguments $t0-$t temporaries $s0-$s saved $t8-$t more temporaries $gp 28 global pointer $sp 29 stack pointer $fp 30 frame pointer $ra 31 return address 23
24 Uso dello stack: procedure foglia $sp=registro stack pointer: punta all ultima locazione occupata dello stack N.B. indirizzi crescenti verso l alto: pushsp-4, pop sp+4 int proc(int g, int h, int i, int j) sub $sp, $sp, 12 { int f; sw $t1, 8($sp) f=(g+h)+(i+j); sw $t0, 4($sp) return(f); sw $s0, 0($sp) add $t0, $a0, $a1 } g, h, i, j $a0 $a3 add $t1, $a2, $a3 f $s0 add $s0, $t0, $t1 add $v0, $s0, $zero Per convenzione: lw $s0, 0($sp) $t0-$t9 temporanei da non salvare $s0-$s7 da conservare si potevano risparmiare 2 push/pop lw $t0, 4($sp) lw $t1, 8($sp) add $sp, $sp, 12 jr $ra 24
25 Uso dello stack int proc (int g, int h, int i, int j) { int f; f=(g+h)-(i+j); return f; proc: addi $sp, $sp, -12 # 3 push sw $t1, 8($sp) } sw $t0, 4($sp) g, h, i, j = $a0 $a3 sw $s0, 0($sp) f = $s0 add $t0, $a0, $a1 # calc. f add $t1, $a2, $a3 sub $s0, $t0, $t1 add $v0, $s0, $zero # $v0=f lw $s0, 0($sp) # 3 pop lw $t0, 4($sp) lw $t1, 8($sp) addi $sp, $sp, 12 jr $ra # ritorno 25
26 Uso dello stack: procedure annidate Pb: procedure che ne chiamano altreconflitto nel passaggio parametri? Sol.: uso dello stack: chiamante salva $a0-$a3 o $t0-$t9 usati dal chiamato; chiamato salva $ra e $s0-$s7 usati dal chiamante. int fact(int n) fact sub $sp, $sp, 8 { sw $ra, 4($sp) if n<1 return(1); sw $a0, 0($sp) else return(n fact(n-1)); slt $t0, $a0, 1 } beq $t0, $zero, L1 n $a0 add $v0, $zero, 1 add $sp, $sp, 8 jr $ra L1: sub $a0, $a0, 1 jal fact lw $a0, 0($sp) lw $ra, 4($sp) add $sp, $sp, 8 mult $v0, $a0, $v0 jr $ra 26
27 Procedure annidate int fatt (int n) fatt: addi $sp, $sp, -8 { sw $ra, 4($sp) if (n<1) return(1); sw $a0, 0($sp) else return(n*fatt(n-1)); slti $t0, $a0, 1 } beq $t0, $zero, L1 addi $v0, $zero, 1 addi $sp, $sp, 8 n = $a0 jr $ra L1: addi $a0, $a0, -1 jal fatt lw $a0, 0($sp) # ind. = L1+8 lw $ra, 4($sp) addi $sp, $sp, 8 mult $v0, $a0, $v0 jr $ra 27
28 Procedure annidate Gestione dello stack: Al 1 richiamo salva nello stack: 1) l indirizzo di ritorno che è nella zona del chiamante (nome attribuito JALM + 4); 2) il valore di $a0 = n. Al 2 richiamo salva nello stack: 1) l indirizzo della procedura fatt (indicato da L1+8); 2) il valore di $a0 = n-1. Al 3 richiamo salva nello stack L1+8 e $a0 = n Al n-mo richiamo salva nello stack L1+8 e $a0 = 0. 28
29 Procedure annidate Esempi di esecuzione al variare di n: n = 0 $ra = JALM+4 $a0 = n = 0 n = 1 $ra = JALM+4 $a0 = n = 1 $ra = L1+8 $a0 = n-1 = 0 1^ esecuzione 2^ esecuzione Alla 1^ iterazione: salta a L1; $a0 = 0; $ra=l1+8. Alla 2^ iterazione: non salta a L1; $v0=1 e ritorna a L1+8, dove $a0=1; $ra=jalm+4; $v0=$v0*1 e ritorna al main. 29
30 Procedure annidate Esempi di esecuzione al variare di n: n = 2 $ra = JALM+4 $a0 = n = 2 $ra = L1+8 $a0 = n-1 = 1 $ra = L1+8 $a0 = n-2 = 0 1^ esecuzione 2^ esecuzione 3^ esecuzione Alla 1^ iterazione: salta a L1; $a0 diventa 1; $ra=l1+8. Alla 2^ iterazione: salta a L1; $a0 diventa 0; $ra=l1+8. Alla 3^ iterazione: non salta a L1, quindi $v0=1 e torna a L1+8, $a0=1; $ra=l1+8; $v0=$v0*1; torna a L1+8, $a0=2, $ra=jalm+4, $v0=1*$a0=2 e torna al main program. 30
31 Procedure annidate fatt. Salva indirizzo di ritorno e valore a0 nello stack Richiamo fatt sì a0<1 no v0=1 dec a0 Preleva a0 Ultima iterazione Ritorno Ritorno all ultima chiamata effettuata (2 casi: n-1 volte si ritorna alla routine fatt. all indirizzo L1+8 e si preleva a0 dallo stack, solo l ultima si torna al main (JALM+4)) e si aggiorna SP Iter. intermedie v0=a0*v0 Fatto con il ritorno alla routine fatt che aveva chiamato 31
32 Fattoriale senza ricorsione n nello stack FATT=1 sì a0<2 no n dallo stack FATT=FATT*a0 a0=a0-1 ritorno 32
33 Fattoriale senza ricorsione n = $a0 fatt: addi $sp, $sp, -4 # agg. $sp per salvat. n sw $a0, 0($sp) # salvataggio n addi $v0, $zero, 1 # $v0 = fattoriale = 1 Ciclo: slti $t0, $a0, 2 # test per $a0 < 2 beq $t0, $zero, L1 # salta se $a0 >= 2 lw $a0, 0($sp) # ripristino n addi $sp, $sp, 4 # aggiornamento $sp jr $ra L1: mult $v0, $a0, $v0 # fatt = fatt * $a0 addi $a0, $a0, -1 # $a0 = $a0-1 j Ciclo 33
34 Uso stack per variabili locali alle procedure Esempio: variabili non memorizzabili in registri (array, strutture) procedure frame/activation record: segmento stack contenente registri salvati e variabili locali $fp= frame pointer (puntatore all inizio del frame, comodo perché è un base register stabile nel frame, mentre $sp può cambiare) $fp $a0-$a3 $fp $fp $sp $ra $sp $s0 $s7 Local var. $sp N.B. Se si passano più di 4 parametri, i primi in $a0-$a3, gli altri direttamente nello stack 34
35 Gestione caratteri void strcpy (char [x], char [y]) { int i; i = 0; while ((x[i] = y[i])!= \0 ) /* copia e test byte */ i = i + 1; } strcpy: addi $sp, $sp, -4 sw $s0, 0($sp) # salva $s0 nello stack add $s0, $zero, $zero # i = 0 L1: add $t1, $a1, $s0 # ind. y[i] in $t1 lb $t2, 0($t1) # $t2 = y[i] add $t3, $a0, $s0 # ind. x[i] in $t3 sb $t2, 0($t3) # x[i] = y[i] addi $s0, $s0, 1 # i = i + 1 bne $t2, $zero, L1 # se y[i] 0 vai a L1 lw $s0, 0($sp) # ripristina $s0 dallo stack addi $sp, $sp, 4 jr $ra # ritorno Indirizzo stringa x = $a0; ind. Y = $a1; i = $s0 35
36 Another example Can we figure out the code? swap(int v[], int k); { int temp; temp = v[k] v[k] = v[k+1]; v[k+1] = temp; } swap: add $t1, $a1, $a1 add $t1, $t1, $t1 add $t1, $a0, $t1 lw $t0, 0($t1) lw $t2, 4($t1) sw $t2, 0($t1) sw $t0, 4($t1) jr $ra 36
37 Constants Small constants are used quite frequently (50% of operands) e.g., A = A + 5; B = B + 1; C = C - 18; Solutions? Why not? put 'typical constants'in memory and load them. create hard-wired registers (like $zero) for constants like one. MIPS Instructions: addi $sp, $sp, 4 slti $t0, $s3, 10 andi $sp, $sp, 6 ori $sp, $sp, 4 How do we make this work? 37
38 How about larger constants? We'd like to be able to load a 32 bit constant into a register Must use two instructions, new "load upper immediate" instruction lui $t0, filled with zeros Then must get the lower order bits right, i.e., ori $t0, $t0, ori
39 Assembly Language vs. Machine Language Assembly provides convenient symbolic representation much easier than writing down numbers e.g., destination first Machine language is the underlying reality e.g., destination is no longer first Assembly can provide 'pseudoinstructions' e.g., move $t0, $t1 exists only in Assembly would be implemented using add $t0,$t1,$zero When considering performance you should count real instructions 39
40 Pseudo Istruzioni Versioni modificate delle istruzioni vere, trattate dall assemblatore Esempi: Pseudo istruzione: move $t0, $t1 # $t0 = $t1 Istruzione vera: add $t0, $zero, $t1 Altri esempi: Pseudo istruzione: blt $s1, $s2, Label Istruzioni vere: slt $at, $s1, $s2 bne $at, $zero, Label bgt, bge, ble; branch condizionati a locazioni distanti trasformati in un branch e una jump, li, etc. 40
41 Other Issues Things we are not going to cover support for procedures linkers, loaders, memory layout stacks, frames, recursion manipulating strings and pointers interrupts and exceptions system calls and conventions Some of these we'll talk about later We've focused on architectural issues basics of MIPS assembly language and machine code we ll build a processor to execute these instructions. 41
42 Overview of MIPS simple instructions all 32 bits wide very structured, no unnecessary baggage only three instruction formats R I op rs rt rd shamt funct op rs rt 16 bit address J op 26 bit address rely on compiler to achieve performance what are the compiler's goals? help compiler where we can 42
43 Addresses in Branches and Jumps Instructions: bne $t4,$t5,label Next instruction is at Label if $t4 $t5 beq $t4,$t5,label Next instruction is at Label if $t4 = $t5 j Label Next instruction is at Label Formats: I J op rs rt 16 bit address op 26 bit address Addresses are not 32 bits How do we handle this with load and store instructions? 43
44 Addresses in Branches Instructions: bne $t4,$t5,label beq $t4,$t5,label Formats: Next instruction is at Label if $t4 $t5 Next instruction is at Label if $t4=$t5 I op rs rt 16 bit address Could specify a register (like lw and sw) and add it to address use Instruction Address Register (PC = program counter) most branches are local (principle of locality) Jump instructions just use high order bits of PC address boundaries of 256 MB 44
45 To summarize MIPS operands Name Example Comments $s0-$s7, $t0-$t9, $zero, Fast locations for data. In MIPS, data must be in registers to perform 32 registers $a0-$a3, $v0-$v1, $gp, arithmetic. MIPS register $zero always equals 0. Register $at is $fp, $sp, $ra, $at reserved for the assembler to handle large constants. Memory[0], Accessed only by data transfer instructions. MIPS uses byte addresses, so 2 30 memory Memory[4],..., sequential words differ by 4. Memory holds data structures, such as arrays, words Memory[ ] and spilled registers, such as those saved on procedure calls. MIPS assembly language Category Instruction Example Meaning Comments add add $s1, $s2, $s3 $s1 = $s2 + $s3 Three operands; data in registers Arithmetic subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Three operands; data in registers add immediate addi $s1, $s2, 100 $s1 = $s Used to add constants load word lw $s1, 100($s2) $s1 = Memory[$s ] Word from memory to register store word sw $s1, 100($s2) Memory[$s ] = $s1 Word from register to memory Data transfer load byte lb $s1, 100($s2) $s1 = Memory[$s ] Byte from memory to register store byte sb $s1, 100($s2) Memory[$s ] = $s1 Byte from register to memory load upper immediate lui $s1, 100 $s1 = 100 * 2 16 Loads constant in upper 16 bits branch on equal beq $s1, $s2, 25 if ($s1 == $s2) go to PC branch on not equal bne $s1, $s2, 25 if ($s1!= $s2) go to Conditional PC branch set on less than slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; else $s1 = 0 Equal test; PC-relative branch Not equal test; PC-relative Compare less than; for beq, bne set less than immediate slti $s1, $s2, 100 if ( $s2 < 100) $s1 = 1; else $s1 = 0 Compare less than constant jump j 2500 go to Jump to target address Uncondi- jump register jr $ra go to $ra For switch, procedure return tional jump jump and link jal 2500 $ra = PC + 4; go to For procedure call 45
46 Modi di indirizzamento Register addressing operando = registro Base addressing operando = cost($reg) Immediate addressing operando = costante PC relative addressing operando = PC+cost. Pseudodirect addressing operando = 4 bit PC + 26 istr. 46
47 1. Immediate addressing op rs rt Immediate 2. Register addressing op rs rt rd... funct Registers Register 3. Base addressing op rs rt Address Memory Register + Byte Halfword Word 4. PC-relative addressing op rs rt Address Memory PC + Word 5. Pseudodirect addressing op Address Memory PC Word 47
48 Vettori e puntatori Clear1(int array[], int size) { int i; for (i=0; i<size; i++) array[i]=0; } clear2(int *array, int size) { int *p; // *p= oggetto puntato da p for (p=&array[0]; p< &array[size]; p++) //&...= indirizzo... *p=0; } 48
49 Vettori e puntatori azz1 (int vett[], int dim) { int i; for (i=0; i<dim; i++) vett[i] = 0; } azz1: move $t0, $zero # i = 0 L1: add $t1, $t0, $t0 # 4 * i add $t1, $t1, $t1 add $t2, $a0, $t1 # $t2 = indirizzo di vett[i] sw $zero, 0($t2) # vett[i] = 0 addi $t0, $t0, 1 # i = i + 1 slt $t3, $t0, $a1 # i < dim? bne $t3, $zero, L1 # se i < dim vai a L1 jr $ra Indirizzo vett = $a0, dim = $a1, i = $t0 49
50 Vettori e puntatori azz2 (int *vett, int dim) { // *p è l oggetto puntato da p int *p; // &vett è l indirizzo di vett for (p=&vett[0]; p<&vett[dim]; p++) *p = 0; } azz2: move $t0, $a0 # p = indir vett[0] add $t1, $a1, $a1 # 4 * dim add $t1, $t1, $t1 add $t2, $a0, $t1 # $t2 = indir di vett[dim] L2: sw $zero, 0($t0) # mem puntata da p = 0 addi $t0, $t0, 4 # p = p + 4 slt $t3, $t0, $t2 # p < &vett[dim]? bne $t3, $zero, L2 # se è vero vai a L2 jr $ra Indirizzo vett = $a0, dim = $a1, p = $t0 50
51 Vettori e puntatori Clear1 Clear2 move $t0,$zero move $t0,$a0 loop1: add $t1,$t0,$t0 add $t1,$a1,$a1 add $t1,$t1,$t1 add $t1,$t1,$t1 add $t2,$a0,$t1 add $t2,$a0,$t1 sw $zero, 0($t2) loop2: sw $zero,0($t0) addi $t0,$t0,1 addi $t0,$t0,4 slt $t3, $t0, $a1 slt $t3,$t0,$t2 bne $t3, $zero, loop1 bne $t3,$zero,loop2 Hp. array $a0, size $a1, i $t0 array $a0, size $a1, p $t0 multiply and add all interno del loop solo incremento di p guadagno 7 su 4 (1.75) 51
52 Summary Instruction complexity is only one variable lower instruction count vs. higher CPI / lower clock rate Design Principles: simplicity favors regularity smaller is faster good design demands compromise make the common case fast Instruction set architecture a very important abstraction indeed! 52
Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div
MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni
DettagliLinguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)
Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Salvatore Orlando Arch. Elab. - S. Orlando 1 Livelli di astrazione Scendendo di livello, diventiamo più concreti e scopriamo
DettagliArchitetture dei Calcolatori
Architetture dei Calcolatori Lezione 11 -- 10/12/2011 Procedure Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Fattoriale: risparmiamo sull uso dei registri q Rispetto alla soluzione precedente
DettagliIl set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini
Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliLe etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j
L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):
DettagliLe procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I)
Le procedure L insieme delle istruzioni (4) Architetture dei Calcolatori (lettere A-I) In ogni linguaggio di programmazione si struttura il proprio codice usando procedure (funzioni, metodi, ) L utilizzo
DettagliLezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly
Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliCome caricare costanti lunghe 32 bits. Caricamento di costanti. Indirizzamento nei salti. Indirizzamento nei salti
Come caricare costanti lunghe 32 bits Si procede in due passi. Esempio: caricare 0xaabbccdd. Si caricano i 16 bit piu significativi lui $t0, 1010 1010 1011 1011 Bit meno significativi posti a zero Si caricano
DettagliArchitettura degli Elaboratori B Introduzione al corso
Componenti di un calcolatore convenzionale Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando http://www.dsi.unive.it/~arcb Studieremo il progetto e le prestazioni delle varie componenti
Dettagli21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio
02: ESERCITAZIONE 01 21 March 2011 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA I. Frosio 1 SOMMARIO Organizzazione della memoria Istruzioni di accesso alla memoria Vettori Istruzioni
DettagliCOMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME
MATRICOLA COGNOME NOME 1) [28/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla tabella sottostante), rispettando le convenzioni
DettagliMIPS Instruction Set 1
Architettura degli Elaboratori e Laboratorio 20 marzo 2012 Istruzioni Comuni 1/3 Istruzioni Aritmetiche: Instruction Example Meaning Comments add add $1,$2,$3 $1=$2+$3 Always 3 operands subtract sub $1,$2,$3
DettagliLezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly
Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliMIPS! !
MIPS! Sono descritte solamente le istruzioni di MIPS32, le pseudo-istruzioni, System Calls e direttive del linguaggio assembly che sono maggiormente usate.! MIPS è big-endian, cioè, lʼindirizzo di una
DettagliIl Linguaggio Assembly: Gestione della memoria e controllo
Il Linguaggio Assembly: Gestione della memoria e controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/42 Sommario L organizzazione
DettagliUn altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando
Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base
DettagliUniversità degli Studi di Cassino
Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if
DettagliCalcolatori Elettronici
Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche:
DettagliCorso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.
di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione
Dettagli5 April LABORATORIO 03 CONTROLLO DEL FLUSSO DI UN PROGRAMMA JUMP ADDRESS TABLE. I. Frosio
5 April 2012 04 LABORATORIO 03 CONTROLLO DEL FLUSSO DI UN PROGRAMMA JUMP ADDRESS TABLE I. Frosio 1 SOMMARIO If... Then... If... Then... Else... For... Break... While... Do Do... While Switch (jump address
DettagliSommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali
Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori
DettagliDal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione
Dal sorgente all eseguibile I programmi Assembly Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Riferimenti sul Patterson: Cap. 2.10 + Appendice B, tranne B.7
DettagliIl linguaggio macchina
Il linguaggio macchina Istruzioni macchina (PH 2.4) Indirizzamento (PH 2.9) Costanti a 32-bit (PH 2.9) 1 Linguaggio macchina Le istruzioni in linguaggio assembly devono essere tradotte in linguaggio macchina
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 13 1/23 Chiamata
DettagliMIPS Instruction Set 1
Laboratorio di Architettura 8 aprile 2011 1 SPIM 2 Architettura Mips 3 Esercitazione SPIM emulatore software architettura MIPS R2000/R3000 debugger + servizi base di sistema operativo realizzazione/verifica
DettagliIstruzioni assembler Istruzione N Registri
Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e
DettagliIl linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/33 Linguaggio
DettagliIntroduzione. Indice. Linguaggio macchina. Linguaggio assembler
Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio
DettagliISA e linguaggio macchina
ISA e linguaggio macchina Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1, D2. 1/55
DettagliArchitettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS
Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Ing.. Francesco Lo Presti Sviluppata e progettata a Stanford (USA) Progettata nei primi anni 80 Prodotta e
DettagliLinguaggio Assembler MIPS
Linguaggio Assembler MIPS Corso di Calcolatori Elettronici Corso di Calcolatori Elettronici A A.A. 2000/2001 Dr. Daniela Fogli Notazione Operazioni aritmetiche: Somma add a, b, c fa la somma di b e c e
DettagliRichiami sull architettura del processore MIPS a 32 bit
Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC
DettagliLe costanti Le modalità di indirizzamento L assembly del MIPS
Le costanti Le modalità di indirizzamento L assembly del MIPS Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/45 Sommario Le costanti
Dettagli7 May INTERRUPT ED ECCEZIONI I. Frosio
1 INTERRUPT ED ECCEZIONI I. Frosio SOMMARIO Eccezioni ed interrupt Esempi Gestione SW delle eccezioni: i dettagli 2 CICLO DI ESECUZIONE DI UN ISTRUZIONE Fecth (prelievo istruzione dalla RAM) Decodifica
DettagliStrutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register
Corso di Calcolatori Elettronici I A.A. 2010-2011 Strutture di controllo del flusso di esecuzione in assembler Lezione 25 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di
DettagliLinguaggio macchina e linguaggio assembly
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Università degli Studi di Udine Linguaggio macchina e linguaggio assembly Formato delle istruzioni 15 8 7 0 gruppo modo di indirizzamento codice dell
DettagliInstruction Set Architecture
( ISA ) Architettura del set di istruzioni Instruction Set Architecture Software Hardware ( Netscape ) Application Compiler Assembler Processor Memory Digital Design Circuit Design transistors Operating
DettagliLezione 3 Assembly MIPS (2)
Lezione 3 Assembly MIPS (2) http://www.dii.unisi.it/~giorgi/didattica/calel All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John
DettagliISA (Instruction Set Architecture) della CPU MIPS
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina
DettagliRichiami sull architettura del processore MIPS a 32 bit
Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliUniversità degli Studi di Roma La Sapienza
Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Introduzione ai concetti ed al simulatore SPIM Indice degli argomenti Introduzione Assembler, compilatore, linker, programma
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliLezione 2 Assembly MIPS (2)
Lezione 2 Assembly MIPS (2) http://www.dii.unisi.it/~giorgi/didattica/arcal1 All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliL ambiente di simulazione SPIM
Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/28
DettagliIl linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE:
DettagliQuestion 1: introduction to computer programming
Question 1: introduction to computer programming Question 1: introduction to computer programming What is a compiler? (4 points). Cos è un compilatore? (4 punti). c 2006 Marco Bernardo 1/14 Question 1:
DettagliSchemi di paginazione nell architettura 86 (32 e 64 bit)
Paginazione X86 1 Schemi di paginazione nell architettura 86 (32 e 64 bit) Questo documento mette insieme figure dai manuali Intel che illustrano gli aspetti salienti della gestione della memoria nell
DettagliLa programmazione dei calcolatori. Architetture dei Calcolatori (Lettere. Benefici dei linguaggi ad alto livello. Vantaggi e svantaggi dell assembler
La programmazione dei calcolatori Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Prof. Francesco Lo Presti Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente
DettagliCalcolatori Elettronici
Calcolatori Elettronici Il linguaggio assemblativo MIPS (4) Le function (2) Gestione dei sottoprogrammi $a0 - $a3 - $v1 $ra : 4 registri argomento per il passaggio dei parametri : due registri per la restituzione
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS Massimiliano Giacomin 1 Architettura MIPS Architettura RISC e load-store sviluppata da John Hennessy nel 1981 Usata da NEC, Nintendo,
DettagliEsercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 5 Linguaggio Assembly
Esercitazione di Calcolatori Elettronici Ing. Battista Biggio Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore
DettagliLinguaggio macchina: utilizzo di costanti, metodi di indirizzamento
Architetture degli Elaboratori e delle Reti Lezione 17 Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità
DettagliRichiami: v[i] e &v[i] Organizzazione della memoria. Organizzazione della memoria. Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis
Esercitazione di Ing. Gian Luca Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore v; &v[i] è il suo indirizzo.
DettagliEsempio di procedura annidata. L insieme delle istruzioni (5) Esempio di procedura annidata (2) set_array: Esempio di procedura annidata (3)
L insieme delle istruzioni (5) Architetture dei Calcolatori (lettere A-I) Esempio di procedura annidata Codice C Assumiamo che set_array sia la prima procedura chiamata Assumiamo che la variabile i corrisponde
DettagliAssembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive
Assembler di Spim Assembler di SPIM Il programma è organizzato in linee Ogni linea può contenere un commento che parte dal carattere # e si estende fino alla fine della linea Ogni linea che non sia bianca
DettagliProgetto CPU (ciclo singolo) Salvatore Orlando
Progetto CPU (ciclo singolo) Salvatore Orlando Arch. Elab. - S. Orlando 1 Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Semplificato in modo
DettagliConvenzioni di chiamata a procedure
Università degli Studi di Milano Laboratorio di Architettura degli Elaboratori II Corso di Laurea in Informatica, A.A. 2016-2017 Convenzioni di chiamata a procedure Nicola Basilico Dipartimento di Informatica
DettagliESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:
Università degli Studi di Milano Corso Architettura degli elaboratori e delle reti Prof. Cristina Silvano A.A. 2004/2005 Esame scritto del 15 luglio 2005 Cognome: Matricola: Nome: Istruzioni Scrivere solo
DettagliLinguaggio Assembler MIPS
Linguaggio Assembler MIPS Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Architettura MIPS Architettura RISC sviluppata
DettagliPseudo-operatori. Lo pseudo-operatore ORG
Pseudo-operatori Viene usato per inizializzare il Program Location Counter (PLC) Sintassi: ORG $HEXADDR Lo pseudo-operatore END Viene usato per terminare il processo di assemblaggio e saltare all entry
DettagliAssembly III SPIM: un ambiente di simulazione MIPS
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly III SPIM: un ambiente di simulazione MIPS Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi
DettagliProcessore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)
Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Parte di Controllo La Parte Controllo (Control) della CPU è un circuito sequenziale istruzioni eseguite in più cicli di clock
DettagliAssembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.
Assembly Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A 1 Linguaggio assembly (App. A) Rappresentazione simbolica del linguaggio macchina Più comprensibile
DettagliProgettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore
Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero
DettagliAssembly MIPS: gestione degli array strutture di controllo. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano
Architettura degli Elaboratori Assembly MIPS: gestione degli array strutture di controllo A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1 Istruzione MIPS: lw (load
DettagliMacchina di Riferimento: argomenti
Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura
DettagliIl processore: unità di elaborazione
Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS ESERCIZI Massimiliano Giacomin ESERCIZIO Utilizzando la green card, tradurre in linguaggio macchina le due istruzioni in assembly
DettagliEsercitazione n. 3. Dott. Salvatore Pontarelli
Esercitazione n. 3 Dott. Salvatore Pontarelli Struttura di un modulo Assembly Assembly è il linguaggio che l ARM assembler (armasm) legge per produrre il codice oggetto. può essere: ARM assembly language
DettagliUniversità degli Studi di Cassino e del Lazio Meridionale
di Cassino e del Lazio Meridionale Corso di Realizzazione in Assembly di costrutti di controllo di flusso HLL e di strutture dati Anno Accademico Francesco Tortorella Realizzazione delle strutture di controllo
DettagliArchitettura degli Elaboratori B Introduzione al corso
Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando Arch. Elab. - S. Orlando 1 Componenti di un calcolatore convenzionale Studieremo il progetto e le prestazioni delle varie componenti
DettagliL unità di controllo di CPU a singolo ciclo
L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,
DettagliLA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI
Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and
DettagliIL GIOVANE HOLDEN FRANNY E ZOOEY NOVE RACCONTI ALZATE LARCHITRAVE CARPENTIERI E SEYMOUR INTRODUZIONE BY JD SALINGER
IL GIOVANE HOLDEN FRANNY E ZOOEY NOVE RACCONTI ALZATE LARCHITRAVE CARPENTIERI E SEYMOUR INTRODUZIONE BY JD SALINGER READ ONLINE AND DOWNLOAD EBOOK : IL GIOVANE HOLDEN FRANNY E ZOOEY NOVE RACCONTI ALZATE
DettagliMIPS Instruction Set 2
Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general
DettagliLA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI
Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and
DettagliProcessore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite
Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Progetto CPU (ciclo singolo) Semplificato in modo tale da eseguire solo: istruzioni di memory-reference:
DettagliArchitettura di una CPU
Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1
DettagliArchitettura degli Elaboratori Modulo 2
Architettura degli Elaboratori Modulo 2 Salvatore Orlando http://www.dsi.unive.it/~architet Arch. Elab. - S. Orlando 1 Contenuti Approfondiremo il progetto e le prestazioni delle varie componenti di un
DettagliA.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio
A.A. 2006/2007 Laurea di Ingegneria Informatica Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio Obbiettivi Acquisire familiarità con la nozione di oggetto Apprendere le proprietà
DettagliSottoprogrammi in linguaggio assembly del Motorola 68000
Sottoprogrammi in linguaggio assembly del Motorola 68000 Daniele Paolo Scarpazza daniele.scarpazza@elet.polimi.it Politecnico di Milano Ultimo aggiornamento: 10 Maggio 2005 Bibliografia Sezioni 4.9, 5.6
DettagliProcessore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)
Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo
DettagliAssembly. Motivazioni. Programmazione Assembly
Assembly Programmazione in linguaggio macchina (o meglio in assembly): programmare utilizzando istruzioni direttamente eseguibili dal processore. Questa parte del corsi si accompagna a lezioni in laboratorio:
DettagliCapitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.
1 Capitolo 6 - Array Array Array Gruppo di locazioni di memoria consecutive Stesso nome e tipo Per riferirsi a un elemento, specificare Nome dell array Posizione Formato: arrayname[ position number ] Primo
DettagliArchitettura di tipo registro-registro (load/store)
Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche
DettagliIl linguaggio assembly
Il linguaggio assembly PH 2.3 (continua) 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Istruzioni logiche 2 1 La memoria del MIPS I contenuti delle locazioni di memoria
DettagliLa macchina programmata Instruction Set Architecture (1)
Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2014-15 La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione Istruzioni macchina Outline Componenti di un
DettagliPuntatori, array, incrementi Array come parametri Array di puntatori. Programmazione 1. Lezione 12. Vincenzo Marra.
Programmazione 1 Lezione 12 Vincenzo Marra vincenzo.marra@unimi.it Dipartimento di Matematica Federigo Enriques Università degli Studi di Milano 28 maggio 2014 Puntatori ed array Nel linguaggio C esiste
DettagliLA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI
Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and
DettagliCanti Popolari delle Isole Eolie e di Altri Luoghi di Sicilia (Italian Edition)
Canti Popolari delle Isole Eolie e di Altri Luoghi di Sicilia (Italian Edition) L. Lizio-Bruno Click here if your download doesn"t start automatically Canti Popolari delle Isole Eolie e di Altri Luoghi
DettagliStringhe. Prof. Lorenzo Porcelli
Stringhe Prof. Lorenzo Porcelli definizione Una stringa è un vettore di caratteri terminato dal carattere nullo \0. Il carattere nullo finale permette di determinare la lunghezza della stringa. char vet[32];
DettagliLinguaggio macchina e linguaggio assembler
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Linguaggio macchina e linguaggio assembler 2000 Pier Luca Montessoro (si veda la nota di copyright
DettagliSubroutine in linguaggio macchina: collegamento e passaggio dei parametri
Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso
DettagliArchitettura dei calcolatori e sistemi operativi. Sottoprogrammi e MIPS. Espressioni algebriche. Capitolo 2 P&H
Architettura dei calcolatori e sistemi operativi Sottoprogrammi e MIPS Espressioni algebriche Capitolo 2 P&H Sottoprogrammi Modello di chiamata Area di attivazione Calcolare un espressione algebrica 2
DettagliIl linguaggio Assembly
Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly
Dettagli/ sezione dichiarativa variabili globali / #define N 10 int vett [N];
esercizio linguaggio macchina esame 9 luglio 2015 prima parte traduzione in assembler Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) MIPS il frammento di programma C riportato
DettagliI CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO
I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO READ ONLINE AND DOWNLOAD EBOOK : I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO
Dettagli