8085程式:加N個8位數
在本程式中,我們將瞭解如何使用 8085 微處理器新增資料塊。
問題陳述
編寫 8085 組合語言程式,以新增 N 個 1 位元組數字。N 的值已提供。
討論
在這個問題中,我們使用地址 8000H 來儲存塊的長度。主塊從地址 8010H 開始儲存。我們將結果儲存在地址 9000H 和 9001H。9000H 儲存低位元組,9001H 儲存高位元組。
我們反覆從記憶體中獲取數字,然後將其與累加器相加,並在進位標誌設定時增加暫存器 E 的內容。最初,E 被清零。
輸入
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8000 | 08 |
| . . . | . . . |
| 8010 | AF |
| 8011 | 2E |
| 8012 | 7C |
| 8013 | 81 |
| 8014 | 2C |
| 8015 | BF |
| 8016 | FB |
| 8017 | 1C |
| . . . | . . . |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 | |
|---|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H, 8000H | 載入地址以獲取數字的計數 | ||
| F003 | 4E | MOV C, M | 將計數值載入到 C 中 | ||
| F004 | 21,10, 80 | LXI H, 8010H | 將 HL 載入到起始地址 | ||
| F007 | AF | XRA A | 清零累加器 | ||
| F008 | 5F | MOV E, A | 也清零 E 暫存器 | ||
| F009 | 86 | LOOP | ADD M | 將記憶體內容與累加器相加 | |
| F00A | D2, 0E, F0 | JNC SKIP | 當進位為假時,跳過下一個任務 | ||
| F00D | 1C | INR E | 增加 E,當 C 標誌被設定時 | ||
| F00E | 0D | SKIP | DCR C | 將 C 暫存器減 1 | |
| F00F | 23 | INX H | 指向下一個位置 | ||
| F010 | C2, 09, F0 | JNZ LOOP | 當零為假時,轉到 LOOP | ||
| F013 | 21, 00, 90 | LXIH, 9000H | 載入地址以儲存結果 | ||
| F016 | 77 | MOV M, A | 儲存累加器內容 | ||
| F017 | 23 | INX H | 增加 HL 對 | ||
| F018 | 73 | MOV M, E | 儲存進位 | ||
| F019 | 76 | HLT | 終止程式 | ||
輸出
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 9000 | DC |
| 9001 | 03 |
| . . . | . . . |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP