Escolar Documentos
Profissional Documentos
Cultura Documentos
Tpicos
Introduo
Linguagem de Mquina
24 de fevereiro de 2010
Linguagem/Cdigo de mquina: instrues que o processador capaz de executar. Essas instrues, chamadas de cdigo de mquina, so representadas por sequncias de bits, normalmente limitadas pelo nmero de bits do registrador principal (8, 16, 32, 64 ou 128) da CPU. Linguagem de montagem ou assembly: notao legvel por humanos para o cdigo de mquina que uma arquitetura de computador especfica utiliza.
Tradutor: Programas que convertem um programa usurio escrito em alguma linguagem (fonte) para uma outra linguagem (alvo).
Montador/Assembler: um tradutor onde a linguagem fonte a linguagem de montagem e a linguagem alvo a linguagem de mquina
24 de fevereiro de 2010
N = I+J;
Montador/Assembler
1
Linguagem/Cdigo de Mquina
24 de fevereiro de 2010
Introduo Histria
(+)Complexidade (-)
(-)Produtividade (+)
(+)acesso mquina(-)
24 de fevereiro de 2010
Introduo Arquitetura
Arquitetura de computador = prpria linguagem de mquina/linguagem de montagem. Funes de alto nvel para cada arquitetura.
Arquitetura
Motorola 680x0
Introduzido (Ano) 1975 1978 1983 1964 2000 1995 1992 1992 2000 2001
6502 x86 ARM IBM/360 Z/Architecture UltraSPARC Alpha POWER x86-64 Itanium
24 de fevereiro de 2010
Cdigo de operao: Especifica a operao a ser efetuada. Referncia a operando fonte: Os dados envolvidos na operao devem estar referenciados na instruo.
Referncia a operando de destino: Deve-se fornecer informaes que possibilite o armazenamento de qualquer resultado gerado pela instruo.
Cdigo de operao Referncia a operando Referncia a operando
24 de fevereiro de 2010
[ op | rs | rt | rd |shamt| funct] 0 1 2 6 0 32 decimal 000000 00001 00010 00110 00000 100000 binrio [ op | endereo destino ] 2 1024 decimal 000010 00000 00000 00000 10000 000000 binrio
R-tipo
J-tipo
24 de fevereiro de 2010
[ op | rs | rt | rd |shamt| funct] 0 1 2 6 0 32 decimal 000000 00001 00010 00110 00000 100000 binrio
instrues de menor extenso Instrues mais primitivas (CPU menos complexa) instrues por programa maior (maior tempo de execuo)
Mquinas modernas empregam instrues de 2 ou 3 endereos, possibilitando flexibilidade para usar mltiplos registradores.
24 de fevereiro de 2010
24 de fevereiro de 2010
10
24 de fevereiro de 2010
11
Dificuldade do programador lidar com representaes binrias de instrues de mquina. Uso de uma representao simblica:
MPY
Multiplicao
Ex: ADD R, Y
24 de fevereiro de 2010
12
C Carry Z Zero
P Paridade S Sinal
A Auxiliar O Overflow
24 de fevereiro de 2010 13
Comentrios permitem que explicaes sobre determinadas linhas de programa sejam realizadas sem ocasionar erro de compilao. Os comentrios podem ser utilizados de trs formas diferentes:
como uma linha em branco; como uma linha iniciada com o caractere ponto e vrgula (;) e seguida de texto
depois de uma instruo, bastando adicionar o caracter (;) para delimitar o incio do comentrio.
Exemplos de comentrios ; comentrio como uma linha iniciada com ponto e vrgula MOV AX, 6fH ; comentrio depois de uma instruo
24 de fevereiro de 2010
14
24 de fevereiro de 2010
15
Instrues assembly: indicam as ordens que devem ser executadas pela CPU e so transcries (ou notaes) simplificadas, que correspondem aos cdigos binrios das instrues de mquina. Instruo MOV
Registrador Registrador Memria Registrador Registrador Memria Memria Constante Registrador Constante
DESTINO,ORIGEM
Registrador Registrador Memria Registrador
24 de fevereiro de 2010 16
Instrues logicas: As operaes lgicas so realizadas bit a bit, entre os bits de mesma ordem.
AND OR
destino,origem destino,origem
XOR
destino,origem destino
NOT
Instrues soma (subtrao): dos dois operandos substitui o valor do operando destino.
de Transferncias Possveis
Registrador Registrador Memria Registrador Registrador Memria Memria Constante Registrador Constante
24 de fevereiro de 2010
17
JMP endereo
Para pular instrues que no sero executadas; e Para auxiliar a execuo de loops.
Outras instrues:
MUL DIV JXXX -> intrues de desvio condicional CMP Instrues de Deslocamento Instrues de Rotao
24 de fevereiro de 2010
18
Hello world!
.MODEL Small .STACK 100h .DATA msg db 'Hello, world!$' .CODE start: mov ah, 09h mov dx, offset msg mov ah,4Ch int 21h end start
; definio do modelo desejado ;********************************************************************* DOSSEG .MODEL modelo ; definio do segmento de pilha ; **************************************************************************** .STACK [tamanho] ; ; criao do segmento de dados ; **************************************************************************** .DATA ; variveis ; incio do segmento de cdigo ; **************************************************************************** .CODE ; procedimento principal ; **************************************************************************** Principal PROC NEAR ; incio do procedimento principal MOV AX, @DATA ; instrues para que DS e ES MOV DS, AX ; apontem para a rea de MOV ES, AX ; dados criada ; corpo do programa principal MOV AH, 4Ch INT 21h ; funo para trmino de programa ; atravs da INT 21h
24 de fevereiro de 2010
19
Exerccios:
Faa um programa para carregar dados (modo imediato) em AX e BX e, em seguida subtra-los, deixando o resultado em AX.
Faa um programa para somar operandos BCD provenientes das locaes de memria 0200 e 0201, deixando o resultado em 0202.
24 de fevereiro de 2010
20
.MODEL Small .STACK 100h .DATA msg db 'Hello, world!$' .CODE start: mov ah, 09h mov dx, offset msg mov ah,4Ch int 21h end start
MONTAGEM TASM.EXE Montador para a linguagem Assembly. Sintaxe: TASM [opes] fonte [,objeto] [,listagem] [,referncia_cruzada] [;]
Significado Display source line with error message Debug info: zi=full
HelloWorld.obj
TLINK.EXE Ligador cria um programa executvel a partir de um objeto. Sintaxe: TLINK [opes] objetos [, executvel] [, mapa] [, bibliotecas] [;] Linha de Comando mais Comumente Utilizada: TLINK /x/v programa
Opo
/x /v
HelloWorld.exe
24 de fevereiro de 2010
21
Referencias
Tanenbaum A. S. Organizao Estruturada de Computadores. S. Paulo: Pearson Prentice Hall, 5a edio, 2007. Torres Gabriel. Hardware Curso Completo. R. De Janeiro: Axcel Books do Brasil Editora Ltda, 4 edio, 2001. LAYNET. Assembly Tutorials. Disponvel em <http://www.laynetworks.com/assembly%20tutorials.htm> Acesso em 23 de fevereiro de 2010 Monteiro, Mrio A. Introduo Organizao de Computadores. R. De Janeiro: LTC Editora S.A., 4 edio, 2001. WIKIPDIA. Assembly language. Disponvel em: <http://en.wikipedia.org/wiki/Assembly_language> Acesso em 23 de fevereiro de 2010. ______. Machine Code. Disponvel em: <http://en.wikipedia. org/wiki/Machine_code > Acesso em 23 de fevereiro de 2010. ______ Pipelining. Disponvel em: http://en.wikipedia.org/wiki/Pipelining. Acesso em 23 de fevereiro de 2010
24 de fevereiro de 2010
22