AQUI LES DEJO EL CODIGO PARA NUMEROS PRIMOS DEL 8086
ME COSTO PERO VALIO LA PENA PASARLO ME EXCENTO DE UN EXAMEN SUERTE
org 100h
;aquie
mov bp,55 ;Este es el numero a comparar
push bp[300]
mov ax,1
mov cx,1
cmp bp,2
jng primo ; si bp es mayor a 2 el numero es primo
jg comparacion ; si no es mayor sigue el procedimiento
comparacion:
mov ax,cx
mul ax
cmp ax,bp
jg decremento ;en caso de k sea mayor
je no_primo ;no es primo
jl incremento ;menor
decremento:
dec cx
jmp vamos_a_modulo
incremento:
inc cx
jmp comparacion
vamos_a_modulo:
pop bp[300] ; retorna valor a bp
mov ax,cx ;recupero valor de cx para ponerlo en ax
mov bx,bp ;salvo valor guardado de numero
xchg bp,ax ;intercambio valores para hacer division
ciclo:
cmp cx,2
jnl entra ;si es mayor
jl primo ;si es menor
entra:
div cx
cmp dx,0 ;nos da el modulo de la operacion
je no_primo ;tiene paridad
jg seguir ;sigo para continuar con el decremento
seguir:
dec cx
mov ax,bx
mov dx,0
jmp ciclo
no_primo:
mov al,'n'
mov ah,0eh
int 10h
mov al,'o'
mov ah,0eh
int 10h
mov al,' '
mov ah,0eh
int 10h
mov al,'p'
mov ah,0eh
int 10h
mov al,'r'
mov ah,0eh
int 10h
mov al,'i'
mov ah,0eh
int 10h
mov al,'m'
mov ah,0eh
int 10h
mov al,'o'
mov ah,0eh
int 10h
jmp final
primo:
mov al,'p'
mov ah,0eh
int 10h
mov al,'r'
mov ah,0eh
int 10h
mov al,'i'
mov ah,0eh
int 10h
mov al,'m'
mov ah,0eh
int 10h
mov al,'o'
mov ah,0eh
int 10h
final:
mov al,' '
mov ah,0eh
int 10h
mov al,' '
mov ah,0eh
int 10h
mov al,'H'
mov ah,0eh
int 10h
mov al,'e'
mov ah,0eh
int 10h
mov al,'c'
mov ah,0eh
int 10h
mov al,'h'
mov ah,0eh
int 10h
mov al,'o'
mov ah,0eh
int 10h
mov al,' '
mov ah,0eh
int 10h
mov al,'x'
mov ah,0eh
int 10h
mov al,' '
mov ah,0eh
int 10h
mov al,'H'
mov ah,0eh
int 10h
mov al,'u'
mov ah,0eh
int 10h
mov al,'g'
mov ah,0eh
int 10h
mov al,'o'
mov ah,0eh
int 10h
ret
No hay comentarios:
Publicar un comentario