浮點(diǎn)數(shù)保存代碼
發(fā)布時(shí)間:2007/4/23 0:00:00 訪問次數(shù):1969
;程序說明:浮點(diǎn)數(shù)變?yōu)閴嚎sBCD碼,保存在以數(shù)組中
; 第1字節(jié)的位7:0正,1負(fù).位6:0(位5--0代表小數(shù)點(diǎn)前的位數(shù)),1(位5--0代表小數(shù)
點(diǎn)后0的位數(shù))
; 2--4字節(jié)為壓縮BCD碼,有效位為7位,3個(gè)半字節(jié),最后半個(gè)字節(jié)請(qǐng)使用者自行放
棄
; 程序占用資源PSW,A,B,DPTR,R0--R7,SP深度6,RAM 5個(gè)放數(shù)據(jù)
; keil 兼容,調(diào)用KEIL 的FPMUL子程序。
;程序作者:*************陳遠(yuǎn)征**************
;目 的:追求更快的執(zhí)行速度,與最小的程序代碼
;發(fā)布時(shí)間:2003--05--08
;編寫背景:精通匯編,研究C51半個(gè)月。身感C51方便中的不便
; 研究了幾種匯編及KEIL的浮點(diǎn)算法,特做此程序.
;聲 明:轉(zhuǎn)載時(shí)請(qǐng)保留以上的信息
C程序:
extern float ftod(float i);
unsigned char cyz[5];
main(){
float i=1234.567;
ftod(i);
while(1);
}
匯編程序:
PUBLIC _FTOD ;程序段
FTODP SEGMENT CODE ;入口地址
RSEG FTODP ;程序段
EXTRN CODE (?C?FPMUL)
EXTRN DATA (CYZ)
_FTOD: ;參數(shù)傳遞在R4--R7中,浮點(diǎn)數(shù)IEEE標(biāo)準(zhǔn)seeeeeee emmmmmmm
mmmmmmmm mmmmmmmm
FTOD:
MOV A,R4 ;保存數(shù)符
RLC A
CLR A
RRC A
MOV CYZ,A
MOV A,R4 ;取絕對(duì)值
CLR ACC.7
MOV R4,A
ORL A,R5
JNZ FCMP_1E10
MOV CYZ,#0 ;數(shù)值為0
MOV CYZ+1,#0
MOV CYZ+2,#0
MOV CYZ+3,#0
MOV CYZ+4,#0
RET
FCMP_1E10:
MOV DPTR,#YUANZHENG_DE10
LCALL FR0DPTR ;數(shù)值裝入R0--R3
&n
;程序說明:浮點(diǎn)數(shù)變?yōu)閴嚎sBCD碼,保存在以數(shù)組中
; 第1字節(jié)的位7:0正,1負(fù).位6:0(位5--0代表小數(shù)點(diǎn)前的位數(shù)),1(位5--0代表小數(shù)
點(diǎn)后0的位數(shù))
; 2--4字節(jié)為壓縮BCD碼,有效位為7位,3個(gè)半字節(jié),最后半個(gè)字節(jié)請(qǐng)使用者自行放
棄
; 程序占用資源PSW,A,B,DPTR,R0--R7,SP深度6,RAM 5個(gè)放數(shù)據(jù)
; keil 兼容,調(diào)用KEIL 的FPMUL子程序。
;程序作者:*************陳遠(yuǎn)征**************
;目 的:追求更快的執(zhí)行速度,與最小的程序代碼
;發(fā)布時(shí)間:2003--05--08
;編寫背景:精通匯編,研究C51半個(gè)月。身感C51方便中的不便
; 研究了幾種匯編及KEIL的浮點(diǎn)算法,特做此程序.
;聲 明:轉(zhuǎn)載時(shí)請(qǐng)保留以上的信息
C程序:
extern float ftod(float i);
unsigned char cyz[5];
main(){
float i=1234.567;
ftod(i);
while(1);
}
匯編程序:
PUBLIC _FTOD ;程序段
FTODP SEGMENT CODE ;入口地址
RSEG FTODP ;程序段
EXTRN CODE (?C?FPMUL)
EXTRN DATA (CYZ)
_FTOD: ;參數(shù)傳遞在R4--R7中,浮點(diǎn)數(shù)IEEE標(biāo)準(zhǔn)seeeeeee emmmmmmm
mmmmmmmm mmmmmmmm
FTOD:
MOV A,R4 ;保存數(shù)符
RLC A
CLR A
RRC A
MOV CYZ,A
MOV A,R4 ;取絕對(duì)值
CLR ACC.7
MOV R4,A
ORL A,R5
JNZ FCMP_1E10
MOV CYZ,#0 ;數(shù)值為0
MOV CYZ+1,#0
MOV CYZ+2,#0
MOV CYZ+3,#0
MOV CYZ+4,#0
RET
FCMP_1E10:
MOV DPTR,#YUANZHENG_DE10
LCALL FR0DPTR ;數(shù)值裝入R0--R3
&n
熱門點(diǎn)擊
- 8051單片機(jī)家族數(shù)據(jù)手冊(cè)鏈接大全
- dsPIC30F6010單片機(jī)的原理及應(yīng)用
- 一種通用的嵌入式系統(tǒng)ISP方法
- 浮點(diǎn)數(shù)保存代碼
- 基于FPGA/CPLD和USB技術(shù)的無損圖像
- 數(shù)字顯示器仍需處理模擬信號(hào)
- 常用PIC系列8位單片機(jī)芯片引腳符號(hào)的功能
- PIC系列單片機(jī)的偽指令
- 利用單片機(jī)PWM信號(hào)進(jìn)行舵機(jī)控制
- 產(chǎn)生低失真正弦波的CMOS六角反相器
推薦技術(shù)資料
- 硬盤式MP3播放器終級(jí)改
- 一次偶然的機(jī)會(huì)我結(jié)識(shí)了NE0 2511,那是一個(gè)遠(yuǎn)方的... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究