8051算術指令組
在8051微控制器中,算術指令組共有24條不同的指令,總共有64個操作碼。進位標誌(CY)、輔助進位標誌(AC)和溢位標誌(OV)會根據ADD、ADDC、SUBB等指令的結果而變化。乘法和除法指令會清除進位標誌,並且不影響輔助進位標誌。乘法執行後,如果結果大於FFH,則溢位標誌為1,否則為0。類似地,除法執行後,如果除數B的內容在除法前為00H,則溢位標誌為1,否則為0。DA A(十進位制調整累加器)指令隻影響進位標誌。
在下表中,我們將看到指令助記符、位元組數、執行時間(以機器週期為單位)、操作碼數量等。
| 助記符 | 位元組數 | 執行時間 | 操作碼數量 |
|---|---|---|---|
| ADD A, Rn | 1 | 1 | 8 |
| ADD A, a8 | 2 | 1 | 1 |
| ADD A, @Ri | 1 | 1 | 2 |
| ADD A, #d8 | 2 | 1 | 1 |
| ADDC A, Rn | 1 | 1 | 8 |
| ADDC A, a8 | 2 | 1 | 1 |
| ADDC A, @Ri | 1 | 1 | 2 |
| ADDC A, #d8 | 2 | 1 | 1 |
| SUBB A, Rn | 1 | 1 | 8 |
| SUBB A, a8 | 2 | 1 | 1 |
| SUBB A, @Ri | 1 | 1 | 2 |
| SUBB A, #d8 | 2 | 1 | 1 |
| INC A | 1 | 1 | 1 |
| INC Rn | 1 | 1 | 8 |
| INC a8 | 2 | 1 | 1 |
| INC @Ri | 1 | 1 | 2 |
| DEC A | 1 | 1 | 1 |
| DEC Rn | 1 | 1 | 8 |
| DEC a8 | 2 | 1 | 1 |
| DEC @Ri | 1 | 1 | 2 |
| INC DPTR | 1 | 2 | 1 |
| MUL AB | 1 | 4 | 1 |
| DIV AB | 1 | 4 | 1 |
| DA A | 1 | 1 | 1 |
示例
| 序號 | 指令及說明 |
|---|---|
| 1 | ADD A, 32H 這是一個ADD A, #d8型別的指令。將立即數32H加到暫存器A中。結果也儲存在A中。 |
| 2 | ADDC A, @R1 這是一個ADDC A, @Ri型別的指令。這意味著將暫存器R1指向的內部RAM位置上的內容加到A中。 |
| 3 | SUBB A, R5 這是一個SUBB A, Rn型別的指令。SUBB代表帶借位的減法。因此,將R5的內容從A中減去。 |
| 4 | INC 40H 這是一個INC a8型別的指令。這裡將地址為40H的區域性RAM中的內容加1。 |
| 5 | INC DPTR 它可以將DPTR的內容加1。此指令需要兩個機器週期來執行。 |
| 6 | MUL AB 此指令用於將暫存器A和B的內容相乘。16位結果將儲存在B和A暫存器中。B將儲存高位位元組,A將儲存低位位元組。 |
| 7 | DIV AB 此指令用於將A暫存器的內容除以B暫存器的內容。8位商儲存到A暫存器中,8位餘數儲存到B暫存器中。 |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP