8051微處理器中兩個8位數的乘法程式
在這裡,我們將學習如何使用8051微控制器來乘以兩個8位數。暫存器A和B將用於乘法運算。乘法運算不能使用其他暫存器。乘法的結果可能超過8位大小。因此,高位位元組儲存在暫存器B中,低位位元組在乘法運算後將儲存在累加器A中。
我們將兩個數FFH和FFH分別放在20H和21H地址中,相乘後的結果將儲存在30H和31H地址中。
| 地址 | 值 |
|---|---|
| | … |
| 20H | FFH |
| 21H | FFH |
| | … |
| 30H | 00H |
| 31H | 00H |
| | … |
程式
MOV R0, #20H ; set source address 20H to R0 MOV R1, #30H ; set destination address 30H to R1 MOV A, @R0 ; take the first operand from source to register A INC R0 ; Point to the next location MOV B, @R0 ; take second operand from source to register B MUL AB ; Multiply A and B MOV @R1, B ; Store higher order byte to 30H INC R1 ; Increase R1 to point to the next location MOV @R1, A ; Store lower order byte to 31H HALT: SJMP HALT ; Stop the program
8051提供**MUL AB**指令。使用此指令可以完成乘法運算。在其他一些微處理器(如8085)中,沒有MUL指令。在該微處理器中,我們需要使用重複的ADD操作來獲得乘法的結果。
當結果小於255時,溢位標誌OV為低,否則為1。
輸出
| 地址 | 值 |
|---|---|
| | … |
| 20H | FFH |
| 21H | FFH |
| | … |
| 30H | FEH |
| 31H | 01H |
| | … |
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP