sexta-feira, 23 de setembro de 2011

Linguagem Assembly




O Assembly foi uma das primeiras linguagens de programação da história, surgida na década de 50, época em que os computadores ainda usavam válvulas. 


A idéia do Assembly é usar um comando em substituição a cada instrução de máquina. 
No Assembly, cada uma das instruções equivale a uma instrução do processador. Ao invés de usar instruções como 10101011, podem ser utilizadas outras bastante mais simples, como add, div, mul, and, or, not, etc.


Um exemplo de um programa que some 2 números através do Assembly é:


TITLE Numero
.MODEL SMALL 
.STACK 100H 
.DATA 
MSG1 DB 'Digite:','$' 
MSG2 DB ' Digite:','$' 
MSG3 DB ' A soma e:','$' 
NUMERO1 Dw ?
Dw ?




NUMERO2 Dw ?
Dw ?


.CODE 
MOV AX,@DATA 
MOV DS,AX 
;numero 1 
LEA DX,MSG1 
MOV AH,9 
INT 21H 
XOR BX,BX 
XOR SI,SI 
MOV CX,1
M1: MOV AH,1 
INT 21H 
MOV NUMERO1,Ax 
MOV AH,2 
MOV DL,'' 
INT 21H 
ADD SI,2 
DEC CX 
JNZ M1 




MOV CX,1
ADD BX,1 
MOV AX,1
CMP BX,AX 




;numero 2 
LEA DX,MSG2 
MOV AH,9 
INT 21H 
XOR BX,BX 
XOR SI,SI 
MOV CX,1 
M2: MOV AH,1 
INT 21H 
MOV NUMERO2,Ax 
MOV AH,2 
MOV DL,'' 
INT 21H 
ADD SI,2 
DEC CX 
JNZ M2 




MOV CX,1
ADD BX,1
MOV AX,1
CMP BX,AX 


;somando 
LEA DX,MSG3 
MOV AH,9 
INT 21H 
XOR BX,BX 
XOR SI,SI 
MOV CX,1
SOMA: XOR DX,DX 
XOR AX,AX 
MOV DX,NUMERO1 
MOV AX,NUMERO2 
ADD AX,DX 
SUB AX,30H 
MOV DX,AX 
MOV AH,2 
INT 21H 
MOV DL,'' 
INT 21H 
ADD SI,2 
DEC CX 
JNZ SOMA 




MOV CX,1
ADD BX,1
MOV AX,1
CMP BX,AX 


MOV AH,4CH 
INT 21H 
end

Sem comentários:

Enviar um comentário