A maior rede de estudos do Brasil

Grátis
16 pág.
Assembly (1)

Pré-visualização | Página 5 de 5

a maior mem¢ria que podemos instalar num PC. 
 
Desta forma, para que o montador seja capaz de gerenciar os dados, se faz 
necess rio que cada informa‡Æo ou instru‡Æo se encontre na rea 
correspondente ao seu segmento. O endere‡o do segmento ‚ fornecido ao 
montador pelos registradores DS, ES, SS e CS. Lembrando um programa no 
Debug, observe: 
 
1CB0:0102 MOV AX,BX 
 
O primeiro n£mero 1CB0, corresponde ao segmento de mem¢ria que est sendo 
usado, o segundo ‚ uma referˆncia ao endere‡o dentro do segmento, ‚ um 
deslocamento dentro do segmento offset. 
 
O modo usado para indicar ao montador com quais segmentos vamos trabalhar ‚ 
fazendo uso das diretivas .CODE, .DATA e .STACK. 
 
O montador ajusta o tamanho dos segmentos tomando como base o n£mero de 
bytes que cada instru‡Æo assembly precisa, j que seria um desperd¡cio de 
mem¢ria usar segmentos inteiros. Por exemplo, se um programa precisa de 
apenas 10Kb para armazenar dados, o segmento de dados seria apenas de 10Kb e 
nÆo de 64Kb, como poderia acontecer se feito manualmente. 
 
Page 14 of 16
21/7/2009http://www.b4silisco.com/ASMPOR.TXT
 
3.2.2.TABELAS DE EQUIVALÒNCIA 
 
Cada uma das partes numa linha de c¢digo assembly ‚ conhecida como token, 
por exemplo: 
 
MOV AX,Var 
 
Aqui temos trˆs tokens, a instru‡Æo MOV, o operador AX e o operador VAR. O 
que o montador faz para gerar o c¢digo OBJ ‚ ler cada um dos tokens e 
procurar a equivalˆncia em c¢digo de m quina em tabelas correspondentes, 
seja de palavras reservadas, tabela de c¢digos de opera‡Æo, tabela de 
s¡mbolos, tabela de literais, onde o significado dos mnem“nicos e os 
endere‡os dos s¡mbolos que usamos serÆo encontrados. 
 
A maioria dos montadores sÆo de duas passagens. Em s¡ntese na primeira 
passagem temos a defini‡Æo dos s¡mbolos, ou seja, sÆo associados endere‡os a 
todas as instru‡äes do programa. Seguindo este processo, o assembler lˆ MOV 
e procura-o na tabela de c¢digos de opera‡Æo para encontrar seu equivalente 
na linguagem de m quina. Da mesma forma ele lˆ AX e encontra-o na tabela 
correspondente como sendo um registrador. O processo para Var ‚ um pouco 
diferenciado, o montador verifica que ela nÆo ‚ uma palavra reservada, entÆo 
procura na tabela de s¡mbolos, l encontrando-a ele designa o endere‡o 
correspondente, mas se nÆo encontrou ele a insere na tabela para que ela 
possa receber um endere‡o na segunda passagem. Ainda na primeira passagem ‚ 
executado parte do processamento das diretivas, ‚ importante notar que as 
diretivas nÆo criam c¢digo objeto. Na passagem dois sÆo montadas as 
instru‡äes, traduzindo os c¢digos de opera‡Æo e procurando os endere‡os, e ‚ 
gerado o c¢digo objeto. 
 
H s¡mbolos que o montador nÆo consegue encontrar, uma vez que podem ser 
declara‡äes externas. Neste caso o linker entra em a‡Æo para criar a 
estrutura necess ria a fim de ligar as diversas poss¡veis partes de c¢digo, 
dizendo ao loader que o segmento e o token em questÆo sÆo definidos quando o 
programa ‚ carregado e antes de ser executado. 
 
 
 --------------- // --------------- 
 
3.3.Mais programas. 
 
Outro exemplo 
 
Primeiro passo 
 
Use qualquer editor e crie o seguinte: 
 
;exemplo2 
.model small 
.stack 
.code 
 mov ah,2h ;move o valor 2h para o registrador ah 
 mov dl,2ah ;move o valor 2ah para o registrador dl 
 ;(‚ o valor ASCII do caractere *) 
 int 21h ;interrup‡Æo 21h 
 mov ah,4ch ;fun‡Æo 4ch, sai para o sistema operacional 
 int 21h ;interrup‡Æo 21h 
end ;finaliza o programa 
 
Segundo passo 
 
Salvar o arquivo com o nome: exam2.asm 
NÆo esquecer de salvar em formato ASCII. 
 
Page 15 of 16
21/7/2009http://www.b4silisco.com/ASMPOR.TXT
Terceiro passo 
 
Usar o programa TASM para construir o programa objeto. 
 
C:\>tasm exam2.asm 
Turbo Assembler Version 2.0 Copyright (c) 1988, 1990 Borland International 
 
Assembling file: exam2.asm 
Error messages: None 
Warning messages: None 
Passes: 1 
Remaining memory: 471k 
 
Quarto passo 
 
Usar o programa TLINK para criar o programa execut vel. 
 
C:\>tlink exam2.obj 
Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International 
 
C:\> 
 
Quinto passo 
 
Executar o programa: 
 
C:\>exam2[enter] 
* 
C:\> 
 
Este programa imprime o caracter * na tela. 
 
Clique aqui para obter mais programas 
 
 
 --------------- // --------------- 
 
3.4.Tipos de instru‡äes. 
 
3.4.1.Movimento de dados 
3.4.2.Opera‡äes l¢gicas e aritm‚ticas 
3.4.3.Saltos, la‡os e procedimentos 
 
 
3.4.1.MOVIMENTO DE DADOS 
 
Em qualquer programa h necessidade de se mover dados na mem¢ria e em 
registradores da CPU; h v rios modos de se fazˆ-lo: pode-se copiar os dados 
da mem¢ria para algum reg 
Page 16 of 16
21/7/2009http://www.b4silisco.com/ASMPOR.TXT

Crie agora seu perfil grátis para visualizar sem restrições.