Specifications
MICROPROCESSADORES
O DEBUG, TASM E TLINK
3
Luís Miguel Charrua Figueiredo 3 - 10 E.N.I.D.H.
C:\>tlink exam1.obj
Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International
C:\>
O resultado é um ficheiro exam1.exe que pode agora ser executado.
Para a criação e edição dos ficheiros ASM, aconselho um editor tal como o
EDIT Plus 2 ao qual se
pode acrescentar um ficheiro relativo ao
assembly do 8086, permitindo-nos que ao editar tenhamos
o código realçado com cores de acordo com o tipo de elementos (
sintaxe highligth) por forma a ser
mais fácil analisar o código. No entanto poderemos utilizar qualquer tipo de editor que nos permita
gravar ficheiros em formato ASCII com a extensão ASM.
A utilização do
Tasm e Tlink em vez do Debug, para além da facilidade de edição e análise do
código, permite-nos ainda fazer uso de macros e procedimentos, que não é possível em
Debug.
Uma das formas mais práticas de criar programas usando linguagem
assembly, será gerar o
código fonte com um editor, fazer a sua compilação com o
Tasm e Tlink, e em caso de problemas
usar o
debug para a execução passo a passo ou com o auxilio de breakpoints até se encontrar o
problema e se efectuar a correcção novamente com o editor de texto.
Macros e Procedimentos
Uma das grandes vantagens de se trabalhar com ficheiros de código que são depois compilados, é
que poderemos criar e usar macros e procedimentos. Ao programar em linguagens de alto nível
(C, Basic, etc.) quando existe um conjunto de operações repetitivas ao longo do programa,
normalmente são agrupadas em funções ou sub-rotinas, em
assembler chamam-se macros e
procedimentos (
procedures). A diferênça entre macros e procedimentos, é que nos procedimentos
não passamos parametros ao chamarmos o procedimento, enquanto uma macro pode receber
parametros ao ser chamada.
Procedimentos
Há dois tipos de procedimentos, os intrasegmento, que se situa no mesmo segmento de código da
instrução que o chama, e os intersegmento, que estão num segmento de memória diferente da
instrução que o chama.
Quando os procedimentos intrasegmento são usados, o valor de IP é colocado na
Stack, quando
são intersegmentos, é o valor CS:IP que é colocado na
Stack.
A instrução que chama um procedimento é como segue:
CALL NomedoProcedimento
As partes que compõem um procedimento são as seguintes:










