导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→紧急求助:谁有多字节BCD码的乘除法 发一个给我 谢[zphere]

 *第11838篇: 紧急求助:谁有多字节BCD码的乘除法 发一个给我 谢

  
楼 主:zphere 2003年5月12日20:04
 紧急求助:谁有多字节BCD码的乘除法 发一个给我 谢
email:zp82913@sina.com
  
2楼:langren0468 2003年5月12日20:10
 看看这个程序!
标号: BCDA 功能:多字节BCD码加法
入口条件:字节数在R7中,被加数在[R0]中,加数在[R1]中。
出口信息:和在[R0]中,最高位进位在CY中。
影响资源:PSW、A、R2 堆栈需求: 2字节
BCDA: MOV A,R7 ;取字节数至R2中
MOV R2,A
ADD A,R0 ;初始化数据指针
MOV R0,A
MOV A,R2
ADD A,R1
MOV R1,A
CLR C
BCD1: DEC R0 ;调整数据指针
DEC R1
MOV A,@R0
ADDC A,@R1 ;按字节相加
DA A ;十进制调整
MOV @R0,A ;和存回[R0]中
DJNZ R2,BCD1 ;处理完所有字节
RET

  
3楼:zphere 2003年5月12日20:14
 我要乘除法的,有吗?
多字节BCD码加法我有,请问有没有乘除法的,谢谢
  
4楼:dreamhee 2003年5月12日20:29
 难道乘除法不可以转化为加法吗?!
  
5楼:langren0468 2003年5月12日20:28
 只有乘十!
标号: BRLN 功能:多字节BCD码左移十进制一位(乘十)
 
入口条件:字节数在R7中,操作数在[R0]中。
出口信息:结果仍在[R0]中,移出的十进制最高位在R3中。
影响资源:PSW、A、R2、R3 堆栈需求: 2字节
BRLN: MOV A,R7 ;取字节数至R2中
MOV R2,A
ADD A,R0 ;初始化数据指针
MOV R0,A
MOV R3,#0 ;工作单元初始化
BRL1: DEC R0 ;调整数据指针
MOV A,@R0 ;取一字节
SWAP A ;交换十进制高低位
MOV @R0,A ;存回
MOV A,R3 ;取低字节移出的十进制高位
XCHD A,@R0 ;换出本字节的十进制高位
MOV R3,A ;保存本字节的十进制高位
DJNZ R2,BRL1 ;处理完所有字节
RET
 
  
6楼:Kuang-chingTsui 2003年5月12日20:58
 点子:
BCD Code——>  Hex.然后用C写,结果——>  BCD。如果你不会用C赶快学,准赶趟。

>>>>>>对该主题发表你的看法

本主题贴数6,分页: [第1页]


[上一篇主题]:请问用cpld或fpga搞系统开发,属于嵌入式系统吗?

[下一篇主题]:菜鸟的问题