Apostila Assembly

download Apostila Assembly

of 70

  • date post

    03-Jul-2015
  • Category

    Documents

  • view

    420
  • download

    3

Embed Size (px)

Transcript of Apostila Assembly

University of Guadalajara Information Sistems General Coordination. Culture and Entertainment Web June 12th 1995 Copyright(C)1995-1996 ************************************************************************** *** * Este tutorial foi traduzido para o Portugus por Jeferson Amaral. * * e-mail: amaral@inf.ufsm.br * ************************************************************************** *** Este tutorial tem o intuito de apenas introduzir o leitor ao mundo da programacao em Linguagem Assembly, nao tem, portanto e de forma alguma, plano de esgotar o assunto. Copyright (C) 1995-1996, Hugo Perez Perez. Anyone may reproduce this document, in provided that: whole or in part,

(1) any copy or republication of the entire document must show University of Guadalajara as the source, and must include this notice; and (2) any other use of this material must reference this manual and University of Guadalajara, and the fact that the material is copyright by Hugo Perez and is used by permission. ************************************************************************** ** T U T O R I A L --------------D E --L I N G U A G E M ----------------Contedo: 1.Introduo 2.Conceitos Bsicos 3.Programao Assembly 4.Instrues Assembly 5.Interrupes e gerncia de arquivos 6.Macros e procedimentos 7.Exemplos de programas 8.Bibliografia ************************************************************************** *** CAPTULO 1: INTRODUO Contedo: 1.1.O que h de novo neste material 1.2.Apresentao 1.3.Por que aprender Assembly? A S S E M B L Y ---------------

1.4.Ns precisamos da sua opinio --------------- // --------------1.1.O que h de novo neste material: Aps um ano da realizao da primeira verso do tutorial, e atravs das opinies recebidas por e-mail, resolvemos ter por disposio todos estes comentrios e sugestes. Esperamos que atravs deste novo material Assembly, as pessoas que se mostrarem interessadas possam aprender mais sobre o seu IBM PC. Esta nova edio do tutorial inclui: Uma seo completa sobre como usar o programa debug. Mais exemplos de programas. Um motor de pesquisa, para qualquer tpico ou item relacionado esta nova verso. Considervel reorganizao e reviso do material Assembly. Em cada seo, h um link para o Dicionrio On-line de Computao de Dennis Howe. 1.2.Apresentao: Este tutorial destina-se quelas pessoas que nunca tiveram contato com a Linguagem Assembly. O tutorial est completamente focado em computadores com processadores 80x86 da famlia Intel, e considerando que a base da linguagem o funcionamento dos recursos internos do processador, os exemplos descritos no so compatveis com qualquer outra arquitetura. As informaes esto dispostas em unidades ordenadas para permitir fcil acesso a cada tpico, bem como uma melhor navegao pelo tutorial. Na seo introdutria so mencionados alguns conceitos elementares sobre computadores e a Linguagem Assembly em si. 1.3.Por que aprender Assembly? A primeira razo para se trabalhar com o assembler a oportunidade de conhecer melhor o funcionamento do seu PC, o que permite o desenvolvimento de programas de forma mais consistente. A segunda razo que voc pode ter um controle total sobre o PC ao fazer uso do assembler. Uma outra razo que programas assembly so mais rpidos, menores e mais poderosos do que os criados com outras linguagens. Ultimamente, o assembler (montador) permite uma otimizao ideal nos programas, seja no seu tamanho ou execuo. 1.4.Ns precisamos da sua opinio: Nosso intuito oferecer um modo simples para que voc consiga aprender Assembly por si mesmo. Por tanto, qualquer comentrio ou sugesto ser bem-vinda.

************************************************************************** *** CAPTULO 2: CONCEITOS BSICOS Contedo: 2.1.Descrio bsica de um sistema computacional. 2.2.Conceitos bsicos da Linguagem Assembly 2.3.Usando o programa debug --------------- // --------------Esta seo tem o propsito de fazer um breve comentrio a respeito dos principais componentes de um sistema computacional, o que ir permitir ao usurio uma melhor compreenso dos conceitos propostos no decorrer do tutorial. 2.1.DESCRIO DE UM SISTEMA COMPUTACIONAL Contedo: 2.1.1.Processador Central 2.1.2.Memria Principal 2.1.3.Unidades de Entrada e Sada 2.1.4.Unidades de Memria Auxiliar Sistema Computacional. Chamamos de Sistema Computacional a completa configurao de um computador, incluindo os perifricos e o sistema operacional. 2.1.1.Processador Central. tambm conhecido por CPU ou Unidade Central de Processamento, que por sua vez composta pela unidade de controle e unidade de lgica e aritmtica. Sua funo consiste na leitura e escrita do contedo das clulas de memria, regular o trfego de dados entre as clulas de memria e registradores especiais, e decodificar e executar as instrues de um programa. O processador tem uma srie de clulas de memria usadas com freqncia e, dessa forma, so partes da CPU. Estas clulas so conhecidas com o nome de registradores. Um processador de um PC possui cerca de 14 registradores. Como os PCs tem sofrido evoluo veremos que podemos manipular registradores de 16 ou 32 bits. A unidade de lgica e aritmtica da CPU realiza as operaes relacionadas ao clculo simblico e numrico. Tipicamente estas unidades apenas so capazes de realizar operaes elementares, tais como: adio e subtrao de dois nmeros inteiros, multiplicao e diviso de nmero inteiro, manuseio de bits de registradores e comparao do contedo de dois registradores.

Computadores pessoais podem ser classificados pelo que conhecido como tamanho da palavra, isto , a quantidade de bits que o processador capaz de manusear de uma s vez. 2.1.2.Memria Principal. um grupo de clulas, agora sendo fabricada com semi-condutores, usada para processamentos gerais, tais como a execuo de programas e o armazenamento de informaes para operaes. Cada uma das clulas pode conter um valor numrico e capaz de ser endereada, isto , pode ser identificada de forma singular em relao s outras clulas pelo uso de um nmero ou endereo. O nome genrico destas memrias Random Access Memory ou RAM. A principal desvantagem deste tipo de memria o fato de que seus circuitos integrados perdem a informao que armazenavam quando a energia eltrica for interrompida, ou seja, ela voltil. Este foi o motivo que levou criao de um outro tipo de memria cuja informao no perdida quando o sistema desligado. Estas memrias receberam o nome de Read Only Memory ou ROM. 2.1.3.Unidades de Entrada e Sada. Para que o computador possa ser til para ns se faz necessrio que o processador se comunique com o exterior atravs de interfaces que permitem a entrada e a sada de informao entre ele e a memria. Atravs do uso destas comunicaes possvel introduzir informao a ser processada e mais tarde visualizar os dados processados. Algumas das mais comuns unidades de entrada so o teclado e o mouse. As mais comuns unidades de sada so a tela do monitor e a impressora. 2.1.4.Unidades de Memria Auxiliar. Considerando o alto custo da memria principal e tambm o tamanho das aplicaes atualmente, vemos que ela muito limitada. Logo, surgiu a necessidade da criao de dispositivos de armazenamento prticos e econmicos. Estes e outros inconvenientes deram lugar s unidades de memria auxiliar, perifricos. As mais comuns so as fitas e os discos magnticos. A informao ali armazenada ser dividida em arquivos. Um arquivo feito de um nmero varivel de registros, geralmente de tamanho fixo, podendo conter informao ou programas.

--------------- // --------------2.2.CONCEITOS BSICOS Contedo: 2.2.1.Informaes nos computadores 2.2.2.Mtodos de representao de dados 2.2.1.Informao no computador: 2.2.1.1.Unidades de informao 2.2.1.2.Sistemas numricos 2.2.1.3.Convertendo nmeros binrios para decimais 2.2.1.4.Convertendo nmeros decimais para binrios 2.2.1.5.Sistema hexadecimal

2.2.1.1.Unidades de informao Para o PC processar a informao, necessrio que ela esteja em clulas especiais, chamadas registradores. Os registradores so grupos de 8 ou 16 flip-flops. Um flip-flop um dispositivo capaz de armazenar 2 nveis de voltagem, um baixo, geralmente 0.5 volts, e outro comumente de 5 volts. O nvel baixo de energia no flip-flop interpretado como desligado ou 0, e o nvel alto, como ligado ou 1. Estes estados so geralmente conhecidos como bits, que so a menor unidade de informao num computador. Um grupo de 16 bits conhecido como palavra; uma palavra pode ser dividida em grupos de 8 bits chamados bytes, e grupos de 4 bits chamados nibbles.

2.2.1.2.Sistemas numricos O sistema numrico que ns usamos diariamente o decimal, mas este sistema no conveniente para mquinas, pois ali as informaes tm que ser codificadas de modo a interpretar os estados da corrente (ligadodesligado); este modo de cdigo faz com que tenhamos que conhecer o clculo posicional que nos permitir expressar um nmero em qualquer base onde precisarmos dele. possvel representar um determinado nmero em qualquer base atravs da seguinte frmula: Onde n a posio do dgito, iniciando da direita para a esquerda e numerando de 0. D o dgito sobre o qual ns operamos e B a base numrica usada.

2.2.1.3.Convertendo nmeros binrios para decimais Quando trabalhamos com a Linguagem Assembly encontramos por acaso a necessidade de converter nmeros de um sistema binrio, que usado em computadores, para o sistema decimal usado pelas pessoas. O sistema binrio baseado em apenas duas condies ou estados, estar ligado(1), ou desligado(0), portanto sua base dois. Para a converso, podemos usar a frmula de valor posicional: Por exemplo, se tivermos o nmero binrio 10011, tomamos cada dgito da direita para a esquerda e o multiplicamos pela base, elevando potncia correspondente sua posio relativa: Binrio: Decimal: = 1 1*2^0 1 1 0 0 1

+ 1*2^1 + 0*2^2 + 0*2^3 + 1*2^4 + 2 + 0 + 0 + 16 = 19 decimal.

O caracter ^ usado em computao como smbolo para potncia e * para a multiplicao. 2.2.1.4.Convertendo nmeros decimais para binrio H vrios mtodos para se converter nme