8085程式,用於獲取陣列中介於3CH和64H之間的所有數字
在這裡,我們將瞭解如何使用8085從陣列中獲取所有介於3CH和64H之間的數字。
問題陳述
編寫8085程式,從陣列中獲取所有大於或等於3CH且小於64H的數字。數字從8001開始儲存,8000儲存陣列的大小,結果將從9000開始儲存。
討論
為了解決這個問題,我們將從記憶體中獲取數字。然後將其與3C進行比較。如果進位標誌被設定,則表示該數字小於3C,因此只需跳過它。否則將其與64H進行比較,現在如果進位標誌未設定,則表示該數字較大,因此跳過它,否則我們將數字儲存到正確的位置。
輸入
| 地址 | 資料 |
|---|---|
| … | … |
| 8000 | 0A |
| 8001 | 89 |
| 8002 | 56 |
| 8003 | 23 |
| 8004 | 48 |
| 8005 | 3D |
| 8006 | 2A |
| 8007 | 4F |
| 8008 | 59 |
| 8009 | 67 |
| 800A | 72 |
| … | … |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | | LXI H,8000 | 載入陣列的大小 |
| F003 | 4E | | MOV C,M | 將大小儲存到C中 |
| F004 | 11, 00, 90 | | LXI D,9000 | 載入目標地址 |
| F007 | 23 | LOOP | INX H | 指向下一個位置 |
| F008 | 7E | | MOV A,M | 將記憶體中的數字取到A中 |
| F009 | FE, 3C | | CPI 3CH | 與3C進行比較 |
| F00B | DA, 15, F0 | | JC SKIP | 如果數字小,則跳過 |
| F00E | FE, 64 | | CPI 64H | 否則與64H進行比較 |
| F010 | D2, 15, F0 | | JNC SKIP | 如果數字大,則跳過 |
| F013 | 12 | | STAX D | 否則將A儲存到DE指向的記憶體中 |
| F014 | 13 | | INX D | 指向下一個位置 |
| F015 | 0D | SKIP | DCR C | 將計數器減1 |
| F016 | C2, 07, F0 | | JNZ LOOP | 如果c不為0,則跳轉到LOOP |
| F019 | 76 | | HLT | 終止程式 |
輸出
| 地址 | 資料 |
|---|---|
| … | … |
| 9000 | 56 |
| 9001 | 48 |
| 9002 | 3D |
| 9003 | 4F |
| 9004 | 59 |
| … | … |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP