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 |
這是素數
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP