首页
基础教程 | 单片机设计实例 | 常用芯片 | 电子基础
当前位置:单片机教程 >> 单片机设计实例 >> 浏览文章 今天是:
单片机设计实例

算术运算指令

作者:    来源:本站原创    点击数:   更新时间:2007年09月17日   
 

表 3-3 算术运算指令

操作码

目标操作数

参与运算的操作数

说 明

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) ,余数 (B)

DA

A

只对加法作十进制修正

Ö

-

-

Ö

INC

A; Rn; direct; @Ri; DPTR

加一

-

-

-

Ö

DEC

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

减一

*“Ö”表示标志位根据运算结果取值,“-”表示对标志位无影响。

1. 算术运算指令的一般性说明

ê 除加1/减1指令外,一般以累加器Acc为目标,且影响标志位。

ê 没有不带借位减指令。用SUBB作不带借位减运算,Cy应先清零。

ê 乘法若 积 > 255 , 则OV = 1 ; 除法若 除数 = 0 , 则OV = 1 。

ê DA A 指令只对ADD 或ADDC作十进制修正。

ê 无 DEC DPTR指令。

2. 加/减算术运算指令指令应用例

ê 将内部RAM中从30H开始存放的10个双字节无符号整数相加,其和送(R5 R4 R3),低字节在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


ê 将内部RAM中从30H开始存放的10个4位十进制正整数(压缩BCD码)相加,其和送(R5 R4 R3),低字节在R3。

ê 比较A与B中的无符号数,大数存B。

MOV R2,A

CLR C ;确保C = 0

SUBB A,B

JC DONE ;若有借位,A<B,转DONE 结束。

MOV B,R2 ;没有借位,A>B,将大数存B。

DONE: ¼¼


3. 乘/除算术运算指令指令应用例

ê 双字节数乘单字节数:双字节数在(R3R4),单字节数在(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 ;

转载须保留地址:http://www.51hei.com/mcu/281.html

ê 单字节二进制数转十进制(BCD)数:二进制数在A,十进制数存入(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;

这些算术运算指令你应该了解了吧




 
发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口
上一篇:数据传送指令
下一篇:逻辑运算指令
网友评论(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
 >> 推荐文章
单片机USB-ISP下载线制作
自制单片机实验板
单片机一键多功能按键识别设
 >> 阅读排行
keil教程
单片机电子时钟设计
单片机DS18B20水温控制系统
单片机交通灯设计
单片机课程设计
单片机时钟设计
单片机数字钟设计
单片机键盘程序(4×4矩阵式
单片机串口通讯
单片机秒表设计
 >> 相关文章
  • 暂无相关链接
  • 站长:刘兴国 站长信箱:372xcom1@21cn.com
    单片机教程 @ www.51hei.com 2007-2008