Baixe o app para aproveitar ainda mais
Prévia do material em texto
A Linguagem de Máquina consiste do conjunto de instruções definidas por cadeias de zeros e uns. A Linguagem de Montagem corresponde a uma tentativa de tornar mais fácil, para o ser humano, o significado das sequências de zeros e uns da Linguagem de Máquina. leia Cartão e guarde em Ei: 111 00000000 IIII copie Ei em Ej: 111 0001 IIII JJJJ some(subtraia, multiplique,...) Ei e Ej e guarde em Ek: yyy IIII JJJJ KKKK some yyy=000; subtraia yyy=001; multiplique yyy=010; divida yyy=011; vá para Ei: 111 00000001 IIII se Ei (maior, menor, maior ou igual,...) Ej vá para Ek: yyy IIII JJJJ KKKK maior yyy=100; igual yyy=101; menor=110; imprima Ei: 111 00000010 IIII pare: 111 00000011 0000 Na codificação acima IIII, JJJJ ou KKKK representam quatro dígitos binários que identificam uma das 16 posições de memória do computador simplificado; 0000 corresponde a E0, 0001 corresponde a E1, 0010 corresponde a E2 e assim sucessivamente até 1111 que corresponde a E15. Um programa denominado Montador traduz um programa de linguagem de montagem para linguagem de máquina. E0 leia entrada e guarde em E15; E1: leia entrada e guarde em E14 E2 se E15 = E12 vá para E6 E3 some E14 e E13 e guarde em E13 E4 some E11 e E12 e guarde em E12 E5 vá para E2 E6 imprima E13 E7 pare E8 ? E9 ? E10 ? E11 1 E12 0 E13 0 E14 ? E15 ? O que este programa faz? O programa calcula o produto de dois números utilizando somas sucessivas e corresponde ao seguinte programa: E0: leia cartão e guarde em E15 E1: leia cartão e guarde em E14 E2: multiplique E15 por E14 e guarde em E13 E3: imprima E13 E4: pare Um possível problema do programa da questão anterior é a dependência de sua eficiência na ordem de entrada dos valores; se os dois valores lidos são 3 e 1000, podem ser feitas 3 somas ou então 1000 somas! Verifique se funciona e codifique em linguagem de máquina as duas soluções. E0: leia cartão e guarde em E15 E1: leia cartão e guarde em E14 E2: some E11 e E12 e guarde em E12 E3: se E15>E14 vá para E7 E4: some E14 e E13 e guarde em E13 E5: se E15>E12 va para E2 E6: va para E9 E7: some E15 e E13 e guarde em E13 E8: se E14>E12 vá para E2 E9: imprima E13 E10: pare E11: 1 E12: 0 E13: 0 Primeiro passo: Editor de texto favorito O compilador é o g++ ou gcc. Montador assembler: traduz operações para código binário Compiladores X interpretadores Programa: forma de se comunicar com um computador linguagem máquina Programas são ‘traduzidos’ através de outros programas “especiais”: Compiladores lêem um programa inteiro e converte-o para um código-objeto. Interpretadores lêem uma linha por vez. Linguagem de programação Envolve um conjunto de instruções , estruturas e formas de programação com o objetivo de desevolver programas Processo: fonte objeto executável Alguns conceitos Código-Fonte: criado em um editor de textos, contendo os comandos da linguagem de programação (C, Pascal...). Serve como entrada para o compilador. Código-Objeto: criado pela conversão do código-fonte em linguagem de máquina. É gerado pelo compilador. Só é criado quando não há erros no código-fonte. (Extensão do código-objeto: .OBJ) Ligador ou Linkeditor: "junta" o código-objeto com as bibliotecas necessárias para gerar o programa-executável. (Extensões das bibliotecas: .DLL ou .LIB) Programa Executável: código que pode ser executado pelo sistema operacional. (Extensão do programa-executável: .EXE) Tempo de Compilação: durante o processo de conversão entre código-fonte e código-objeto. Tempo de Execução: após a ativação do programa executável.
Compartilhar