ALUNO:
TRABALHO 5:
SEQ
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
END.
0e
0d
1e
1d
2e
2d
3e
3d
4e
4d
5e
5d
6e
6d
7e
7d
8e
8d
9e
9d
10e
10d
11e
11d
12e
12d
13e
13d
28
29
30
31
32
33
34
35
36
37
14e
14d
15e
15d
16e
16d
17e
17d
18e
18d
UNIVERSIDADE DE PERNAMBUCO
ESCOLA POLITCNICA DE PERNAMBUCO
DANIEL ANJOS E SILVA
Elabore um programa que solicite ao usurio certo nmero e o
programa verifique
se o mesmo PRIMO usando o conjunto de 21 instrues do IAS (*)
mais as instrues
READ/WRIT. Exiba os resultados e teste nmero < 0 emitindo
mensagens. Aps clculo permita mais clculos perguntando ao
usurio se quer sair ou
fazer novo clculo.
INSTRUO
WRIT "PROGRAMA VERIFICADOR DE NUMERO PRIMO"
WRIT "DIGITE UM NUMERO INTEIRO:"
READ M(501)
LOAD -M(501)
JUMP+ M(16,0:19)
WRIT "CALCULANDO, AGUARDE......"
WRIT "....VERIFICANDO O BANCO DADOS...."
READ M(502),2
READ M(503),1
LOAD M(501)
DIV M(502)
STOR M(510)
LOAD M(502)
ADD M(503)
STOR M(502)
LOAD -M(510)
WRIT "CALCULANDO, AGUARDE......"
JUMP +M(4,20:39)
LOAD M(502)
SUB M(501)
STOR M(502)
LOAD M(501)
SUB M(502)
STOR M(504)
LOAD -M(504)
JUMP +M(14,0:19)
WRIT "O NUMERO INFORMADO NO E PRIMO"
JUMP M(16,20:39)
WRIT "O NUMERO:"
WRIT M(501)
WRIT "E UM NUMERO PRIMO"
JUMP M(16,20:39)
WRIT "O NUMERO DIGITADO E INVALIDO, POIS E MENOR OU IGUAL A ZERO"
WRIT "REINICIAR O PROGRAMA (SIM - 0 / NO - 1)"
READ M(999)
LOAD -M(999)
JUMP+ M(0,20:39)
WRIT "FIM DO PROGRAMA"
OBSERVAO
ARMAZENA O NUMERO (MEM(501) <= N)
AC <= -N
Se N < 0 pula para a posicao de memoria (16e), DEPOIS REINICIA O PROGRAMA
DIVIDENDO -> MEM(510) <= 1 / DECREMENTADOR - UTILIZADO PARA VERIFICAR SE O NUM PRIMO
INCREMENTADOR
AC <= MEM(501) = N
N / DIVIDENDO -> AC <= NUMERADOR RESTO & MQ <= QUOCIENTE
o numerador do resto
MEM(510) <= NUMERADOR RESTO
AC <= DIVIDENDO
AC <= DIVIDENDO + INCREMENTADOR
MEM(502) <= AC
AC <= -NUMERADOR RESTO
SE RESTO != 0 CONTINUA LOOP
AC <= DECREMENTADOR
o DECREMENTADOR na ultima op
AC <= DECREMENTADOR - 1
MEM(502) <= AC
AC <= N
AC <= N - DECREMENTADOR ( SE N FOR PRIMO, DECREMENTADOR = N)
MEM(504) <= CONTAGEM DE LOOP
AC <= - CONTAGEM
SE 0 -> NUMERO PRIMO, SE NO NO PRIMO
PULA PARA REINICIO DO PROGRAMA
MOSTRA NUMERO DIGITADO
PULA PARA REINICIO DO PROGRAMA
GUAL A ZERO"
ARMAZENA A RESPOSTA NA POSICAO DE MEMORIA (999)
CARREGA EM AC O NEGATIVO DE (999)
SE AC >= 0 VOLTA PARA O COMECO DO PROGRAMA
E O NUM PRIMO
umerador do resto fica em ACC e o quociente da diviso em MQ
DOR na ultima operao do loop assumiu o valor de N+1