You are on page 1of 4
«@ * Muitos utilizadores e a totalidade dos programadores deparard tarde ou cedo, com a necessidade de resolver um problema especitico de codificagao para o qual as linguagens de alto nivel nao oferecem qualquer solugdo ou, se oferecem, esta nao é satistatéria. o PORQUE PROGRAMAR EM ASSEMBLY ? Muitos utilizadores de computadores pessoais conhe- em linguagens de programagiio como 0 BASIC, o PAS- CAL ou 0 C e dio-se por muito satisfeitos. Na realidade, para muitos objectivos de programacao, ferramentas ‘coma essas posiem ser, e do normalmente, mais do que suficientes, ou dito de outro modo, so efectivamente as ‘mais adequadas, Essas linguagens de programagio sito designadas por Tinguagens de «alto nfveb>, 0 que signifiea que quem as utiliza programa a um elevado nfvel de distanciamento do ‘equipamento, Outra forma de as designar € por lingua- gens «procedurais» pois. permitem-nos descrever as larefas a serem realizadas de forma orientada directa- ‘mente para a resolugo do problema. Para clas nio ha qualquer preacupa jo com instrugiees accites a nivel do processador, rexistos iniernos © (ado ‘que tenha a yer com a arquitectura particular de um ‘computador. Navverdade é possivel programar em linguagem de alto nivele ter um conhecimento nio muito pormenorizade do ‘computador com que se esté a trabalhar. AAs Tinguagens de alto nivel «én ainda a vantagem de ser relativamente , uma feramen- ta multiugo mis primitiva, Nocatipo dos verdadeiros Assembladores comesatnos por citar um que € de shareware e de nome A86 (que Significa, segunda o seu autor, «Assemblador part a familia de proessadores 80x86 da Intel) extrermamente fl aprender a tabaihar com o AS6, pois le dispensaquase totalmente conhecimento previo daguilo que se designa por «pscudo- operadores». Estes nda so intragdesAcsmbly, mas directives para @- Assembladores e sio a causa nimero um de desinimo para muitos que tentam iiciar-se no estado do Assembly Exemplo de pseudo-operadores sio os eélebres.AS- SUMIE, 0s PROC, 0s ENDP, ete E como o A&6 demonstra muito bem, é possivel construirprogramasalgosofisticadossem utizarqualeuer desses quebra-cabegas, Se os quite ullizar muito bem, 0 ‘AS6 conhece-cs também sen, confi no bom sense do ‘ARG que ele procede como se os pseudo-operadores Ii cstivessem © normalmente acerta ‘OAR fem muitos pontosa seu favor e,naturalmen- tealgumas pequenas limitagbes. Mas, em nossa opinio, tum prineipians teré toda vantagem em conhecer este programa-ferrament, pos prmit-Ihe-dum evolirrip- do para um conhecimento bastante eleva de Kingagem “Assembly. E, apes esse conhecimeno ser bli, tema dos pscudo-operadores toma-se muito mais fil, quase intutvo No mito dos Assembladore ditos profissionais de vemes citar os mais conbecidos: O MASM c 0 TASM. MASM 6 predto da Microsoft considera implicta- mente a referéncia que qualquer dos outres Assembl- dares nao pede perder de vista. Eles podem superar ui cali o MASM mas, cima de tudo, tim de poder afirmar {que Sio 100% (ou quase) compaitveis com o MASM. Mesmo que nio gostemos do MASM., devernos conhec®- lo, pose constitu a inguagem comum que tds tmos deterem qualquer endo conhecimento.eo-Assembly a0 Sexcepean, (0 MASM foi, durane muitos anos, praticamente 0 tnico Assemblador profissional dispon‘vel no mercalo ‘© TASM sorgiu em 988, é um produto da Borland Internacional ¢ em nossa opinigo, 0 melhor existente actuaimente, Curiosamente, tanto @ TASM come 0 MASM, nas versdes mais recentes, tm alivado bastante as suas exigdnsias em materia de directives requis pelo Assemblaor e acvitam una forma simplifieada dessas directives baseads nos «modelos de memoria» das linguagens de alto nivel, forma essaque pode ser sad na grande maioria dos programas (Os Assembladores actuam sobre o cédigo Assembly. isto 6, mnemdnicas Assembly como as que vimos ards ¢ aque eserevemos com um simples editor de texto com 0 EDIT da MS DOS 5.0, ou qualquer outro que prediza texto no formatado, ou ASCH puro, Designa-se esse ccédigo por programa fonte (do inglés source code’. ‘Quando'o MASM ou TASM operam scbre esse progra- mm, 0 resultado no € de imediato um programa exc cutivel comextensiioCOM ou EXE, mas sim um progra- ma intermédio designado por programa objectoe que tem normalmente a extensio OBI (©.A86, por seu lado, pode produzir também OBI, mas por omissio construiri de imediato um executivel COM, fou em altemativa um BIN, que é um programa binério puro que € carregado num enderego de memoria de deslocamento zero. Devido i existéncia dos OBI, & necessario termos outra ferramenta que & 0 linker, ou ligador (ou «linkeditor» se o leitor for brasileiro) 2) O linker. © MASM tem 0 seu linker de nome LINK, €0TASM tem o TLINK, Se tiver um OBJ produzido pelo A86, certo pega «empresiado» um ou outro para ligar programa. A existéncia de programas OBJ é uma «fata- lidade» que tem a ver com: =O programa podeter referenciadorotinas ou vatiiveis wos programas-médulo, ou fungbesque existem em bibliotecas de rotinas (ibrarierem ingles) €€ necessario ligar tudo isso num tinieo programa para que este possa funcionar = A estrutura de meméria des computadores baceados. ‘no 80x86 permite queos programas sejam carregados em {qualquer ponto desss: meméria para serem executados. Assim, outra fungao do linker € fabricar um cabecalho (01 Headerem ingles) que orienteo DOSno carregamen- toerelocagio das vérias partes do programa em meméria, este modo, o resultado do trabalho do linker acaba por secum programa comaextensio EXE, que congrega tido fo que & necessério para poder ser executado, ‘Mas alguns programas EXE iém a caracteristica de no ‘erem exigéncias pariculares em matéria de relocagao, pois a sua imagem em meméria pode ser idéntica a'sua, imagem em ficheiro (fife ou ficha sio termos comuns, ‘mas usaremos ficheiro por estar mais divulgado). Num caso desses poderomes fazer uso de outra das ferramentas que € o: 3B} IN. Este programa transforma (quando € posstvel) os ficheiros EXE em COM (ou noutras extensGes mais arcevezadas como SYS, mas ndo compliquemos desntecessarimente nesta fase). Se dispuser do TLINK, 0 EXE2BIN nio & necessario, pois basta usar o swt do ‘TLINK para que o ficheiro venia com a extensio COM. ‘Se’o nome EX2BIN nio The € estranho ¢ nunca uilizou Assembly, talvez isso se deva a que algumas versies do MS-DOS trazem esse programa incluido, Porqué s6 0 EXEQBIN acompanhar o MS-DOS, porqué is vezes 0 EXE2BIN co LINK c outras vezes nem um nem outro, & um mistério no revelado pela Microsoft. Que outras ferramentas existem ? Algumas outras, mas estas chegam para comegar. No artigo de hoje cobrimos um largo terit6rio para ‘quem partida muito pouco ounada soubesse-de Assem- ly, Mas toda a panorimiea quedemos ind ajudé-to muito nos prximos ntimeros, nos quis Falaremos de arquitee- ura dos PC, segmentacio de meméria , interrupedes, servigos do DOS ¢ do BIOS e, simultncamente, iremos. aprofundando 6s nossos conkecimentos de Assembly sempre devidamenteilustradoscom programas exemplo. « Mais do que entrar em andlises semanticas, 0 importante aqui é saber que o Assembladar é para o Assembly 0 que o Compilador é para uma linguagem de alto nivel. o

You might also like