单片机汇编子程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

; 1, 以下的程序是一些关于数据转换与计算的子程序.但由于本人现在很忙,仅测试了

; 其中的很少一部分.本人不保证所有的程序都是正确的,并且由于使用不同的编译器,

; 即使是本人已测试过的程序,您也可能要修改一些指令.

; 2. 一旦将其整理测试完毕,将会免费发送.

; 3. 若有任何问题,与TongZhongZhi@联系

;******************************************************************** 函数名说明

BIN3toBCD4 三字节二进制整数--->>BCD码四字节转换

SIBITD 单字节二进制整数-->>BCD码转换子程序

ADDM1 三字节加法子程序并显示和值

SUBM 多字节减法子程序

SUBM4 四字节乘四字节乘法子程序

CHU3 五字节除五字节除法子程序

CHU4 双字节除单字节除法子程序

CHU5 双字节除单字节商为双字节除法子程序

CHU6 三字节除单字节商为三字节除法了程序

CHU7 三字节除双字节商为三字节除法子程序

CHU8 四字节除双字节商为二字节除法子程序

CHU9 三字节或二字节的倒数结果为三字节除法子程序

CHU10 带符号双字节除单字节除法子程序

SQRT 双字节平方根子程序

BCDAD1 单字节BCD码加法子程序

BCDAD2 四字节BCD码加法子程序

BCDSUB3 单字节BCD码减法子程序

DSUB2 四字节BCD码减法子程序

BCDSUB4 单字节BCD码乘法子程序

DCHFA 十进制数8位乘8位(四字节BCD码乘四字节BCD码)乘法子程序DCHU1 单字节BCD码除法子程序

DCHU2 四字节BCD码除法子程序

DSQR1 单字节BCD码平方根子程序

DSQR2 双字节BCD码平方根子程序

DSQR3 三字节BCD码平方根子程序

ASBIN1 ASCII码--->>二进制数转换子程序

EXASC1 十六进制--->>ASCII码转换子程序

BCDAS1 BCD码--->>ASCII码转换子程序

BINBCD 双字节二进制-->>三字节BCD码转换子程序

DTOB4 四位BCD码--->>十六位二进制数转换子程序

BINASC 二进制数--->>ASCII码字符串转换子程序

BCH 二进制数--->>十六进制数转换子程序

ASCBCD ASCII码-->>BCD码转换子程序

ASCHEX ASCII码-->>十六进制数转换子程序

BCDBIN BCD码--->>二进制数转换子程序

EXASC3 十六进制数-->>ASCII码转换子程序

;******************************************************************** ;Name: BIN3toBCD4

;Func: 三字节二进制整数--->>BCD码四字节转换(Comped BCD)

;Input: 二进制数人低字节到高字节存放在内部RAM50H,51H,52H单元中

;Output: BCD码人低位到高位分别存放在内部RAM53H,54H,55H,56H单元中;USE: R7-R0, 56H-50H

;******************************************************************** ;PASSED

BIN3toBCD4:

LENG1 EQU 24

LENG2 EQU 4

LENG3 EQU 3

NUMB1 EQU 50H

NUMB2 EQU 53H

;;;For test

MOV 50H, H

MOV 51H, FFH

MOV 52H, FFH

;;;;;;;;;;

ACALL MUBTD

RET

;;LOOP: SJMP LOOP

MUBTD: MOV R0, #NUMB2

MOV R7, #LENG2

CLR A

LOOP1: MOV @R0, A

INC R0

DJNZ R7, LOOP1

MOV R7, #LENG1

LOOP4: MOV R1, #NUMB1

MOV R6, #LENG3

CLR C

LOOP2: MOV A, @R1

RLC A

MOV @R1, A

INC R1

DJNZ R6, LOOP2

MOV R5, #LENG2

MOV R0, #NUMB2

LOOP3: MOV A, @R0

ADDC A, @R0

DA A

MOV @R0, A

INC R0

DJNZ R5, LOOP3

DJNZ R7, LOOP4

MOV R0, 53H

MOV R1, 54H

MOV R2, 55H

MOV R3, 56H

RET ; end of BIN3toBCD4

;******************************************************************** ;____________________________________________________________________ _______

__

; Name: SIBITD

;Func: 单字节二进制整数-->>BCD码转换子程序

;Input: 二进制数放在内部RAM20H单元

;OutPut: 转换后的BCD码高位放在内部RAM22H

;____________________________________________________________________ _______

__

LENG1 EQU 8 ;二进制数位数

LENG2 EQU 2 ;BCD码字节数

NUMB1 EQU 20H ;二进制数地址

NUMB2 EQU 21H ;BCD码首址

ORG 2000H

AJMP MAIN

MAIN: MOV R0, #NMB1

MOV R1, #NUMB2

MOV R7, #LENG1

ACALL SIBTD

SJMP $

SIBTD: CLR A

MOV 21H, A

MOV 22H, A

LOOP3: CLR C

MOV A, @R0

RLC A

MOV @R0, A

MOV R1, #NUMB2

MOV R6, #LENG3

LOOP2: MOV A, #R1

ADDC A, #@R1

DA A

MOV @R1, A

相关文档
最新文档