Programando em Assembly
|
|
|
- Derek Flores Fontes
- 9 Há anos
- Visualizações:
Transcrição
1 Programando em Assembly (Aula 16) Linguagem Assembly do 8086/8088 Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2
2 Introdução Para construirmos os programas em Assembly, devemos estruturar o fonte da seguinte forma (usando TASM como montador).model SMALL Define o modelo de memória a usar em nosso programa.stack Reserva espaço de memória para as instruções de programa na pilha.code Define as instruções do programa, relacionado ao segmento de código END Finaliza um programa assembly 2
3 Primeiro Exemplo (1).MODEL SMALL ;modelo de memória.stack ;espaço de memória para instruções do programa na pilha.code ;as linhas seguintes são instruções do programa mov ah,01h ;move o valor 01h para o registrador ah mov cx,07h ;move o valor 07h para o registrador cx int 10h ;interrupção 10h mov ah,4ch ;move o valor 4ch para o registrador ah int 21h ;interrupção 21h.DATA x db 1 END ;finaliza o código do programa Este programa assembly muda o tamanho do cursor 3
4 Primeiro Exemplo (2).MODEL SMALL.STACK.CODE.DATA END Código Dados Pilha A memória é dividida em um número arbitrário de segmentos 4
5 Registradores de Uso Geral (1) AX BX CX DX (16 bits) AH/AL BH/BL CH/CL DH/DL (8 bits) AX: Acumulador Usado em operações aritméticas. BX: Base Usado para indexar tabelas de memória (ex.: índice de vetores). CX: Contador Usado como contador de repetições em loop e movimentação repetitiva de dados. DX: Dados Uso geral. 5
6 Registradores de Uso Geral (2) 6
7 Usando Instruções de transferência de dados MOV Destino,Fonte Operação registrador, registrador memória, acumulador acumulador, memória memória, registrador registrador, memória registrador, imediato reg_seg, reg16 reg16, reg_seg memória, reg_seg Exemplo mov Bx, Cx mov var, Al mov Ax, var mov var, Si mov Si, var mov var, 12 mov Ds, Ax mov Ax, Ds mov var, Ds 7
8 Exemplo 2 Faça um programa em ASM86 correspondente ao seguinte "código C (use mov e dw ) unsigned int x, y, z; main() { x = 7; y = 13; z = x; }.MODEL SMALL.STACK.CODE mov x,7 mov y,13 mov DX,x mov z,dx.data x dw? y dw? z dw? END 8
9 Usando Instruções Aritméticas (1) ADD destino,fonte (destino destino+origem) SUB destino,fonte (destino destino-origem) Operação Exemplo Operação Exemplo registrador, registrador Add Dx, Bx registrador, registrador Sub Dx, Bx registrador, memória Add Bx, var registrador, memória Sub Bx, var memória, registrador Add var, Si memória, registrador Sub var, Si acumulador,imediato Add Al, 5 acumulador, imediato Sub Al, 5 registrador,imediato Add Dx, 3 registrador, imediato Sub Dx, 3 memória, imediato Add var, 0Fh memória, imediato Sub var, 0Fh 9
10 Exemplo 3 Faça um programa em ASM86 correspondente ao seguinte "código C (use mov, dw ) unsigned int x = 5; unsigned int y = 10; unsigned int soma, sub; main() { x = x + 8; soma = x + y; x = x - 3 ; sub = x - y }.MODEL SMALL.STACK.CODE add x,8 mov DX,x add DX,y mov soma,dx sub x,3 ; mov DX,x sub DX,y mov sub,dx.data x dw 5 y dw 10 soma dw? sub dw? END 10 ;x=x+8 ;DX=x ;DX=DX+y=x+y ;soma=dx=x+y ;x=x-3 ;DX=x ;DX=DX-y=x-y ;sub=dx=x-y
11 Usando Instruções Aritméticas (2) MUL origem Se (origem == byte) AX = AL * origem Se (origem == word) DX:AX = AX * origem Operando Exemplo DIV origem Se (origem == byte) AL = AX / origem AH = resto Se (origem == ord) AX = DX:AX / origem DX = resto imediato reg8 reg16 mem8 mem16 MUL 20 MUL CH MUL BX MUL VarByte MUL VarWord Operando imediato reg8 reg16 mem8 Exemplo DIV 16 DIV BL DIV BX DIV VarByte mem16 DIV VarWord 11
12 Exemplo 4 Faça um programa em ASM86 correspondente ao seguinte "código C (use mov, dw ) unsigned int x = 5; unsigned int y = 12; unsigned int sqr,dv, rest; main() { sqr = x * x dv = x / y; rest = x % y; }.MODEL SMALL.STACK.CODE 12 mov AL,x mul x mov sqr,ax mov AL,x mov AH,0 div y mov dv,al mov rest,ah.data x db 5 y db 12 sqr dw? dv db? rest db? END ;AL=x ;AX=AL*x = x*x ;sqr=ax = x*x ;AL=x ;AX<->[AH,AL] ;AL=AX/y ;AH=Resto(AX/y) ;dv=al ;rest=ah
13 Usando Instruções Lógicas XOR destino,fonte destino destino xor origem (bit a bit) Operação registrador, registrador registrador, memória memória, registrador acumulador, imediato registrador, imediato memória, imediato Exemplo Xor Bx, Cx Xor Cl, var Xor var, Dx Xor Al, b Xor Si, 0CAh Xor var, 3 AND, OR NOT (sintaxe só c/ destino) 13
14 Exemplo 5 Implemente um trecho de código em Assembly que troque o valor do registrador AH com o valor do registrador BH Utilize apenas instruções lógicas XOR Você pode utilizar outros registradores para guardar valores intermediários xor DH,DH xor DH,AH xor AH,AH xor AH,BH xor BH,BH xor BH,DH ;DH=0 ;DH=AH ;AH=0 ;AH=BH ;BH=0 ;BH=DH 14
15 Instruções usadas no controle de fluxo (1) CMP destino, origem Esta instrução subtrai o operador origem do destino (destino origem), mas não armazena o resultado da operação, apenas afeta o estado das flags de estado Operação Registrador, registrador Registrador, imediato Acumulador, imediato Registrador, memória Memória, registrador Memória, imediato Exemplo Cmp Cx, Bx Cmp Si, 3 Cmp Al, 0Fh Cmp Bx, var Cmp var, Cx Cmp var, A Compara o conteúdo da posição de memória var com o caracter ASCII A 15
16 Instruções usadas no controle de fluxo (2) Registrador de Flags: Consiste em um grupo individual de bits de controle (flag) [O D I T S Z A P C] OF (Overflow Flag): Setada quando ocorre overflow aritmético. DF (Direction Flag): Setada para auto-incremento em instruções de string. IF (Interruption Flag): Permite que ocorram interrupções quando setada.pode ser setada pelo sistema ou pelo usuário. TF (Trap Flag) (debug): Usada por debugadores para executar programas passo a passo. SF (Signal Flag): Resetada (SF=0) quando um resultado for um número positivo ou zero e setada (SF=1) quando um resultado for negativo. ZF (Zero Flag): Setada quando um resultado for igual a zero. AF (Auxiliar Flag): Setada quando há vai um na metade inferior de um byte. PF (Parity Flag): Setada quando o número de bits 1 de um resultado for par. CF (Carry Flag): Setada se houver vai um no bit de maior ordem do resultado. Também usada por instruções para tomadas de decisões. 16
17 Instruções usadas no controle de fluxo (3) CMP destino, origem Esta instrução subtrai o operador origem do destino (destino origem), mas não armazena o resultado da operação, apenas afeta o estado das flags de estado Flags setadas de acordo com o resultado de: destino - origem Se destino-origem == 0 (destino==origem) ZF=1, SF=0, CF=0 Se destino-origem < 0 (destino<origem) ZF=0, SF= 1, CF=1 Se destino-origem > 0 (destino>origem) ZF=0, SF= 0, CF=0 17
18 Instruções usadas no controle de fluxo (4) JXXX rótulo_de_destino Instrução de Saltos condicional, XXX é uma condição dependente de algum dos Flags de Estado Se a condição XXX é verdadeira: - a próxima instrução a ser executada é aquela definida pelo rótulo_de_destino; - a CPU ajusta o registrador IP para apontar para a posição de memória dada por rótulo_de_destino. Se a condição XXX é falsa: - a próxima instrução é aquela que imediatamente segue o salto. 18
19 Instruções usadas no controle de fluxo (5) JE rótulo (Jump if Equal... JZ) ZF = 1 --> Salta se A == B JNE rótulo (Jump if not equal...jnz) ZF = 0 --> Salta se A!= B JA rótulo (Jump if Above) (CF=0) AND (ZF=0) --> Salta se A>B JAE rótulo (Jump if Above or Equal) CF=0 --> Salta se A>=B JB rótulo (Jump if Below) CF=1 --> Salta se A<B JBE rótulo (Jump if Below or Equal) (CF=1) OR (ZF=1) --> Salta se A<=B CMP A, B 19
20 Exemplo 5 Supondo que AX e BX contenham números inteiros sem sinais, escreva um trecho de programa que coloque o maior deles em CX.... MOV CX,AX CMP AX,BX JAE ABAIXO MOV CX,BX ABAIXO: ;AX já é pressuposto ser o maior deles ;Salta se AX >= BX ;caso BX seja de fato o maior deles ;continuação do programa 20
21 Instruções usadas no controle de fluxo (6) O comando if de uma linguagem de alto nível como C, em Assembly é a junção do CMP com um jump condicional. Exemplo: Em linguagem de alto nível: IF END_IF AL (menor ou igual a) BL THEN ELSE (exibir AL) (exibir BL)... CMP AL,BL JA TROCA ;if AL menor ou igual a BL ;//jump if AL>BL MOV DL,AL INT 21h JMP FIM TROCA: MOV DL,BL INT 21h ;then ;else FIM:... ;end_if 21
22 Instruções para Laços (1) LOOP símbolo A instrução LOOP decrementa CX de 1 e transfere a execução do programa para o símbolo que é dado como operador, caso CX ainda não seja 1. Cx Cx 1 Se ( Cx!= 0 ) Jmp rótulo Observação: Se Cx = 0 no início serão feitos loops! 22
23 Exemplo 6 Faça um programa em ASM86 correspondente ao seguinte "código C unsigned int count = 5; unsigned int x=10; main() { do{ x++; count--; }while (count>0) }.MODEL SMALL.STACK.CODE MOV CX,count ; CX <- count L1: INC x ; x++ LOOP L1 ; repete a partir de L1.DATA x dw 10 count dw 5 END 23
24 Instruções para Laços (2) Também pode-se usar CMP e JXXX No exemplo anterior: unsigned int count = 5; unsigned int x=10; main() { do{ x++; count--; }while (count>0) }.MODEL SMALL.STACK.CODE L1: INC x ; x++ DEC count ; count-- CMP count,0 JA L1 ; salta se count>0.data x db 10 count db 5 END 24
25 Exemplo 7 Faça um programa em assembly equivalente ao seguinte programa em C: int y=0, i, n = 7;.MODEL SMALL.STACK.CODE MOV BX,y ; BX <- y main( ) { for ( i = 1; i <= n; i ++) y = y + i; MOV i,1 ; i=1 } MOV DX,i ; DX <- i FOR: CMP DX,n ; compara DX(ou i) e n JA END_FOR ; salta se DX > n ADD BX,DX ; BX = BX + DX INC DX ; DX (ou i) + 1 JMP FOR ; salta p/ FOR MOV y,bx ; coloca o valor final de BX em y MOV i,dx ; coloca o valor final de DX em i.data y dw 0 i dw? n dw 7 END 25
26 Interrupções de Software (1) Interrupções de software podem ser ativadas diretamente por nossos programas assembly Dois tipos de interrupções Interrupções do Sistema Operacional DOS Interrupções da BIOS Para gerar interrupções do DOS use: INT 21h Quando usamos esta instrução, o DOS chama uma rotina de tratamento específica, dependendo do tipo de interrupção O tipo de interrupção será definido em função do valor que estiver armazenado no registrador AL 26
27 Interrupções de Software (2) INT 21h (Entrada: AH <- 01h, Saída: caracter ->AL) Lê um caracter da console e coloca o seu código ASCII no registrador AL Como gerar este tipo de Interrupção 1. Copie o valor 08h dentro do registrador AH 2. Chame a instrução INT 21h Após esta chamada, assim que for digitado um caracter, seu código ASCII será colocado dentro de AL INT 21h (Entradas: AH <- 02h, DL<- caracter) Imprime o caracter ou o executa, se for do tipo beep, line feed ou assemelhados Como gerar este tipo de Interrupção 1. Copie o valor 02h dentro do registrador AH 2. Copie o código ASCII do caracter que deseja imprimir dentro do registrador DL 3. Chame a instrução INT 21h 27
28 Exemplo 8 Escreva um trecho de programa em assembly que leia dois caracteres e os imprime na ordem inversa em que foram lidos... MOV AH,01h INT 21h MOV BL,AL INT 21h ; --- Leitura dos 2 caracteres --- ; Função 1 do DOS (leitura de caractere) ; lê 1o caracter, retorna código ASCII ao registrador AL ; move o código ASCII para o registrador BL por enquanto ; lê 2o caracter, retorna código ASCII ao registrador AL ; --- Impressão dos 2 caracteres, na ordem invertida --- MOV AH,02h ; Função 2 do DOS (escrita de caractere) MOV DL,AL ; move o código ASCII do 2o caractere lido p/ DL INT 21h ; imprime o caractere cujo codigo está em DL MOV DL,BL ; move o código ASCII do 1o caracter lido p/ DL MOV AH,2h ; função 2h, imprime caracter INT 21h ; imprime o caractere cujo codigo está em DL... 28
29 Usando Procedimentos Declarando um procedimento Na declaração, a primeira palavra, NomePr, corresponde ao nome do procedimento A diretiva Ret carrega IP com o endereço armazenado na pilha para retornar ao programa que o chamou NomePr EndP indica o fim do procedimento. NomePr Proc ; Declaração do Procedimento Intrasegment... ; Conteúdo do Procedimento... Ret NomePr EndP ; Diretiva de retorno ; Fim do Procedimento Usando um procedimento CALL NomePr ; Chamando o procedimento 29
30 Exemplo 9 Escreva um programa contendo uma rotina que soma dois bytes armazenados em AH e AL, e o resultado da soma em BX. O programa deve colocar os valores 5 e 10 nos registradores AH e AL, chamando em seguida a função. No final jogue o resultado da soma na memória..model SMALL.STACK.CODE MOV AX,050Ah ;??? CALL Soma MOV result,bl ;copia resultado no endereço de memória BX Soma Proc ; Declaração do Procedimento Mov BX, 0 ; Conteúdo do Procedimento... Mov BL, AH Add BL, AL Ret ; Diretiva de retorno Soma EndP ; Fim do Procedimento.DATA result DB? 30
31 Manipulação de pilha 31
32 Exemplo 10 Usando a pilha para armazenar valores temporariamente antes chamar algum procedimento... XOR DX,DX MOV AX,10 PUSH AX CALL Metade MOV result,ax ;copia resultado no endereço de memória POP AX ; restaura o valor de AX p/ o de antes... Metade PROC ; Declaração do Procedimento DIV 2 ; RET ; Diretiva de retorno Metade EndP ; Fim do Procedimento... 32
Introdução. Programando em Assembly. Primeiro Exemplo (2) Primeiro Exemplo (1) Linguagem Assembly do 8086/8088
Introdução Programando em Assembly (Aula 16) Linguagem Assembly do 8086/8088 Para construirmos os programas em Assembly, devemos estruturar o fonte da seguinte forma (usando TASM como montador) Define
7. A pilha e subrotinas
Cap7.1 7. A pilha e subrotinas 7.1 Organização da Pilha (stack) Stack: estrutura de dados de uma dimensão organizada em algum trecho (segmento) da Memória; o primeiro item adicionado é o último a ser removido
Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly
Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly Gustavo G. Parma Lista dos comandos assembly que serão utilizados ao longo das práticas. 1 Comandos 1. ADD destino, fonte
José Augusto Fabri. Assembly Básico
José Augusto Fabri Assembly Básico Aritmética em Modo Hexadecimal Operações da adição e subtração em hexadecimal (comando H) Número negativos: Que número representa o FFFF? Aritmética em Modo Hexadecimal
CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados
CPU CPU Unidade Central de Processamento Função: leitura, escrita e processamento de dados Constituída por: dispositivos que gerem a entrada (leitura) e saída (escrita) de dados; registos (memórias auxiliares)
8. Instruções de multiplicação e divisão
Cap8.1 8. Instruções de multiplicação e divisão 8.1 Instruções de multiplicação MUL fonte IMUL fonte MUL (multiply) -> usada com números em representação não-sinalizada IMUL (integer multiply) -> usada
Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores)
Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores) 1 - Fazendo uma comparação entre a arquitetura proposta por Von Neumann e a arquitetura de um microcomputador
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
Introdução a Engenharia Reversa
Introdução a Engenharia Reversa Por Maycon Maia Vitali a.k.a. 0ut0fBound [email protected] http://outofbound.host.sk Conceito Resumo História da Engenharia Reversa - WWII Engenharia Reversa de
EEL Microprocessadores
EEL7030 - Microprocessadores 8086 Primeiro (1980) da família do Pentium (80x86). Componente com arquitetura similar (8088) utilizado no primeiro IBM PC. Cada descendente executa código dos antepassados
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
Anderson L. S. Moreira
Aula 12 Assembly - Apresentação Anderson L. S. Moreira [email protected] http://dase.ifpe.edu.br/~alsm Anderson Moreira Arquitetura de Computadores 1 O que fazer com essa apresentação
Sistemas de Computação
Sistemas de Computação Introdução a programação Assembly Haroldo Gambini Santos Universidade Federal de Ouro Preto - UFOP 5 de novembro de 2009 Haroldo Gambini Santos Sistemas de Computação 1/30 Assembly
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
MATA49 Programação de Software Básico
MATA49 Programação de Software Básico Leandro Andrade leandrojsadcc.ufba.br PROF. LEANDRO ANDRADE 1 Introdução a linguagem de montagem com Nasm PROF. LEANDRO ANDRADE 2 Sintaxe básica Não é sensível
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
7. Instruções lógicas, de deslocamento e de rotação
7. Instruções lógicas, de deslocamento e de rotação São instruções que permitem mudar o padrão de bits num byte (8 bits) ou numa palavra (16 bits). Linguagens de alto nível (exceto C) não permitem manipular
Sistemas de Computação para Controle e Automação CIC132. Assembly. Assembly. Notas. Décima quarta aula: Introdução a programação Assembly
Sistemas de Computação para Controle e Automação CIC132 Décima quarta aula: Introdução a programação Assembly Haroldo Gambini Santos Universidade Federal de Ouro Preto - UFOP 5 de novembro de 2009 Haroldo
A linguagem ASSEMBLY
A linguagem ASSEMBLY Assembly é uma linguagem de baixo nível, chamada freqüentemente de linguagem de montagem É uma linguagem considerada difícil, principalmente porque o programador precisa conhecer a
No. de bits. O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086).
Cap2.1 2. Arquitetura do microprocessador 8086 2.1 A família Intel iapx86 (ou 80X86) Processador Co-proc. Ano de introdução No. de bits No. de transistores Velocidade (MHz) 4004-1971 4 2.205-8008 - 1972
A arquitectura IA32. A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador.
A arquitectura IA32 A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador. Tamanho da palavra Número de registos visíveis Número de operandos Endereçamento
Arquitetura do 8086/8088
Arquitetura do 8086/8088 Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Copyright (c) Walter Fetter Lages p.1 Introdução
Linguagem de Montagem e Assembly. André Luiz da Costa Carvalho
Linguagem de Montagem e Assembly André Luiz da Costa Carvalho Linguagem de Montagem Todo programa para ser executado precisar ser convertido de linguagem fonte (alto nível) para um programa equivalente
Fluxo de Execução em Assembly
Fluxo de Execução em Assembly A forma natural de execução de um programa é sequencial: CPU busca instruções na memória em endereços sequenciais Instruções de desvio de assembly servem para quebrar a execução
Registradores. Os processadores possuem espaços específicos onde são guardados valores, os chamados registradores.
Os processadores possuem espaços específicos onde são guardados valores, os chamados registradores. Esses espaços são parecidos com variáveis de uma linguagem de programação de alto nível, onde se guarda
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
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
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
EXEMPLO DE ARQUITETURAS REAIS INTEL 8086 AULA 07 Arquitetura de Computadores Gil Eduardo de Andrade
EXEMPLO DE ARQUITETURAS REAIS INTEL 8086 AULA 07 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização de Computadores
Operadores lógicos (bit a bit)
Operadores lógicos (bit a bit) Instrução AND Instruções: AND OR XOR NOT Os operandos destas instruções podem ser de 8 ou 16 bits 10010011
Solução Lista de Exercícios Processadores
Solução Lista de Exercícios Processadores Questão 1 A ULA é o dispositivo da CPU que executa operações tais como : Adição Subtração Multiplicação Divisão Incremento Decremento Operação lógica AND Operação
Arquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Linguagem de Montagem e Linguagem de Máquina Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha [email protected] Conceitos básicos Linguagem/código
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 [email protected] http://dase.ifpe.edu.br/~alsm
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
Os 3 principais tipos de Instruções (INSTRUTION SET) dos up são:
Linguagem Assembly Os 3 principais tipos de Instruções (INSTRUTION SET) dos up são: INSTRUÇÕES DE TRANSFERÊNCIA DE DADOS - Movem dados entre Registradores, Registradores e Memória e Valores Fixos para
Microprocessadores. Família x86 - Programação do i8086
Família x86 - António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal [email protected] Estudo Genérico de Microprocessador Microprocessadores i8086 1. Modelo de Programação; 2. Espaço de
LABORATÓRIO DE LINGUAGEM DE MONTAGEM INTERRUPÇÕES DO DOS E DA BIOS
LABORATÓRIO DE LINGUAGEM DE MONTAGEM INTERRUPÇÕES DO DOS E DA BIOS Capítulo 15 do livro-texto, págs. 309 a 330 Impressora Scanner Monitor Flop Disk Modem Floppy drive "CPU" HD CD ROM Teclado Mouse Dispositivos
Linguagem de Montagem Assembly
Linguagem de Montagem Assembly Especificações O programa em Assembly Fica sobre a camada do Sistema Operacional Efetua chamadas ao Sistema Operacional O montador Chama-se Assembler Traduz a linguagem de
Aula 10 Microcontrolador Intel 8051 Parte 2
SEL 0415 Aula 10 Microcontrolador Intel 8051 Parte 2 SEL 0415 INTROD À ORGANIZAÇÃO DE COMPUTADORES Prof Dr Marcelo A C Vieira SEL 415 Mapeamento das memórias internas Memória de dados interna (RAM) n 8051
Organização Funcional
Organização Funcional Modelo de Arquitectura de Von Neuman 26 Organização Funcional Modelo de Arquitectura de Von Neuman CPU Unidade Central de processamento (central process unit) Onde tudo se passa ;
Informática I. Aula 9. Aula 9-17/05/2006 1
Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-17/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Disciplina: Arquitetura de Computadores
Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na
Organização de Computadores 1
Organização de Computadores 1 3.1 CPU: Unidade de Processamento Central Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Unidade de Processamento Central (CPU): Memória Principal Unidade de Processamento
MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1
MICROPROCESSDORES E MICROCONTROLDORES PROV 1 - Solução da Versão 1 (o final são apresentadas as soluções da questão 4 das versões 2 e 3) 1. Na comparação entre as arquiteturas CISC e RISC, faça comentários
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador
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
Interface Hardware/Software. Centro de Informática - UFPE Paulo Maciel [email protected]
Interface Hardware/Software Centro de Informática - UFPE Paulo Maciel [email protected] Interrupção INT 1Ah Ler o Relógio; Atualizar o Relógio; Ler a Data; Atualizar a Data. 2 Interrupção - INT 1Ah Ler
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
Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET
Tópicos: 1 - Modos de endereçamento do 8051 2 - Pilha e instruções de Pilha 3 - Instruções que usam pilha: - instrução CALL - instrução RET 4 - Interrupção 1 - Modos de Endereçamento do 8051 Os modos de
OTermo Assembly significa montagem, ou seja, linguagem
Linguagem Assembly Roteiro N o 01 Fundação Universidade Federal de Rondônia, Núcleo de Ciência e Tecnologia, Departamento de Engenharia - DEE Curso de Bacharelado em Engenharia Elétrica - Disciplina de
FORMATO DO PROGRAMA FONTE
FORMATO DO PROGRAMA FONTE As declarações do programa fonte são constituídas pelos seguintes campos: 1) Campo do Rótulo: o primeiro caractere deve ser alfabético
Instruções. Maicon A. Sartin
Instruções Maicon A. Sartin SUMÁRIO Introdução Instruções Formatos de instruções Conjuntos de instruções Execução de instruções Introdução a Linguagem de Montagem Introdução a Linguagem de Montagem Níveis
As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE
SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Como conhecer/estudar um Microprocessador/Microcontrolador As 5 partes fundamentais Programação de Microprocessadores Prof: Evandro L. L. Rodrigues Arquitetura
x86 arquitetura e instruções básicas
x86 arquitetura e instruções básicas 1 Família x86 Data CPU Palavra Endereço (bits) 1978 8086, 8088 1982 80186, 80188 1985 80386 1989 80486 1993 Pentium, Pentium MMX 1995 Pentium Pro 1997 Pentium II/III,
Programando em Assembly
Programando em Assembly precisa-se saber exatamente como interpretar & gerenciar a memória e como usar instruções de baixo nível para o processamento Não existem tipos e variáveis (apenas bytes na memória)
Arquitetura de Computadores. Prof. João Bosco Jr.
Arquitetura de Computadores Prof. João Bosco Jr. Unidade II Aula 1 Nível ISA Posicionado entre a microarquitetura e o SO Define a arquitetura (Conjunto de Instruções) É a interface entre o Software e o
SSC510 Arquitetura de Computadores 1ª AULA
SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura
Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br
Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ Assembly do 805 satoutfpredubr Sobre o material Essas transparências foram baseadas em materiais elaborados
7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova
7. PROGRAMANDO O MICROCONTROLADOR 1 7. PROGRAMANDO O MICROCONTROLADOR: Hardware parte física do circuito eletrônico CPU onde está localizado o microcontrolador. Dentro do microcontrolador existe um conjunto
Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I
SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Programação de Microprocessadores 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
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
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
Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento
Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double
Programação ao nível da máquina. Operações lógicas e aritméticas
Programação ao nível da máquina Operações lógicas e aritméticas Operações lógicas e aritméticas Operações: aritméticas: add, sub, inc, dec, cmp lógicas: and, or, xor, not Realizadas pela ALU (Arithmetic
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
Arquitectura de Computadores
Arquitectura de Computadores Ano Lectivo de 2008/2009 2 o Semestre 1 o Teste 20 de Abril de 2009 Duração: 1h30+0h30 - O teste é sem consulta, apenas tem disponível o anexo que lhe deverá ter sido entregue
Prof. Adilson Gonzaga
Prof. Adilson Gonzaga Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos Xtal1 e Xtal2 da CPU.
Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4
Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para
Arquitectura de Computadores 2007/2008 2º Semestre 1º Teste (A) - 30/04/2008. Folha de Respostas
Arquitectura de Computadores 00/00 º Semestre º Teste (A) - 0/0/00 Número: Nome: INSTRUÇÕES: - A duração da prova é de, horas. - Responda apenas nesta Folha de Respostas ; nada mais será recebido. - Identifique
Instruções Assembly x Código de máquina Microprocessador Didático
Instruções Assembly x Código de máquina Microprocessador Didático Professor Afonso Ferreira Miguel ([email protected]) Disciplina de Projetos Lógicos e Microprocessadores Curitiba, 1 de junho de
Interrupção. Prof. Adilson Gonzaga
Interrupção Prof. Adilson Gonzaga Estrutura de Programação Assembly Programa Principal Chamada de Sub-rotina1 Programa Principal Chamada de Sub-rotina2 Sub-rotina1 Subrotina2 Programa Principal Chamada
INSTRUÇÕES DE REPETIÇÃO
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 6 INSTRUÇÕES DE REPETIÇÃO As instruções de repetição permitem fazer com que a execução de uma
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
Departamento de Sistemas de Computação - SSC. Sistemas Digitais. 2 o Semestre Projeto CPU. Data da apresentação: 26/27 de outubro
UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação - SSC Sistemas Digitais 2 o Semestre Projeto CPU Data da apresentação: 26/27 de outubro
Revisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná
Guilherme Luiz Moritz 1 1 DAELT - Universidade Tecnológica Federal do Paraná 6 de novembro de 2013 Características do PIC Arquitetura Harvard RISC, 35 instruções 8 a 84 pinos Mais de 180 modelos Vários
MÓDULO. Conjunto de Instruções do 8086/88 Aritméticas, lógicas, deslocamento e rotação M 02
MÓDULO M 02 Conjunto de Instruções do 8086/88 Aritméticas, lógicas, deslocamento e rotação OBJETIVOS Compreender o significado dos bits de estado no registrador de flags do 8086/88; Conhecer as representações
Laboratório de Sistemas Processadores e Periféricos
Laboratório de Sistemas Processadores e Periféricos Sistema de Interrupções do 8086 Prática 11 Gustavo G. Parma Assunto: sistema de interrupcões do 8086. Interrupções do DOS Objetivos: Apresentação do
Linguagem de Montagem do NeanderX
Universidade Estácio de Sá Curso de Informática Arquitetura de Computadores Linguagem de Montagem do NeanderX 11.5.2006 Geração Programa Executável Linguagens de Programação As linguagens de programação
Seleção Múltipla Laços (while, do-while, for) AULA 05
Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Seleção Múltipla Laços (while, do-while, for) AULA 05 Ricardo Massa F. Lima [email protected] Sérgio C. B. Soares [email protected] Até aqui...
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
