Instruções Assembly. César Yutaka Ofuchi (Adaptado do Prof. Hugo Vieira Neto) César Ofuchi

Tamanho: px
Começar a partir da página:

Download "Instruções Assembly. César Yutaka Ofuchi (Adaptado do Prof. Hugo Vieira Neto) César Ofuchi"

Transcrição

1 1 Instruções Assembly César Yutaka Ofuchi (Adaptado do Prof. Hugo Vieira Neto)

2 2 Instruções Novo Workspace IAR 1- Fazer download do novo workspace no site em laboratório2 2 Corrigir o caminho do arquivo de imagem em Examples- >options->linker->input 3 Rebuild All da pasta Examples

3 Instruções Novo Workspace IAR Fazer download do novo workspace na pasta laboratório 2 Modo simulação e modo placa base no mesmo projeto Escolha de pastas que serão ou não compiladas através do menu (botão direito na pasta) Options->Exclude from build Pasta excluída é marcada com um X Para trocar entre modo simulador e modo placa, clicar com o botão direito no projeto Examples ->Options- >Debugger->Setup->Driver Simulator para simulação JLINK/J-Trace para placa 3

4 4 Instruções Novo Workspace IAR - Pasta

5 5 Instruções Novo Workspace IAR - Pasta

6 Material de apoio: Referências Cortex-M3/M4F Instruction Set ARM and Thumb -2 Instruction Set (quick reference) Livro: The Definitive Guide to The ARM Cortex-M3 capítulo 4 6

7 Revisão Utiliza a versão de arquitetura ARMv7-M Conjunto de instruções Thumb2 Emprega instruções de 16 e 32 bits Arquitetura Load/Store Pipeline Instruções Condicionais ATPCS 7

8 8 Unified Assembler Language (UAL) Padroniza as pseudo-instruções a serem resolvidas pelo montador (assembler): POP, PUSH Relaxamento nas definições de Rd e Rn Rd : registro de destino Rn : registo de origem (parametro) Obrigatoriedade do sufixo S para alterar flags Especificadores de largura da instrução.w força instrução de 32 bits (Wide).N força instrução de 16 bits (Narrow)

9 9 Instruções de processamento de dados Exemplos: Aritmética: ADD ADC SUB SBS RSB RSC Lógica: AND ORR EOR BIC Comparação: CMP CMN TST TEQ Movimento de dados: MOV MVN Instruções somente trabalham com registradores e NÃO com a memória Sintaxe: <operação> {cond} {flags} Rd, Rn, Operando 2 <operação>: Mneumônico de 3 letras {cond} opcional: Código para instruções condicionais (EQ, CS, etc.) {flags} opcional: Habilita flags (S) Rd: Registrador de Destino Rn: Registrador de origem Operando 2: operando flexível

10 Instruções de Carga Carga de registrador MOV Rd, <Op2> Rd := <Op2> Carga de registrador negado MVN Rd, <Op2> Rd := /<Op2> Carga de MSB MOVT Rd, <Op2> Rd := /<Op2> <Op2> = registrador (deslocado) ou constant Números Negativos (Complemento de 2) 0x0001 (1 positivo) 0x (Inverte e soma 1) 0x1111 (1 negativo) 10

11 11 Instruções de Carga Move de um registrador especial para um registrador geral MRS Rd, <SReg> Rd<-SReg Move de um registrador geral para um registrador especial MSR <SReg>, Rm SReg<-Rm

12 12 Operando 2 -> Barrel Shifter Rd: Registrador de Destino Rn: Registrador de origem (operando 1) Ex: ADD R0, R1, R2 Rm Registrador de origem (barrel shifter->operando 2) Circuito Lógico Combinacional (delay muito pequeno) que pode deslocar os dados por um número de bits BCDA<- ABCD -> DABC

13 13 Deslocamento Lógico à Esq. (LSL) LSL{S} Rd, Rm, Rs LSL{S} Rd, Rm, #imm Efeito de LSLS Rm, #n é Rm x 2 n n >= 32: todos os bits são zerados n >= 33: todos os bits e o flag C são zerados Variante: LSLS (altera flag C) LSLS R1, R2, #3 ; Logical shift left by 3 bits with flag update

14 14 Deslocamento Lógico à Dir. (LSR) LSRS {Rd}, Rm, Rs LSRS {Rd}, Rm, #imm Efeito de LSRS Rm, #n é Rm / 2 n n >= 32: todos os bits são zerados n >= 33: todos os bits e o flag C são zerados Variante: LSRS (altera flag C) LSR R4, R5, #6 ; Logical shift right by 6 bits

15 15 Deslocamento Aritmético à Dir. (ASR) Variante: ASRS (altera flag C) ASRS{Rd}, Rm, Rs ASRS{Rd}, Rm, #imm ASR Efeito de ASRS Rm, #n é Rm / 2 n n >= 32: todos os bits e o flag C recebem cópia do bit 31 R7, R8, #9 ; Arithmetic Exemplo ASR por 4 (valor positivo) Exemplo ASR por 4 (valor negativo)

16 16 Rotação à Direita (ROR) Variantes: RORS (altera flag C) RORS {Rm}, Rm, Rs Apenas dois operandos Apenas registradores baixos (R0 a R7) n = 32: o valor não é alterado e flag C := Rm[31] n = 33: mesmo efeito que n = 1 ROR R4, R5, R6 ; Rotate right by the value in the bottom byte of R6

17 Rotação à Direita Extendida (RRX) Variantes: RRXS (altera flag C) RRXS Rd, Rm Inclui o flag C na rotação Rotação de um único bit à direita RRX R4, R5 ; Rotate right with extend. 17

18 18 ARM Barrel Shifter LSL: Logical Shift Left ASR: Arithmetic Right Shift Destination C 0 C Multiplicação por uma potência de 2 Destination Divisão por uma potência de 2 preservando o sinal LSR: Logical Shift Right ROR: Rotate Right 0 Destination C Destination C Divisão por uma potência de 2 RRX: Rotate Right Extended Rotação circular de n bits do LSB para o MSB Destination Rotação circular de 1 bit do flag C para o MSB C

19 19 Exemplos - Código MOV r0, r0, LSL #1 Multiplica R0 por 2. MOV r1, r1, LSR #2 Divide R1 por 4 (unsigned). MOV r2, r2, ASR #2 Divide R2 por 4 (signed). MOV r3, r3, ROR #16 Troca o MSB pelo LSB de R3.

20 20 Operando 2 Flexível <Op2> 0100 = Instrução ADD I =0 Operando 2 é registrador I= 1 Operando 2 é valor imediato 12 bits = 2^12 = bits = 2^8 = bits = 2^4 = 0-15 x x2 ROR

21 21 Exemplo 8 bits deslocados

22 22 Operando 2 Flexível <Op2> Deslocamentos permitidos: ASR #n 1 n 32 LSL #n 1 n 31 LSR #n 1 n 32 ROR #n 1 n 31 #Constantes permitidas: Valores de 8 bits deslocados Valores do tipo 0x00XY00XY (hex) Valores do tipo 0xXY00XY00 (hex) Valores do tipo 0xXYXYXYXY (hex)

23 23 Carga de Constantes de 32 bits Instruções MOV.W e MOVT simplificam a carga de constantes que não atendem aos padrões de 8 bits com deslocamento MOV Ri, #imm16 (MOV.W Ri, #imm16) carrega os 16 LSB de Ri, zerando os 16 MSB MOVT Ri, #imm16 carrega os 16 MSB de Ri imm16: Is a 16-bit immediate constant MOV = MOV.W

24 24 Instruções Lógicas e Aritméticas

25 Instruções Lógicas e Aritméticas 25 25

26 26 Instruções Lógicas e Aritméticas Formato Três operandos explícitos (Rd, Rn, <Op2>) ADD R0, R1, R2 R0 := R1 + R2 Dois operandos explícitos e um implícito (Rd, <Op2>) ADDS R0, R1 (flags) R0 := R0 + R1 válido apenas para algumas instruções (UAL). Dois operandos (Rn, <Op2>) CMP R7, R8

27 27 Adição e Subtração ADD{S}, ADC{S} Rd, Rn, <Op2> ADD R0, R1, R2 R0 := R1 + R2 (adição) ADDC R0, R1, R2 R0 := R1 + R2 + C SUB{S}, SBC{S} Rd, Rn, <Op2> SUB R0, R1, R2 SBC R0, R1, R2 R0 := R1 - R2 R0 := R1 - R2 - C (subtração) RSB{S} Rd, Rn, <Op2> RSB R0, R1, R2 R0 := R2 - R1 EXEMPLOS COM OPERANDO 2: ADD r4, r4, r4, LSL #4 Multiplica R4 por 17. (N = N + N * 16) (subtração reversa) RSB r5, r5, r5, LSL #5 Multiplica R5 por 31. (N = N * 32 - N)

28 28 Operações Lógicas AND{S} Rd, Rn, <Op2> Operação AND ORR{S} Rd, Rn, <Op2> Operação OR EOR{S} Rd, Rn, <Op2> Operação EXCLUSIVE OR ORN{S} Rd, Rn, <Op2> Operação OR NOT BIC{S} Rd, Rn, <Op2> Operação AND NOT (bit clear)

29 Comparação / Teste Lógico <operação> {cond} Rn, Operando 2 atualiza flags!! CMP Rn, <Op2> afeta flags com Rn - Op2 (comparação) CMN Rn, <Op2> afeta flags com Rn + Op2 (comparação negativa) TST Rn, <Op2> afeta flags com Rn AND Op2 (testa bits AND bit-a-bit) TEQ Rn, <Op2> afeta flags com Rn EOR Op2 (testa equivalência) EOR = Ou Exclusivo Rn: Op2: Res: ZERO quer dizer igual 29

30 Exercício 1 Qual a maneira mais eficiente (menos instruções e menos tempo de execução) para fazer as seguintes cargas de constantes? a) R0 := 0 b) R1 := 200 c) R2 := 0x1234 d) R3 := 0xFFFFFF00 e) R4 := 0xABCDEF00 30

31 Exercício 2 Programa em Assembly: Atividades: INICIO: MOV R1, #3 MOV R2, #5 MOVS R3, #-6 ADD R0, R2, R3 ADDS R0, R2, R3 ADDS R0, #9 CMP R0, #8 SUBS R0, #10 SUBS R0, #256 SUBS R0, #3000 a) Corrigir e explicar erros de montagem do programa b) Interpretar valores c) Interpretar flags 31

32 MUL Rd, Rn, Rm Rd := Rn x Rm Multiplicação (32 bits) Formato preferido: MUL Rd, Rn Apenas registradores baixos (R0 R7) MULS Rd, Rn, Rm (Rd==Rm) Rd := Rn x Rd Afeta flags N e Z, mas neste caso Rm deve ser o mesmo registrador que Rd Ex: (MULS R0,R2,R0) 32-bits x 32-bits -> 32-bits em 1 ciclo de clock 32

33 33 Multiplicação Acumulada (MLA) MLA Rd, Rn, Rm, Ra Rd := Ra + Rn x Rm MLS Rd, Rn, Rm, Ra Rd := Ra - Rn x Rm 32-bits x 32-bits -> 32-bits em 2 ciclos de clock

34 34 Multiplicação Longa (64 bits) Multiplicação longa não sinalizada (Unsigned): UMULL RdLo, RdHi, Rn, Rm RdHi:RdLo := Rn x Rm Multiplicação acumulada longa não sinalizada: UMLAL RdLo, RdHi, Rn, Rm RdHi:RdLo := RdHi:RdLo + Rn x Rm 32-bits x 32-bits -> 64-bits em 3 a 5 ciclos de clock

35 35 Multiplicação Longa (64 bits) Multiplicação longa sinalizada (Signed): SMULL RdLo, RdHi, Rn, Rm RdHi:RdLo := Rn x Rm Multiplicação acumulada longa sinalizada: SMLAL RdLo, RdHi, Rn, Rm RdHi:RdLo := RdHi:RdLo + Rn x Rm 32-bits x 32-bits -> 64-bits em 3 a 5 ciclos de clock

36 Divisão Divisão não sinalizada (Unsigned): UDIV Rd, Rn, Rm Rd := Rn / Rm Divisão sinalizada (Signed): SDIV Rd, Rn, Rm Rd := Rn / Rm 32-bits / 32-bits -> 32-bits em 2-12 ciclos de clock Pode gerar exceção na divisão por zero (configurável) 36

37 37 Exercício 3 Multiplicar o valor inteiro (32-bits) que está em R3 pela constante 9: (R3=2) a) Usando instrução de multiplicação b) Sem usar instrução de multiplicação (sugestão: adição/subtração/deslocamento) c) Idem, mas agora multiplicando o valor que está em R3 pela constante 15. a) Explicar o resultado dos comandos anteriores

38 38 Operações em Bits

39 Operações em Bits Bit-field Clear: Zera #w bits a partir de #lsb em Rd BFC{cond} Rd, #lsb, #width Exemplo BFC R4, #8, #12 ;zera bit 8 ao bit 19 (12 bits) Bit-field Insert: Copia #w bits de Rn:0 para Rd:#lsb BFI{cond} Rd, Rn, #lsb, #width Exemplo BFI R9, R2, #8, #12 ;troca bit 8 ao bit 19 (12 bits) de R9 ;pelos bits 0-11 de R2 39

40 Operações em Bits Signed Bit-field Extract: Copia #w bits a partir de #lsb para o bit 0 de Rd e estende sinal. SBFX Rd, Rn, #lsb, #w Exemplo: SBFX R0, R1, #20, #4 ;Extrai bit 20 a bit 24 (4 bits) de R1, estende ;sinal para 32 bits e escreve em R0 Unsigned Bit-field Extract: Copia #w bits a partir de #lsb para o bit 0 de Rd e estende com zeros UBFX Rd, Rn, #lsb, #w Exemplo: UBFX R8, R11, #9, #10 ; Extrai bit 9 a bit 18 (10 bit) de R11, estende ;0 para 32 bits e escreve em R0 40

41 Programa em Assembly: Exercício 4 INICIO: MVN R0, #0 MOV R1, #0xCCDD MOVT R1, #0xAABB BFC R0, #4, #8 BFI R0, R1, #8, #12 SBFX R0, R1, #4, #8 UBFX R0, R1, #4, #8 Atividades: a) Interpretar resultados das instruções BFC e BFI b) Interpretar os resultados das instruções SBFX e UBFX 41

42 42 Operações de Extensão

43 43 Operações de Extensão SXT e UXT Signed Extend Byte to Word: SXTB Rd, Rm // Rd := sign extend Rm[7:0] Unsigned Extend Byte to Word : UXTB Rd, Rm// Rd := zero extend Rm[7:0] Signed Extend Halfword to Word: SXTH Rd, Rm // Rd := sign extend Rm[15:0] Unsigned Extend Halfword to Word: UXTH Rd, Rm // Rd := zero extend Rm[15:0] Apenas registradores baixos (R0 a R7)

44 44 Operações de Reversão

45 45 Operações de Reversão Reversão dos bits de uma word: RBIT Rd, Rm Reversão dos bytes de uma word: REV Rd, Rm Reversão dos bytes de ambas as halfwords de uma word: REV16 Rd, Rm Reversão dos bytes da halfword menos significativa de uma word, com extensão de sinal: REVSH Rd, Rm

46 46 Instruções de Salto

47 47 Instruções de Salto Salto incondicional B{cond} label Salto condicional (única instrução condicional que não precisa estar em bloco IT): B{cond} label Ex: BEQ Chamada de subrotina (armazena endereço de retorno em LR): BL label Ex: (end) BL rotinax rotinax (LR=end) Retorno de chamada de subrotina (PC := LR): BX{Rm} Ex: BX LR ou PC=LR

48 48 Limites de Abrangência

49 49 Instruções de Comparação e Salto Testa Rn e salta se for diferente de zero: CBNZ Rn, label Compare and branch if not zero Testa Rn e salta se for igual a zero: CBZ Rn, label Compare and branch if zero Restrições: Apenas registradores baixos (R0 a R7) Apenas saltos para frente de até 130 bytes Não pode ser usado em bloco IT Não afeta flags

50 50 Acesso à Memória Load/Store <operação>{cond}{tam} Rd, <endereço> LDR Rd:=valor no endereço ex: LDR R0, [R1] R0=<R1> STR valor no <endereço> = Rd ex: STR R0, [R1] <R1>=R0 {tam} B: byte SB: signed byte H: halfword, SH signed halfword

51 51 Instruções de Acesso à Memória Load

52 52 Instruções de Acesso à Memória Store

53 53 Instruções LDR (Load) Leitura de word apontada por registrador: LDR Rd, [Rn, {#off}] Leitura de halfword apontada por registrador: LDRH Rd, [Rn, {#off}] Leitura de byte apontado por registrador: LDRB Rd, [Rn, {#off}] Restrições: Somente registradores baixos (R0 a R7) e SP #off: (SP), (R0 a R7), (LDRH) (LDRB); somente valores positivos #off deve ser *4 para LDR e *2 para LDRH

54 54 Instruções LDR (Load) Indexação por registrador: LDR Rd, [Rn, ±Rm {, <opsh>}] LDRH Rd, [Rn, ±Rm {, <opsh>}] LDRB Rd, [Rn, ±Rm {, <opsh>}] <opsh> = deslocamento opcional Exemplo: LDR R0, [R1, R2, LSL #2] //end = R1 + R2<<2

55 55 Pré e Pós-indexação Acesso pré-indexado: Primeiro atualiza endereço, depois acessa memória Usar! para atualizar o ponteiro LDR Rd, [Rn {, #off}] {!} LDR Rd, [Rn, ±Rm {, <opsh>}]{!} Exemplos: LDR R0, [R1, #4] LDR R0, [R1, R2]!

56 56 Pré e Pós-indexação Acesso pós indexado: Primeiro acessa memória, depois atualiza endereço Sempre atualiza o ponteiro LDR Rd, [Rn] {, #off} LDR Rd, [Rn], ±Rm {, <opsh>} Exemplos: LDR R0, [R1], #4 LDR R0, [R1], R2

57 57 Carga com Extensão de Sinal Leitura de halfword com extensão de sinal: LDRSH Rd, [Rn, #off] LDRSH Rd, [Rn, ±Rm {, <opsh>}] Leitura de byte com extensão de sinal: LDRSB Rd, [Rn, #off] LDRSB Rd, [Rn, ±Rm {, <opsh>}]

58 58 Acessos Alinhados Um acesso à memória é alinhado se: Para Word: endereço múltiplo de 4 Para Halfword: endereço múltiplo de 2 Para Byte: endereço múltiplo de 1 No Cortex-M3 os acessos podem ser desalinhados

59 59 Acessos Múltiplos à Memória Leitura de múltiplos registradores da memória: LDMIA Rn{!}, <reglist> LDMDB Rn{!}, <reglist> Escrita de múltiplos registradores na memória: STMIA Rn{!}, <reglist> STMDB Rn{!}, <reglist> Exemplos: LDM R0, {R0, R1, R2} STM R0!, {R2-R4}

60 60 Acesso Multiplo à Memória LDM/STM Operação: LDM / STM (Load Multiple, Store Mulltiple) <modo endereçamento> USUAL STACK IA: Increment After FA:Full Ascending IB: Increment Before EA:Empty Ascending DA: Increment After FD: Full Descending DB: Decrement Before ED: Empty Descending Rn: registrador base contendo o endereço inicial Lista de registradores {R3, R5}: separado por virgula endereça cada elemento R3, R5 {R3 R5} : separado por traço (-) endereça o conjunto R3, R4, R5 operação<modo end.>{cond} Rn{!}, <lists de reg.>

61 61 Acesso Multiplo à Memória LDM/STM operação<modo end.>{cond} Rn{!}, <lists de reg.> Exemplo1: load múltiple, Increment After Tem o mesmo efeito que 4 instruções LDR

62 62 Acesso Multiplo à Memória LDM/STM operação<modo end.>{cond} Rn{!}, <lists de reg.> Exemplo2: load múltiple, Increment After Carrega o conteúdo endereçado por r9 em r0, r1, r2,r3 e r12 Incrementa r9 em cada carregamento Se quiser atualizar o valor de r9 usar o!

63 63 Acesso Multiplo à Memória LDM/STM <modo endereçamento> USUAL STACK IA: Increment After FA: Full Ascending IB: Increment Before EA: Empty Ascending DA: Increment After FD: Full Descending DB: Decrement Before ED: Empty Descending

64 64 Tipos de Pilha Normalmente Rn = SP (R13) Usar! para atualizar o ponteiro Full Descending Stack STMFD = STMDB (decrement before) LDMFD = LDMIA (increment after) Empty Ascending Stack STMEA = STMIA (increment after) LDMEA = LDMDB (decrement before)

65 Tipos de Pilha STMDB SP!, {R0,R1,R3-R5} STMIA SP!, {R0,R1,R3-R5} STMFD SP!, {R0,R1,R3-R5} STMEA SP!, {R0,R1,R3-R5} 0x418 SP r5 r4 r3 r1 Old SP r5 Old SP r0 0x400 r4 r3 r1 SP r0 0x3e8 DB : Decrement Before IA : Increment After FD : Full Descending EA : Empty Ascending 65

66 66 PUSH e POP Implementam uma estrutura de pilha do tipo Full Descending Stack PUSH {R0,R1,R3-R5} STMFD SP!, {R0,R1,R3-R5} POP {R0,R1,R3-R5} LDMFD SP!, {R0,R1,R3-R5} Lista de registradores pode incluir LR (R14) e PC (R15)

67 67 Mapa de Memória RAM STACK HEAP DATA (.data) (.bss)

68 Exercício 5 Programa em Assembly: Atividades: INICIO: MOV R0, #0x3344 MOVT R0, #0x1122 MOV R1, #0xCCDD MOVT R1, #0xAABB STMIA SP!, {R0, R1} LDMDB SP!, {R0, R1} PUSH {R0, R1} POP {R0, R1} a) Observar os efeitos das instruções no registrador SP e na memória (pilha) b) Remover o! das instruções STM e LDM e observar o efeito no registrador SP c) Trocar os sufixos IA e DB das instruções STM e LDM e observar o efeito na memória (pilha) 68

69 Bloco If-Then (IT) IT <X><Y><Z><COND> Execução Condicional <X,Y e Z> são até 3 opcionais (T) them ou (E) else <COND> condições como NE, EQ, etc que são flags do APSR Até 3 instruções condicionais then (T) ou else (E) podem ser adicionadas Instrução minima (IT) com apenas uma condicional No máximo 4 instruções consecutivas em condicionais Qualquer código de condição ARM pode ser utilizado (ver tabela a seguir) 69

70 Códigos de Condição ARM APSR N Z C V Negative Zero Carry Overflow Mn Descrição Flags Mn Descrição Flags EQ equal Z NE not equal Z CS HS carry set higher or same C CC LO carry clear lower C MI minus/negative N PL plus/positive N VS overflow V VC no overflow V HI higher ZC LS lower or same Z + C GE greater or equal NV + N V LT less than N V + NV GT greater than N ZV + N Z V LE less or equal Z + N V + N V 70

71 71 Exemplo CMP <Rn>, Op2 Descrição: Faz Rn-Op2 CMP R0, #10 ;compara R0 com 10 ITE LO ;Bloco IT (R0<10)? ADDLO R0, #1 ; then R0=R0+1 (se for menor) C=0 MOVHS R0,#0 ; else R0=0 (senão) C=1

72 72 Blocos IT (If-Then) A instrução de salto condicional B{cond} label é a única que não precisa estar em bloco IT As seguintes instruções não podem estar em bloco IT: Bloco IT: IT Branches: CBZ, CBNZ Processor State Change: CPSIE, CPSID Uma instrução que altera o PC, só pode estar em bloco IT se for a última instrução do bloco

73 73 IT-Barrel Shifter - Exercício 6 (entregar) Gerar um código em assembly que utilize o bloco IT e teste as quatro flags (N,Z,C,V) Pelo menos um dos testes deve ter GT/LE Testar o uso da flag S nas instruções dentro do bloco IT Usar instruções de comparação Usar Barrel Shifter Comparar o tempo computacional desse código com o equivalente em C (disassembly) Mandar para o ofuchi@utfpr.edu.br para a próxima aula Colocar no assunto NOME_TURMA

SISTEMAS EMBARCADOS. Conjunto de Instruções Thumb2. Prof. André Schneider de Oliveira

SISTEMAS EMBARCADOS. Conjunto de Instruções Thumb2. Prof. André Schneider de Oliveira Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) SISTEMAS EMBARCADOS Conjunto de Instruções Thumb2 Prof. André Schneider de Oliveira andreoliveira@u6pr.edu.br

Leia mais

Cortex-M3/M4. Conjunto de Instruções Thumb-2 (Assembly Cortex-M3/M4) Unified Assembler Language (UAL) Estrutura de Código em Assembly 06/09/2018

Cortex-M3/M4. Conjunto de Instruções Thumb-2 (Assembly Cortex-M3/M4) Unified Assembler Language (UAL) Estrutura de Código em Assembly 06/09/2018 Cortex-M3/M4 Conjunto de Instruções Thumb-2 (Assembly Cortex-M3/M4) Prof. Hugo Vieira Neto 2018/2 Arquitetura ARMv7E-M Conjunto de instruções Thumb-2 Material de apoio: Referência Rápida do Conjunto de

Leia mais

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 2. Cibele Lemos Freire Viginoski

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 2. Cibele Lemos Freire Viginoski Aula 2 Cibele Lemos Freire Viginoski Registradores R0-R7: disponíveis para todas as instruções R8-R15: disponíveis para algumas instruções R13: SP (Stack Pointer) Pilha obrigatoriamente LIFO decrescente

Leia mais

Universidade de São Paulo

Universidade de São Paulo Conjunto Instruções ARM Universidade de São Paulo Sistemas Embarcados Jorge Luiz e Silva ARM versões. ARM Linguagem Assembly. ARM modelo de programação. ARM organização de memória. ARM operação com dados.

Leia mais

Aula 8. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura ARM

Aula 8. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura ARM Aula 8 Engenharia de Sistemas Embarcados Prof. Abel Guilhermino Tópico: Arquitetura ARM Repertório de Instruções O conjunto de instruções possui uma largura fixa de 32 bits É o conjunto padrão de instruções

Leia mais

7/4/2010. Aula 8. Engenharia de Sistemas Embarcados. Repertório de Instruções. Prof. Abel Guilhermino Tópico: Arquitetura ARM

7/4/2010. Aula 8. Engenharia de Sistemas Embarcados. Repertório de Instruções. Prof. Abel Guilhermino Tópico: Arquitetura ARM Repertório de Instruções Engenharia de Sistemas Embarcados Prof. Abel Guilhermino Tópico: Arquitetura ARM Aula 8 O conjunto de instruções possui uma largura fixa de 32 bits É o conjunto padrão de instruções

Leia mais

PSI3441 Arquitetura de Sistemas Embarcados

PSI3441 Arquitetura de Sistemas Embarcados PSI3441 Arquitetura de Sistemas Embarcados - Instruções de Desvio Loop - Ponto Flutuante - Multiplicação e Divisão - Pseudo-Instruções - Processadores ARM Escola Politécnica da Universidade de São Paulo

Leia mais

Sistemas Embebidos I , Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos

Sistemas Embebidos I , Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos Sistemas Embebidos I Licenciatura em Eng. de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores Mestrado em Engenharia Informática e de Computadores

Leia mais

ArchC. Wesley Nunes Gonçalves

ArchC. Wesley Nunes Gonçalves Implementação do Processador ARM7 em ArchC Wesley Nunes Gonçalves 23 de novembro de 2007 ARM7 Instruções Implementadas O ARM possui 37 registradores, sendo 31 registradores de propósito geral e 6 registradores

Leia mais

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski Aula 1 Cibele Lemos Freire Viginoski ARM (Advanced RISC Machine) Arquitetura de Processadores CISC Conjunto Complexo de Instruções Microinstruções RISC Conjunto de Instruções Reduzidas Instruções devem

Leia mais

SISTEMAS EMBARCADOS Arquitetura ARM Cortex-M3

SISTEMAS EMBARCADOS Arquitetura ARM Cortex-M3 Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) SISTEMAS EMBARCADOS Arquitetura ARM Cortex-M3 Prof. André Schneider de Oliveira andreoliveira@utfpr.edu.br

Leia mais

Arquitetura ARM Cortex

Arquitetura ARM Cortex 1 Arquitetura ARM Cortex César Yutaka Ofuchi ofuchi@utfpr.edu.br (Adaptado do Prof. Hugo Vieira Neto) 2 Porque ARM Cortex M3? Performance Baixo Consumo Baixo Custo Determinismo: garantia de execução críticas

Leia mais

Paradigma CISC. Arquitetura ARM Cortex-M3. Paradigma CISC. Paradigma RISC. Paradigma RISC. Resumo: RISC x CISC 18/08/2016

Paradigma CISC. Arquitetura ARM Cortex-M3. Paradigma CISC. Paradigma RISC. Paradigma RISC. Resumo: RISC x CISC 18/08/2016 Paradigma CISC Arquitetura ARM Cortex-M3 Prof. Hugo Vieira Neto Complex Instruction Set Computer Conjunto de instruções inicialmente simples Avanços tecnológicos permitiram a fabricação de computadores

Leia mais

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski Aula 1 Cibele Lemos Freire Viginoski ARM (Advanced RISC Machine) Historia ARM Começou a vida como parte da Acorn Computer. 1978 Arcon Computer de Cambridge produziam computadores e foram sucesso no Reino

Leia mais

Arquitetura de Computadores II. Arm 9. Rodrigo Padilha Thaiane Lopes

Arquitetura de Computadores II. Arm 9. Rodrigo Padilha Thaiane Lopes Arquitetura de Computadores II Arm 9 Rodrigo Padilha Thaiane Lopes 26 de Novembro de 2007 Introdução Este trabalho pretende apresentar instruções de máquinas, utilizando a arquitetura Arm9. São apresentadas

Leia mais

Neander - características

Neander - características NEANDER x RAMSES (Ou porque da necessidade de upgrade :-) Texto original: ftp://ftp.inf.ufrgs.br/pub/inf108/ramses-instrucoes.ppt Neander - características Largura de dados e endereços de 8 bits Dados

Leia mais

EL68E Sistemas Embarcados Prof. Douglas RENAUX

EL68E Sistemas Embarcados Prof. Douglas RENAUX EL68E Sistemas Embarcados Prof. Douglas RENAUX ARM Histórico Ano 1984-1985 Evento Desenvolvimento do primeiro RISC comercial na Acorn Computers Ltd (Cambridge UK) ARM = Acorn RISC Machine 1990 Fundação

Leia mais

PSI3441 Arquitetura de Sistemas Embarcados

PSI3441 Arquitetura de Sistemas Embarcados PSI3441 Arquitetura de Sistemas Embarcados - Ponto Flutuante Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Prof. Sergio Takeo kofuji@usp.br Prof. Antonio Seabra

Leia mais

AJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador:

AJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador: Introdução aos Sistemas de Computação (4) Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3. Execução de programas num computador 4.

Leia mais

Introdução. Registos. ARM flags

Introdução. Registos. ARM flags Introdução A arquitectura ARM tem sido revista e modificada ao longo do tempo, dando origem a variantes como: v1, v2, v2a, v3, v4, v4t, v4te. As realizações do processador são também diversas, visam o

Leia mais

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n

Leia mais

Arquitetura ARM. Prof. André Schneider de Oliveira. Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN)

Arquitetura ARM. Prof. André Schneider de Oliveira. Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) Arquitetura ARM Prof. André Schneider de Oliveira andreoliveira@u6pr.edu.br O Processador ARM O processador

Leia mais

Cesar - características CESAR. Registradores. Modos de endereçamento. Endereçamento de memória. Modo Registrador. (As bases da civilização atual)

Cesar - características CESAR. Registradores. Modos de endereçamento. Endereçamento de memória. Modo Registrador. (As bases da civilização atual) Cesar - características CESAR (As bases da civilização atual) Largura de dados e s de 16 bits Dados representados em complemento de dois 8 de uso geral de 16 bits (R-R) 1 registrador de estado com 4 códigos

Leia mais

Sistemas Processadores e Periféricos Aula 2 - Revisão

Sistemas Processadores e Periféricos Aula 2 - Revisão Sistemas Processadores e Periféricos Aula 2 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão

Leia mais

Paradigma CISC. Arquitetura ARM Cortex-M3. Paradigma CISC. Paradigma RISC. Paradigma RISC. Resumo: RISC x CISC 16/03/2018

Paradigma CISC. Arquitetura ARM Cortex-M3. Paradigma CISC. Paradigma RISC. Paradigma RISC. Resumo: RISC x CISC 16/03/2018 Paradigma CISC Arquitetura ARM Cortex-M3 Prof. Hugo Vieira Neto Complex Instruction Set Computer Conjunto de instruções inicialmente simples Avanços tecnológicos permitiram a fabricação de computadores

Leia mais

EL68E Sistemas Embarcados Prof. Douglas RENAUX

EL68E Sistemas Embarcados Prof. Douglas RENAUX EL68E Sistemas Embarcados Prof. Douglas RENAUX Arquitetura ARM Prof. Douglas RENAUX ARM Histórico Ano 1984-1985 Evento Desenvolvimento do primeiro RISC comercial na Acorn Computers Ltd (Cambridge UK) ARM

Leia mais

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture Registradores na Arquitetura MIPS 29/4/2016 MIPS - Instruction Set Architecture 1 Mapa de Memória da Arq. MIPS 2 GB 2 GB 256 MB 64 KB 2 GB 64 KB 256 4 MB 4 MB 29/4/2016 MIPS - Instruction Set Architecture

Leia mais

SSC0114 Arquitetura de Computadores

SSC0114 Arquitetura de Computadores SSC0114 Arquitetura de Computadores 3ª Aula Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento MIPS Monociclo: Caminho de Dados e Unidade de Controle Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br

Leia mais

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 04: ASPECTO BÁSICO DO PROJETO DE UMA CPU SIMPLES E LINGUAGEM DE MONTAGEM Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia

Leia mais

Organização de Computadores

Organização de Computadores Organização do Processador - Parte A Capítulo 5 Patterson & Hennessy Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás Conteúdo Caminho de dados Caminho de controle Implementação

Leia mais

Infra-estrutura de Hardware

Infra-estrutura de Hardware CPU: Estrutura e Funcionalidade Roteiro da Aula Ciclo de Instrução Projeto de uma CPU simples: conceitos Componentes básicos Leitura da instrução Operação entre registradores Acesso à memória Implementação

Leia mais

Infraestrutura de Hardware. Instruindo um Computador

Infraestrutura de Hardware. Instruindo um Computador Infraestrutura de Hardware Instruindo um Computador Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço Operando ALU Temp Datapath

Leia mais

EL68E Sistemas Embarcados

EL68E Sistemas Embarcados EL68E Sistemas Embarcados Prof. Douglas RENAUX www.dainf.ct.utfpr.edu.br/~douglas Arquitetura ARM Prof. Douglas RENAUX Acorn BBC Micro 1981 Developer Acorn Computers Type 8-bit home computer Release date

Leia mais

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação Arquitetura de Computadores I Organização Básica do Computador Gabriel P. Silva Ementa Unidade 2: Organização Lógica e Funcional

Leia mais

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas Material a ser utilizado: Kits de desenvolvimento de sistemas microprocessados para aplicações em DSP Texas DSK-TMS320C67xx. Apresentação

Leia mais

MIPS ISA (Instruction Set Architecture)

MIPS ISA (Instruction Set Architecture) MIPS ISA (Instruction Set Architecture) MIcroprocessor without Interlocking Pipeline Stages MIPS Processador RISC de 32 bits Referência dos Processadores RISC Mais de 100 Milhões de processadores vendidos

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-1 Objetivos Conhecer o processador Compreender os registradores

Leia mais

Sistemas Digitais Transferências entre Registradores

Sistemas Digitais Transferências entre Registradores Sistemas Digitais Transferências entre Registradores Referência Bibliográfica: Logic and Computer Design Fundamentals Mano & Kime Adaptações: josé artur quilici-gonzalez Sumário Transferências entre Registradores

Leia mais

Infra-estrutura de Hardware

Infra-estrutura de Hardware CPU: Estrutura e Funcionalidade Roteiro da Aula Ciclo de Instrução Projeto de uma CPU simples: conceitos Componentes básicos Leitura da instrução Operação entre registradores Acesso à memória Implementação

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 10 Conjuntos de instruções: Características e funções slide 1 O que é um conjunto de instruções? A coleção completa de instruções

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 25 Conjunto de Instruções: Modos de Endereçamento e Formatos Rodrigo Hausen 11 de novembro de 2011 http://cuco.pro.br/ach2034 1/26 Apresentação 1. Bases Teóricas 2. Organização

Leia mais

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples Infraestrutura de Hardware Implementação Monociclo de um Processador Simples Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço

Leia mais

Exercícios resolvidos (aula de 4 de Maio) Resolução:

Exercícios resolvidos (aula de 4 de Maio) Resolução: Exercícios resolvidos (aula de 4 de Maio) 1. Um microprocessador gera endereços de memória de 14 bits. Desenhe um mapa de memória dos seus endereços de memória fronteira especificados em hexadecimal. Uma

Leia mais

PSI3441 Arquitetura de Sistemas Embarcados

PSI3441 Arquitetura de Sistemas Embarcados PSI31 Arquitetura de Sistemas Embarcados - Arquitetura do µprocessador Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Prof. Sergio Takeo kofuji@usp.br Prof. Antonio

Leia mais

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Microprocessadores I ELE 1078 Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Grupos de Instruções do 8085 As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da

Leia mais

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL É A INTERFACE ENTRE

Leia mais

Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético

Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético Microprocessadores I Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético 4.1 - Grupos de Instruções As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da

Leia mais

Arquitetura de Sistemas Embarcados

Arquitetura de Sistemas Embarcados Arquitetura de Sistemas Embarcados Edna Barros (ensb @cin.ufpe.br) Centro de Informática UFPE Introdução a Arquitetura ARM (Advanced( RISC Machine) História do ARM Originalmente significava: ARM Acorn

Leia mais

PSI3441 Arquitetura de Sistemas Embarcados

PSI3441 Arquitetura de Sistemas Embarcados PSI31 Arquitetura de Sistemas Embarcados - Arquitetura do µprocessador Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Prof. Sergio Takeo kofuji@usp.br Prof. Antonio

Leia mais

Professor: Dr. Rogério Rodrigues de Vargas.

Professor: Dr. Rogério Rodrigues de Vargas. UNIVERSIDADE ESTADUAL DE SANTA CRUZ DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Bacharelado em Ciência da Computação Software Básico Linguagem de Programação Assembly: Uma introdução no Linux/i386 (AT&T)

Leia mais

Sistemas de Computação. Instruções de Linguagem de Máquina

Sistemas de Computação. Instruções de Linguagem de Máquina Instruções de Linguagem de Máquina Linguagem de montagem do processador MIPS Operações aritméticas Instrução Exemplo Significado soma add a, b, c a = b + c subtração sub a, b, c a = b - c Compilação de

Leia mais

Estrutura do tema ISA do IA-32

Estrutura do tema ISA do IA-32 Análise do Instruction Set Architecture (2) Acesso a operandos no IA-32: sua localização e modos de acesso Estrutura do tema ISA do IA-32 1. Desenvolvimento de programas no IA-32 em Linux 2. Acesso a operandos

Leia mais

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2) Arquitetura de Computadores I Prof. Ricardo Santos ricr.santos@gmail.com (Cap 2) Fluxo de Controle Vimos até agora: beq, bne Uma nova instrução: slt $t0, $s1, $s2 if $s1 < $s2 then $t0 = 1 else $t0 = 0

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Universidade Federal de Santa Catarina Centro Tecnológico Curso de Pós-Graduação em Ciência da Computação Aula 2 Arquitetura do Processador MIPS: características gerais, registradores, formatos de instrução,

Leia mais

EL68E Sistemas Embarcados Prof. Douglas RENAUX

EL68E Sistemas Embarcados Prof. Douglas RENAUX EL68E Sistemas Embarcados Prof. Douglas RENAUX ARM Histórico Ano 1984-1985 Evento Desenvolvimento do primeiro RISC comercial na Acorn Computers Ltd (Cambridge UK) ARM = Acorn RISC Machine 1990 Fundação

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Msc. Tiago Alves de Oliveira Objetivos Conhecer o processador Compreender os registradores

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-2 Objetivos Conhecer o processador Compreender os registradores

Leia mais

UCP: Construindo um Caminho de Dados (Parte I)

UCP: Construindo um Caminho de Dados (Parte I) UCP: Construindo um Caminho de Dados (Parte I) Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material baseado cedido pela Profa. Fernanda Passos Cristina Boeres

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 2ª e 3ª Aulas Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Arquitetura MIPS MIPS: Microprocessor

Leia mais

Guia Rápido MIPS. Tipos de Dados e Formatações

Guia Rápido MIPS. Tipos de Dados e Formatações Tipos de Dados e Formatações Guia Rápido MIPS Tipos de Dados: Todas as instruções são de 32 bits Byte = 8 bits Halfword = 2 bytes Word = 4 bytes Um caractere ocupa 1 byte na memória Um inteiro ocupa 1

Leia mais

MICROPROCESSADORES II (EMA911915) NIOS II - ASSEMBLY 2 O SEMESTRE / 2018

MICROPROCESSADORES II (EMA911915) NIOS II - ASSEMBLY 2 O SEMESTRE / 2018 MICROPROCESSADORES II (EMA911915) NIOS II - ASSEMBLY 2 O SEMESTRE / 2018 MATERIAL DIDÁTICO Harris & Harris 61 Introduction 62 Assembly Language 63 Machine Language 64 Programming (exceto 646) 66 Lights,

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Conjunto de Instruções Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Material do prof. Sílvio Fernandes - UFERSA

Leia mais

DataPath II Tomando o controle!

DataPath II Tomando o controle! DataPath II Tomando o controle! Datapath and Control Queremos implementar parte do MIPS lw, sw add, sub, and, or, slt beq e depois o j Instruction Word Formats Register format: add, sub, and, or, slt op-code

Leia mais

NEANDERWIN. Algumas características do processador Neander são:

NEANDERWIN. Algumas características do processador Neander são: NEANDERWIN O NeanderWin é um simulador da máquina Neander, definida no livro do Raul F. Weber (UFRGS), Fundamentos de Arquitetura de Computadores, Ed. Sagra Luzzatto. A máquina original foi estendida aqui

Leia mais

Arquitetura de Sistemas Embarcados

Arquitetura de Sistemas Embarcados Arquitetura de Sistemas Embarcados (GQD%DUURV HQVE #FLQXISHEU &HQWURGH,QIRUPiWLFD± 8)3( Introdução a Arquitetura ARM (Advanced( RISC Machine) História do ARM Originalmente significava: ARM Acorn RISC Machine

Leia mais

Estrutura do tema ISA do IA-32

Estrutura do tema ISA do IA-32 Análise do Instruction Set Architecture (2) Acesso a operandos no IA-32: sua localização e modos de acesso Estrutura do tema ISA do IA-32 1. Desenvolvimento de programas no IA-32 em Linux 2. Acesso a operandos

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas

Leia mais

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções Capítulo 2 Hennessy Patterson 1 Instruções Linguagem da máquina Vamos trabalhar com a arquitetura do conjunto de instruções MIPS (Micrrocessor without interlocked pipeline stages Micrrocessador sem estágios

Leia mais

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS Datapath do MIPS MIPS Implementação Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS Instruções de leitura (load lw) e de escrita (store sw) Instruções aritméticas e lógicas

Leia mais

Microprocessadores I ELE Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS -

Microprocessadores I ELE Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS - Microprocessadores I ELE 1078 Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS - 9.1 - Grupos de Instruções As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência

Leia mais

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Linguagem de Montagem Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO 1 Introdução Independente da linguagem de programação utilizada, todo programa

Leia mais

Registradores. Registradores e Instruções Especiais. Link Register. Stack Pointer. Registradores Especiais. Contador de Programa 29/03/2018

Registradores. Registradores e Instruções Especiais. Link Register. Stack Pointer. Registradores Especiais. Contador de Programa 29/03/2018 Registradores Registradores e Instruções Especiais Prof. Hugo Vieira Neto Nível de acesso privilegiado MSP = main SP Kernel do S.O. Exceções PSP = process SP Aplicações (threads) PRIMASK Desabilita interrupções

Leia mais

Sistemas Embarcados. KIT LPCXPresso1343 e BaseBoard. (Adaptado do Prof. Hugo Vieira Neto) César Yutaka Ofuchi

Sistemas Embarcados. KIT LPCXPresso1343 e BaseBoard. (Adaptado do Prof. Hugo Vieira Neto) César Yutaka Ofuchi 1 Sistemas Embarcados KIT LPCXPresso1343 e BaseBoard (Adaptado do Prof. Hugo Vieira Neto) César Yutaka Ofuchi ofuchi@utfpr.edu.br Ambiente de Desenvolvimento IAR Embedded Workbench for ARM Utilizar versão

Leia mais

Disciplina de Arquitetura de Computadores

Disciplina de Arquitetura de Computadores USP - ICC - SSC SSC 0510 - Informática - 2o. Semestre 2009 Disciplina de Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal: http://www.icmc.usp.br/~fosorio/

Leia mais

Símbolos e abreviaturas utilizadas na descrição das instruções

Símbolos e abreviaturas utilizadas na descrição das instruções Símbolos e abreviaturas utilizadas na descrição das instruções acumulador registo A addr endereço de 16 bits data quantidade de 8 bits data 16 quantidade de 16 bits byte 2 segundo byte da instrução byte

Leia mais

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 1 LINGUAGENS Constituída de seqüência de zeros (0) e uns (1) Cada instrução em ASSEMBLY constitui-se em um mnemônico (uma forma fácil de se lembra) de uma

Leia mais

CONJUNTO DE INSTRUÇÕES

CONJUNTO DE INSTRUÇÕES CONJUNTO DE INSTRUÇÕES Rn - Registrador R0 R7 do banco de registradores selecionado. direto - 8-bits de endereço da posição da RAM de dados Podem ser referentes tanto à RAM interna (0 7F) como ao espaço

Leia mais

Disciplina de. Organização de Computadores Digitais

Disciplina de. Organização de Computadores Digitais USP - ICMC - SSC SSC 0511 - Sist. Informação - 2o. Semestre 2014 Disciplina de Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal: http://www.icmc.usp.br/~fosorio/

Leia mais

Assembly Sintaxe do Assembly. Instruções que afectam Flags. Aplicações de Microprocessadores 2006/2007

Assembly Sintaxe do Assembly. Instruções que afectam Flags. Aplicações de Microprocessadores 2006/2007 Assembly 8051 Aplicações de Microprocessadores 2006/2007 Sintaxe do Assembly [Label] Op-code [Operando] [Comentário] tabela: movc a,@a+dptr ; vai à tabela buscar o seu correspondente ASCII 2 2 Instruções

Leia mais

2.5 - Instruções Lógicas do ULA

2.5 - Instruções Lógicas do ULA 2.5 - Instruções Lógicas do 8085 - ULA Todas as operações lógicas e aritméticas em qualquer microprocessador são realizadas em uma unidade dedicada denominada Unidade Lógica e Aritmética (ULA). Para auxiliar

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 25 Conjunto de Instruções: Características e Funções Rodrigo Hausen 10 de novembro de 2011 http://cuco.pro.br/ach2034 1/92 Apresentação 1. Bases Teóricas 2. Organização

Leia mais

Organização e Projeto de Computadores 3: Modo de Endereçamento, Sub-Rotina, Instruções de E/S, Interrupção

Organização e Projeto de Computadores 3: Modo de Endereçamento, Sub-Rotina, Instruções de E/S, Interrupção Organização e Projeto de Computadores 3: Modo de Endereçamento, Sub-Rotina, Instruções de E/S, Interrupção 1 Modo de Endereçamento Determina como o operando é obtido durante a execução de uma ins trução.

Leia mais

ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES ARQUITECTURA DE COMPUTADORES CAPÍTULO III AULA I, II e III Abril 2014 Índice Aritmética para computadores Intro Adição e subtração Multiplicação Divisão Virgula Flutuante Virgula Flutuante - aritmética

Leia mais

Especificação do Projeto de Processador RISC

Especificação do Projeto de Processador RISC UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO Especificação do Projeto de Processador RISC mycpu Neste documento é apresentada a especificação do projeto da disciplina Organização e Arquitetura de Computadores

Leia mais

ELE Microprocessadores I

ELE Microprocessadores I ELE 1078 - Microprocessadores I AULA 13 Conjunto de Instruções do Microprocessador 8085A - Entrada e Saída (I/O) - 13.1 - Grupos de Instruções As instruções no 8085 são distribuídas em 5 grupos: Grupo

Leia mais

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO 1) Identifique na instrução em linguagem de máquina armazenada na memória, os elementos da instrução 2) Na figura acima, qual a quantidade de código de operações

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários armazenados em memória. Prof. Adilson Gonzaga 1 As ordens ou comandos

Leia mais

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016 Arquitetura de Computadores Conceitos Fundamentais Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016 Um Computador Muito Simples CPU UC ULA A B PC IR FLAGS SP CS DS SS... 0A 09

Leia mais

lw, sw add, sub, and, or, slt beq, j

lw, sw add, sub, and, or, slt beq, j Datapath and Control Queremos implementar o MIPS Instruções de referência à memória: lw, sw Instruções aritméticas e lógicas: add, sub, and, or, slt Controle de fluxo: beq, j Cinco passos de execução Busca

Leia mais

Arquiteturas de Computadores

Arquiteturas de Computadores Arquiteturas de Computadores Implementação monociclo de IPS Fontes dos slides: Patterson & Hennessy book website (copyright organ Kaufmann) e Dr. Sumanta Guha Implementando IPS Implementação do conjunto

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Linguagem de Montagem Slide 1 Operações Lógicas Embora os primeiros computadores se concentrassem em words completas, logo ficou claro que era útil atuar sobre

Leia mais

Conjunto de Instruções (ISA) II

Conjunto de Instruções (ISA) II Conjunto de Instruções (ISA) II José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2013-10-18 José Costa (DEI/IST) Conjunto de Instruções

Leia mais

III.2 - Princípios de Arquitetura

III.2 - Princípios de Arquitetura Conjunto de Instruções e Modo de Endereçamento Ciclo de busca decodificação execução de instruções Programação de um processador Arquitetura de Von Neumann e Componentes Arquiteturas 4, 3, 2, 1 e 0 Tabela

Leia mais

O Funcionamento do Processador

O Funcionamento do Processador O Funcionamento do Processador Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Os cinco componentes clássicos de um Computador - Controle O

Leia mais

ção de Computadores II

ção de Computadores II Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Arquitetura e Organizaçã ção de Computadores II Aula 2 2. MIPS monociclo:

Leia mais

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2) Arquitetura de Computadores I Prof. Ricardo Santos ricr.santos@gmail.com (Cap 2) Instruções Comandos utilizados para indicar ao hardware o que deve ser feito Utilizaremos neste curso o conjunto de instruções

Leia mais

Aula 14 Funcionamento de Processadores (Visão específica)

Aula 14 Funcionamento de Processadores (Visão específica) Aula 14 Funcionamento de Processadores (Visão específica) Com base nas aulas de Prof. José Delgado (autorizado) Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm

Leia mais

Arquitetura de Computadores I Prof. Ricardo Santos (Cap 2)

Arquitetura de Computadores I Prof. Ricardo Santos (Cap 2) Arquitetura de Computadores I Prof. Ricardo Santos ricr.santos@gmail.com (Cap 2) 1 Fluxo de controle Vimos até agora: beq, bne Uma nova instrução: if $s1 < $s2 then $t0 = 1 slt $t0, $s1, $s2 else $t0 =

Leia mais