Assembly (1)
16 pág.

Assembly (1)


DisciplinaOrganização de Computadores6.409 materiais120.116 seguidores
Pré-visualização5 páginas
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\u2021Æo ou instru\u2021Æo se encontre na rea 
correspondente ao seu segmento. O endere\u2021o do segmento \u201a 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 \u201a uma refer\u2c6ncia ao endere\u2021o dentro do segmento, \u201a um 
deslocamento dentro do segmento offset. 
 
O modo usado para indicar ao montador com quais segmentos vamos trabalhar \u201a 
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\u2021Æ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 \u201a conhecida como token, 
por exemplo: 
 
MOV AX,Var 
 
Aqui temos tr\u2c6s tokens, a instru\u2021Æo MOV, o operador AX e o operador VAR. O 
que o montador faz para gerar o c¢digo OBJ \u201a ler cada um dos tokens e 
procurar a equival\u2c6ncia em c¢digo de m quina em tabelas correspondentes, 
seja de palavras reservadas, tabela de c¢digos de opera\u2021Æo, tabela de 
s¡mbolos, tabela de literais, onde o significado dos mnem\u201cnicos e os 
endere\u2021os 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\u2021Æo dos s¡mbolos, ou seja, sÆo associados endere\u2021os a 
todas as instru\u2021äes do programa. Seguindo este processo, o assembler l\u2c6 MOV 
e procura-o na tabela de c¢digos de opera\u2021Æo para encontrar seu equivalente 
na linguagem de m quina. Da mesma forma ele l\u2c6 AX e encontra-o na tabela 
correspondente como sendo um registrador. O processo para Var \u201a um pouco 
diferenciado, o montador verifica que ela nÆo \u201a uma palavra reservada, entÆo 
procura na tabela de s¡mbolos, l encontrando-a ele designa o endere\u2021o 
correspondente, mas se nÆo encontrou ele a insere na tabela para que ela 
possa receber um endere\u2021o na segunda passagem. Ainda na primeira passagem \u201a 
executado parte do processamento das diretivas, \u201a importante notar que as 
diretivas nÆo criam c¢digo objeto. Na passagem dois sÆo montadas as 
instru\u2021äes, traduzindo os c¢digos de opera\u2021Æo e procurando os endere\u2021os, e \u201a 
gerado o c¢digo objeto. 
 
H s¡mbolos que o montador nÆo consegue encontrar, uma vez que podem ser 
declara\u2021äes externas. Neste caso o linker entra em a\u2021Æ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 \u201a 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 
 ;(\u201a o valor ASCII do caractere *) 
 int 21h ;interrup\u2021Æo 21h 
 mov ah,4ch ;fun\u2021Æo 4ch, sai para o sistema operacional 
 int 21h ;interrup\u2021Æ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\u2021äes. 
 
3.4.1.Movimento de dados 
3.4.2.Opera\u2021äes l¢gicas e aritm\u201aticas 
3.4.3.Saltos, la\u2021os 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\u2c6-lo: pode-se copiar os dados 
da mem¢ria para algum reg 
Page 16 of 16
21/7/2009http://www.b4silisco.com/ASMPOR.TXT