專注電子技術(shù)學習與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

算術(shù)運算指令

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2007年09月17日   【字體:

表 3-3  算術(shù)運算指令

操作碼

目標操作數(shù)

參與運算的操作數(shù)

說     明

Cy

AC

OV

P

ADD A Rn; direct; @Ri; # data

不帶進位加

 

Ö

 

Ö

 

Ö

 

Ö

ADDC

A

Rn; direct; @Ri; # data

帶進位加

SUBB

A

Rn; direct; @Ri; # data

帶借位減

MUL

AB

(A)*(B)

積在(B)(A)

 

0

 

-

 

Ö

 

Ö

DIV

AB

(A)/(B)

商 (A) ,余數(shù) (B)

DA

 A

只對加法作十進制修正

Ö

-

-

Ö

INC

A; Rn; direct; @Ri; DPTR

加一

 

-

 

-

 

-

 

Ö

DEC

A; Rn; direct; @Ri (無DPTR)

減一

*“Ö”表示標志位根據(jù)運算結(jié)果取值,“-”表示對標志位無影響。

 

1.       算術(shù)運算指令的一般性說明

ê          除加1/減1指令外,一般以累加器Acc為目標,且影響標志位。

ê          沒有不帶借位減指令。用SUBB作不帶借位減運算,Cy應(yīng)先清零。

ê          乘法若  積 > 255 , 則OV = 1 ; 除法若  除數(shù) = 0 , 則OV = 1 。

ê          DA  A 指令只對ADD 或ADDC作十進制修正。

ê          無 DEC  DPTR指令。

 

2.          加/減算術(shù)運算指令指令應(yīng)用例

ê          將內(nèi)部RAM中從30H開始存放的10個雙字節(jié)無符號整數(shù)相加,其和送(R5 R4 R3),低字節(jié)在R3。


 


MOV  R0,#30H

MOV  R2,#10

MOV  R3,#0

MOV  R4,#0

MOV  R5,#0

LOOP:MOV  A,@R0

ADD  A, R3

MOV  R3,A

INC  R0

MOV  A,@R0

ADDC  A,R4

MOV  R4,A

INC  R0

MOV  A,#0

ADDC  A,R5

MOV  R5,A

DJNZ  R2,LOOP

 


ê          將內(nèi)部RAM中從30H開始存放的10個4位十進制正整數(shù)(壓縮BCD碼)相加,其和送(R5 R4 R3),低字節(jié)在R3。

 

ê      比較A與B中的無符號數(shù),大數(shù)存B。

MOV  R2,A

CLR  C       ;確保C = 0

SUBB  A,B

JC  DONE     ;若有借位,A<B,轉(zhuǎn)DONE 結(jié)束。

MOV  B,R2  ;沒有借位,A>B,將大數(shù)存B。

DONE: ¼¼


 

3.          乘/除算術(shù)運算指令指令應(yīng)用例

ê          雙字節(jié)數(shù)乘單字節(jié)數(shù):雙字節(jié)數(shù)在(R3R4),單字節(jié)數(shù)在(R2),積送(R3R4R5)


MOV  A,R2   ;

MOV  B,R4   ;

MUL  AB      ; (R4)´(R2)

MOV  R5,A   ;

MOV  R4,B   ;

MOV  A,R2   ;

MOV  B,R3   ;

MUL  AB      ; (R3)´(R2)

ADD  A,R4   ;

MOV  A,#0   ;

ADDC  A,B   ;

MOV  R3,A   ;

轉(zhuǎn)載須保留地址:http://www.torrancerestoration.com/mcu/281.html

 

ê          單字節(jié)二進制數(shù)轉(zhuǎn)十進制(BCD)數(shù):二進制數(shù)在A,十進制數(shù)存入(R2R3)


MOV  B,#10

DIV  AB      ; 除十, 余個位

MOV  R3,B  ; 個位存R3

MOV  B,#10

DIV  AB     ; 再除十, 余十位

MOV  R2,A ; 商為百位,存R2

MOV  A,B

SWAP  A    ;

ADD  A,R3 ; 十位與個位合并

MOV  R3,A;

這些算術(shù)運算指令你應(yīng)該了解了吧

關(guān)閉窗口

相關(guān)文章