Ir ao conteúdo

Programa que verifica número primo em Assembly ???


Bruno91

Posts recomendados

Postado

Pessoal estou na correria e preciso fazer um trabalho pra faculdade.

Preciso fazer um programa em Assembly (para 8086) que verifica se um numero (guardado na posição [200]) é primo ou não, se ele for primo vou guardar o valor "1" na posição de memoria [201] senão vou guardar "0".

Começaria assim:

ORG 100 ;

MOV Dx , [200] ; Ax recebe o valor que está dentro da posição 200.

.

.

Dai em diante não sei como analisar o numero.

  • 2 meses depois...
Postado

já fiz aí vai pra compartilhar :

	ORG	100h	; IP <- 100h
MOV Bx, [500h] ; Bx <- N
MOV Cx, 2h ; Cx <- 2
CMP BX, 2h ; Compara N c/ 2
JE pto5 ; Se N = 2 vá pto 5
CMP Bx, 2h ; Compara N c/ 2
JB pto4 ; Se N < 2 vá pto 4
pto3: MOV Ax, Bx ; Ax <- N
MOV Dx, 0 ; Dx <- 0
CMP Bx, Cx ; Compara N c/ Cx
JE pto1 ; Se N = Cx vá pto 1
DIV Cx ; Resultado = (Dx:Ax) com resto = Dx
CMP Dx, 0 ; Compara resto c/ 0
JNE pto2 ; Se resto não é 0 vá pto 2
INC SI ; SI <- SI + 1
pto2: INC Cx ; Cx <- Cx + 1
JMP pto3 ; Vá p/ pto 3
pto1: CMP SI, 0 ; Compara SI c/ 0
JE pto5 ; Se SI = 0 vá pto 5
JMP pto4 ; Senão vá p/ pto 4
pto5: MOV Ax, 1h ; Ax <- 1 (é primo)
JMP pto6 ; Vá p/ pto 6
pto4: MOV Ax, 0 ; Ax <- 0 (não é primo)
pto6: MOV [502h], Ax ; [502] <- Sit.
MOV Ax, 0
INT 21h ; Finaliza

Estava esquecendo:

Os valores serão guardados na posição 502 de memória:

Sit. (Primo) guarda o valor 1.

Sit. (não Primo) guarda o valor 0.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...