SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: mr1234 en Domingo 19 de Junio de 2005, 04:37
-
alguien me puede pasar un programa en nasm q tire los primeros 30 nros primos.. por favor?? tengo una rutina q me devuelve en ax un 1 o un 0 si es primo o no. pero no se como imprimir ... aca dejo la rutina
PROCPRIMO:
push bp
mov bp,sp
mov si,[bp+4] ;saca el nro de la pila
mov bx,0002
BUCLE:
xor dx,dx
mov ax,si
cmp ax,bx
je PRIMO
div bx
or dx,dx
jz NOPRIMO
inc bx
jmp BUCLE
PRIMO:
mov ax,0001
jmp FIN
NOPRIMO:
xor ax,ax
FIN:
pop bp
ret
-
http://www33.brinkster.com/vlaye/software/.../programas.html (http://www33.brinkster.com/vlaye/software/simuproc/programas.html)
Mira si te sirve.
Encontre este otro no se si sirva.
Si quieres hacer un bucle dale a CX el valor 30 y lo decrementas con LOOP
NOP
MOV 35,3D
LDT
MOV 34,AX
MOV AX,34
CMP 35
JME 32
MOV AX,35
CMP 3B
JMA D
MOV AX,35
EAP
JMP 30
MOV AX,35
DIV 3A
MOV AX,BX
CMP 3C
JMA 13
JMP 30
MOV 36,3B
MOV 38,3D
MOV AX,38
CMP 37
JEQ 23
MOV AX,37
INC AX
CMP 38
JEQ 23
MOV 37,38
MOV AX,35
DIV 38
ADD 38
DIV 3A
MOV 38,AX
JMP 15
MOV AX,37
CMP 36
JME 2E
MOV AX,35
DIV 36
MOV AX,BX
CMP 3C
JEQ 30
INC 36
INC 36
JMP 23
MOV AX,35
EAP
INC 35
JMP 04
HLT