8085程式,獲取所有D7和D1位都為0的數字
在這裡,我們將學習如何使用8085獲取所有D7和D1位都為0的數字。
問題陳述
編寫8085程式,從一個數組中獲取所有D7和D1位都為0的數字。數字儲存在8001開始,陣列大小儲存在8000。將結果從9000開始儲存。
討論
為了解決這個問題,我們將數字與82H(1000 0010)進行AND運算。如果結果為0,則該數字是可接受的。只有當D7和D1位都為0時,結果才會為0。
輸入
| 地址 | 資料 |
|---|---|
| … | … |
| 8000 | 0A |
| 8001 | E9 |
| 8002 | D3 |
| 8003 | 61 |
| 8004 | AD |
| 8005 | 2A |
| 8006 | 1F |
| 8007 | 5D |
| 8008 | A6 |
| 8009 | A9 |
| 800A | 35 |
| … | … |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| 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 | E6, 82 | | ANI 82H | 將A與82H進行AND運算 |
| F00B | C2, 10, F0 | | JNZ SKIP | 如果A不為0,則跳過 |
| F00E | 12 | | STAX D | 否則將A儲存到DE指向的記憶體中 |
| F00F | 13 | | INX D | 指向下一個位置 |
| F010 | 0D | SKIP | DCR C | 計數器減1 |
| F011 | C2, 07, F0 | | JNZ LOOP | 如果c不為0,則跳轉到LOOP |
| F014 | 76 | | HLT | 終止程式 |
輸出
| 地址 | 資料 |
|---|---|
| … | … |
| 9000 | 61 |
| 9001 | 54 |
| 9002 | 35 |
| … | … |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP