8085程式:陣列中數字求和
在這個程式中,我們將學習如何使用8085微處理器新增資料塊。
問題陳述
編寫8085組合語言程式,對陣列中的數字進行求和,其中陣列大小為N,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 | 當C標誌被設定時,增加E | |
F00E | 0D | SKIP | DCR C | 將C暫存器減1 |
F00F | 23 | INX H | 指向下一個位置 | |
F010 | C2, 09, F0 | JNZ LOOP | 當零標誌為假時,跳轉到LOOP | |
F013 | 21, 00, 90 | LXI H,9000H | 載入地址以儲存結果 | |
F016 | 77 | MOV M,A | 儲存累加器內容 | |
F017 | 23 | INX H | 增加HL對 | |
F018 | 73 | MOV M,E | 儲存進位 | |
F019 | 76 | HLT | 結束程式 |
輸出
地址 | 資料 |
---|---|
. . . | . . . |
9000 | DC |
9001 | 03 |
. . . | . . . |
廣告