martes, 22 de agosto de 2017

Lenguajes de Interfaz

Temario

Ide para programar en lenguaje ensamblador


Importancia del lenguaje ensamblador "Ventajas y Desventajas"


EL procesador y sus registros internos

Mnemonicos del lenguaje ensamblador
Interrupciones del DOS
http://www.conocimientosweb.net/dcmt/ficha7780.html
 Programa que imprime los números primos de '0' a 'n' números 
PROG SEGMENT PARA PUBLIC 'CODE'
     ASSUME cs:PROG,ss:PROG,ds:PROG
     ORG 0100h
programa:
 jmp codigo
cont2 DB  0
n     DB  0
num   DW  0
ind   DW  1
cont  DW  0
divi  DB  0
cad   DB  7 dup(0)
enun  DB  'Introduzca el valor de n: $'
res   DB  10,13,'Numeros primos hasta $'
codigo:
     mov  dx,OFFSET enun
     mov  ah,09h
     int  21h
     mov  ah,01h
     mov  bx,OFFSET cad
     mov  n,0
     mov  cx,4
bucle1:
     int  21h
     mov  [bx],al
     cmp  al,13
     jz   listo
     inc  bx
     inc  n
     loop bucle1
listo:
     mov  al,10
     mov  [bx],al
     mov  al,13
     mov  [bx+1],al
     mov  al,36
     mov  [bx+2],al
     cmp  n,0
     jz   codigo
     mov  dx,OFFSET res
     mov  ah,09h
     int  21h
     mov  dx,OFFSET cad
     int  21h
     mov  al,[bx-1]
     sub  al,48
     xor  ah,ah
     add  num,ax
     cmp  n,1
     jz   bucle2
     mov  al,[bx-2]
     sub  al,48
     mov  cl,10
     mul  cl
     add  num,ax
     cmp  n,2
     jz   bucle2
     mov  al,[bx-3]
     sub  al,48
     mov  cl,100
     mul  cl
     add  num,ax
     cmp  n,3
     jz   bucle2
     mov  al,[bx-4]
     sub  al,48
     xor  ah,ah
     mov  cx,1000
     mul  cx
     add  num,ax
bucle2:
     mov  divi,0
     mov  cont,1
bucle3:
     mov  ax,ind
     xor  dx,dx
     mov  cx,cont
     div  cx
     cmp  dx,0
     jnz  no_eq
     inc  divi
no_eq:
     inc  cont
     mov  ax,ind
     shr  ax,1
     cmp  cont,ax
     jnbe fin3
     jmp  bucle3
fin3:
     cmp  divi,1
     jnbe mayor
     mov  ax,ind
     call funcion
     inc  cont2
     cmp  cont2,20
     jnz  mayor
     mov  ah,00h
     int  16h
     mov  cont2,0
mayor:
     inc  ind
     mov  ax,ind
     cmp  ax,num
     jnbe fin2
     jmp  bucle2
fin2:
     mov  ah,00h
     int  16h
     mov  ah,4ch
     mov  al,00h
     int  21h

funcion PROC NEAR
    xor  dx,dx
    mov  cx,1000
    div  cx
    mov  cad,al
    mov  ax,dx
    mov  cl,100
    div  cl
    mov  cad+1,al
    mov  al,ah
    xor  ah,ah
    mov  cl,10
    div  cl
    mov  cad+2,al
    mov  cad+3,ah
    mov  cad+4,10
    mov  cad+5,13
    mov  cad+6,36
    add  cad,48
    add  cad+1,48
    add  cad+2,48
    add  cad+3,48
    mov  dx,OFFSET cad
    mov  ah,09h
    int  21h
    RET
funcion ENDP

PROG ENDS
     END programa

No hay comentarios:

Publicar un comentario