Identificar números primos de un arreglo en emu8086 - Código
Encuentra el código utilizado en el video de Identificar números primos de un arreglo en emu8086.
TITLE ESTRUCTURA_BASICA
DATOS SEGMENT
; DECLARAR LAS VARIABLES AQU?
NUMEROS DB 2,255,7,44,43,18,53,22,61,66,71,1
PRIMOS DB 12 DUP(?)
NOPRIMOS DB 12 DUP(?)
;--------------------------------------------------------------------------
DATOS ENDS
PILA SEGMENT
DB 64 DUP(0)
PILA ENDS
CODIGO SEGMENT
INICIO PROC FAR ;NEAR Y FAR
ASSUME DS:DATOS, CS:CODIGO, SS:PILA
PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DATOS
MOV DS, AX
MOV ES, AX
; CODIGO DE NUESTRO PROGRAMA AQUI---------------------------------------------
MOV SI,0
MOV DI,0
MOV AX,0
CICLO:
CMP SI, 12
JE EXIT ;CUANDO SEA 12 VA SALIR AL LLEGAR A ESTE CODIGO
MOV BL, 1
MOV AL, NUMEROS[SI]
CMP AL, 2
JE PARPRIMO
JA PRIMO
JB GUARDARNOPRIMO
PRIMO:
MOV AX, 0
MOV AL, NUMEROS[SI]
INC BL
DIV BL
CMP AH, 0
JE GUARDARNOPRIMO
JA CONTADOR
CONTADOR:
MOV CL, NUMEROS[SI]
SUB CX, 3
JMP PRIMOCORROBORA
PRIMOCORROBORA:
MOV AX, 0
MOV AL, NUMEROS[SI]
INC BL
DIV BL
CMP AH, 0
JE GUARDARNOPRIMO
LOOP PRIMOCORROBORA
GUARDARPRIMO:
MOV AL, NUMEROS[SI]
MOV PRIMOS[DI], AL
INC SI
INC DI
JMP CICLO
PARPRIMO:
MOV PRIMOS[DI], AL
INC SI
INC DI
JMP CICLO
GUARDARNOPRIMO:
MOV AL, NUMEROS[SI]
MOV NOPRIMOS[DI], AL
INC SI
INC DI
JMP CICLO
; REGISTROS DE ENSAMBLADOR
;8086 CPU has 8 general purpose registers, each register has its own name:
; AX - the accumulator register (divided into AH / AL).
; BX - the base address register (divided
; CX - the data register (divided into DH / DL)
; SI - source index register.
; DI - destination index register.
; BP - base pointer.
; SP - stack pointer.
;-----------------------------------------------------------------------------
EXIT:
RET
INICIO ENDP
CODIGO ENDS
END INICIO