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+瀏覽量

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.