8085程序判断数字是否为素数


在这个程序中,我们将了解如何使用8085来检查一个数字是否为素数。

问题陈述

编写8085汇编语言程序,以检查给定数字是否为素数。

讨论

这里的方法略有不同。我们实际上是在计算唯一因子的数量。对于素数,因子只有两个:1和它本身。所以,如果结果是02H,则它是素数,否则不是素数。由于没有除法运算,我们必须通过重复减法来执行除法。

输入

地址
数据
F100
07

 

地址
数据
F100
FF

 

地址
数据
F100
2F

 

流程图

 

程序

地址
十六进制代码
标签
助记符
注释
F000
21, 00, F1
 
LXI H,F100
指向F100获取数字
F003
FE
 
MOV A,M
将数字加载到累加器
F004
0E
 
MVI C,00
清零C寄存器
F006
57
 
MOV D,A
将A复制到D
F007
5F
 
MOV E,A
将A复制到E
F008
42
L2
MOV B,D
将D加载到B
F009
B8
L1
CMP B
比较B与A
F00A
DA, 11, F0
 
JC LABEL
如果产生进位,跳转到LABEL
F00D
90
 
SUB B
从A减去B
F00E
C2, 09, F0
 
JNZ L1
跳转到L1
F011
FE, 00
LABEL
CPI 00
比较A与00H
F013
C2, 17, F0
 
JNZ SKIP
如果Z=0,跳转到SKIP
F016
0C
 
INR C
将C加1
F017
7B
SKIP
MOV A,E
再次将E加载到A
F018
15
 
DCR D
将D减1
F019
C2, 08, F0
 
JNZ L2
如果Z=0,跳转到L2标签
F01C
79
 
MOV A,C
将C加载到A
F01D
32, 01, F1
 
STA F101
将结果存储到F101
F020
76
 
HLT
终止程序

 

输出

地址
数据
F150
02

这是素数

地址
数据
F150
08

这不是素数

地址
数据
F150
02

这是素数

 

 

 

 

 

 

 

 

更新于: 2019年7月30日

3K+浏览量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告