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暫存器中。 |
廣告