查詢只出現一次的元素的8085程式
在這個程式中,我們將學習如何在元素陣列中查詢只出現一次的數字。
問題陳述
編寫8085組合語言程式,查詢元素陣列中只出現一次的數字。陣列大小儲存在F100地址;數字從F101地址開始儲存。結果將儲存在F150。
討論
這個問題背後的邏輯很簡單。儘管在某些情況下可能會找到一些錯誤的結果。如果只有一個數字出現一次,而其餘數字出現偶數次,則可以找到該數字。
我們對數字進行異或運算。如果一個數字已經存在,並且我們用相同的數字對其進行異或運算,則結果為0。因此,如果相同的數字出現偶數次,我們可以得到0。在累積異或運算之後,最終數字將是頻率為一的那個數字。
輸入
| 地址 | 資料 |
|---|---|
. . . | . . . |
| F100 | 05 |
| F101 | 0C |
| F102 | 0A |
| F103 | 01 |
| F104 | 01 |
| F105 | 0C |
. . . | . . . |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 21, 00, F1 | | LXI H,F100 | 指向獲取數字計數的地址 |
| F003 | AF | | XRA A | 清零累加器 |
| F004 | 4E | | MOV C,M | 將計數從記憶體載入到C暫存器 |
| F005 | 23 | | INX H | 指向下一個位置 |
| F006 | 46 | LOOP: | MOV B,M | 將記憶體內容載入到B暫存器 |
| F007 | A8 | | XRA B | 將B暫存器與累加器進行異或運算 |
| F008 | 23 | | INX H | 指向下一個位置 |
| F009 | 0D | | DCR C | C暫存器減1 |
| F00A | C2, 06, F0 | | JNZ LOOP | 如果Z標誌位為0,則跳轉到LOOP |
| F00D | 32, 50, F1 | | STA F150 | 將數字儲存到F150 |
| F010 | 76 | | HLT | 結束程式 |
輸出
| 地址 | 資料 |
|---|---|
. . . | . . . |
| F150 | 0A |
. . . | . . . |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP