Red de conocimiento informático - Conocimiento sistemático - Programación en lenguaje ensamblador ---- Determinación de números primos

Programación en lenguaje ensamblador ---- Determinación de números primos

;Originalmente quería escribir esto, ¡pero lo copié directamente después de encontrarlo en línea! ¡Necesitas cambiar la salida!

SEGMENTO DE PILA PARA PILA 'Pila'

DW 32 DUP(0)

EXTREMOS DE PILA

------ ----------------------------------

DATASEG SEGMENT PARA 'Datos '

mess1 db 'Ingrese un número n(gt; 2):', 0ah, 0dh, '$'

mess2 db 'sí, lo es.', 13, 10. '$ '

mess3DB' no lo es.

DATASEG TERMINA

;--------------------------------- -----------

SEGMENTO CODESEG PARA 'Código'

PROC PRINCIPAL FAR

ASUME SS: STACK, DS: DATASEG, CS: CODESEG

mov ax, dataseg

mov ds, ax

inicio:

lea dx, mess1

mensaje de llamada

llamada a putin

y ax, 000fh Dado que el número ingresado hace que el valor de retorno esté en los 4 bits inferiores de AL, entonces...

mov num, ax

cmp num, 2; determina si es menor que 2

jle start

dec ax; AX, si es el número -1, ¡obtendrás resultados incorrectos!

mov cx, ax; dar tiempos de bucle CX

mm:

cmp cx, 1

je isss

mov dx, 0; resto inicial

mov ax, num

mov bx, cx

div bx

cmp dx, 0

je notss

loop mm

isss:

lea dx, mess2

mensaje de llamada

jmp _out; salta al juzgar el resultado

notss:

lea dx, mess3

mensaje de llamada

jmp _out; salta cuando se obtiene el resultado

solicitud de procesamiento de salida

mov ah, 09h

int 21h

ret

solicitud final

putin proc; entrada de número

mov ah, 1

int 21h

ret; aquí termina la ejecución, también debe haber RET

putin endp

_out:

mov ax, 4c00h; el programa debe tener un final normal, ¿no?

int 21h

ENDP PRINCIPAL;

CODESEG TERMINA

FIN PRINCIPAL