6800程式設計示例
在本節中,我們將學習如何使用摩托羅拉M6800微處理器來新增多位元組數字。
多位元組數字相加
在這個例子中,我們使用4位元組數字(56 2F 7A 89)16和(21 FB A9 AF)16
在記憶體中,首先,我們將位元組計數儲存起來,然後將數字(從最低有效位元組到最高有效位元組)儲存在不同的段中。所以資料儲存後,記憶體結構如下所示
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | 89H |
| 5051H | 7AH |
| 5052H | 2FH |
| 5053H | 56H |
| . . . | |
| 5070H | AFH |
| 5071H | A9H |
| 5072H | FBH |
| 5073H | 21H |
| . . . |
現在,我們編寫一個程式來將這兩個4位元組數字相加,並將結果儲存在5090H開始的位置。
程式
CLC LDX#$5050 LOOP: LDAA $0, X ADCA $20, X STAA $40, X INX DEC$5000 BNELOOP CLR$40, X BCCDONE INC$40, X DONE: WAI
輸出
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | 89H |
| 5051H | 7AH |
| 5052H | 2FH |
| 5053H | 56H |
| . . . | |
| 5070H | AFH |
| 5071H | A9H |
| 5072H | FBH |
| 5073H | 21H |
| . . . | |
| 5090H | 38H |
| 5091H | 24H |
| 5092H | 2BH |
| 5093H | 78H |
| 5094H | 00H |
塊交換程式
現在我們將學習如何使用M6800微處理器交換兩個不同塊中每個元素的內容。
每個塊中的專案數量在5000H位置給出,塊位於5050H和5070H位置。
所以在交換專案之前,記憶體看起來像這樣
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | 89H |
| 5051H | 7AH |
| 5052H | 2FH |
| 5053H | 56H |
| . . . | |
| 5070H | AFH |
| 5071H | A9H |
| 5072H | FBH |
| 5073H | 21H |
| . . . |
現在,我們編寫一個程式來交換塊內容。
程式
LDX#$5050 LOOP: LDAA 0, X LDAB $20 X STAA $20, X STAB $0, X INX DEC$5000 BNELOOP WAI
輸出
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | AFH |
| 5051H | A9H |
| 5052H | FBH |
| 5053H | 21H |
| . . . | |
| 5070H | 89H |
| 5071H | 7AH |
| 5072H | 2FH |
| 5073H | 56H |
| . . . |
移動資料塊
讓我們來看另一個M6800微處理器程式的例子。該程式用於將一個數據塊移動到另一個位置。有一個假設,源和目標之間有足夠的距離。所以塊不重疊。基本上,塊移動並非真正的移動,而是將資料複製到其他位置。
塊中的專案數量在5000H位置給出,塊位於5050H位置。
所以在移動之前,記憶體中的專案看起來像這樣。
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | 89H |
| 5051H | 7AH |
| 5052H | 2FH |
| 5053H | 56H |
| . . . |
現在,我們編寫一個程式將塊內容移動到其他位置。
程式
LDX#$5050 LOOP: LDAA 0, X STAA $20, X INX DEC$5000 BNELOOP WAI
輸出
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | 89H |
| 5051H | 7AH |
| 5052H | 2FH |
| 5053H | 56H |
| . . . | |
| 5070H | 89H |
| 5071H | 7AH |
| 5072H | 2FH |
| 5073H | 56H |
| . . . |
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP