我的毕业设计遇到了一个难题,就快要交了
哪位可以告诉我浮点算法,3字节除以3字节,结果应该有几字节啊?
拜托,救命啊。
感谢上面的朋友
不过你还没有告诉我到底结果是几个字节啊,不晓得几个字节,我还是不会编
ATmega128 要对模数转换器ad594控制,我的pd口有三根线连在ad594的cs,R/c,ce端;一根线连在sts端,我该怎么启动模数转换器ad594,怎么等待sts端变9电平?我的意思是有没有直接读sts端的语句?是什么呢?pind只能对整个d口操作。
help!!!二进制浮点操作数:用三个字节表示,第一个字节的最高位为数符,其余七位为 阶码(补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节,尾数用双字节 纯小数(原码)来表示。当尾数的最高位为1时,便称为规格化浮点数,简称操作数。在
程序说明中,也用[R0]或[R1]来表示R0或R1指示的浮点操作数,例如:当[R0]=-6.000时, 则二进制浮点数表示为83C000H。若(R0)=30H,则(30H)=83H,(31H)=0C0H,(32H)=00H。
十进制浮点操作数:用三个字节表示,第一个字节的最高位为数符,其余七位为 阶码(二进制补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节,尾数用 双字节BCD码纯小数(原码)来表示。当十进制数的绝对值大于1时,阶码就等于整数 部分的位数,如 876.5 的阶码是03H,-876.5 的阶码是 83H;当十进制数的绝对值小于1
时,阶码就等于 80H 减去小数点后面零的个数,例如 0.00382 的阶码是 7EH,-0.00382 的阶码是 0FEH。
只要是浮点数,就是三个字节,不能高但是可以少,可以少位,不能少字节,少位的时候看精度而定,四舍五入就可以了。给你一个子程序吧,就是通用的浮点数除法程序:
(5) 标号: FDIV 功能:浮点数除法
入口条件:被除数在[R0]中,除数在[R1]中。 出口信息:OV=0时,商仍在[R0]中,OV=1时,溢出。 影响资源:PSW、A、B、R2~R7、位1EH、1FH 堆栈需求: 5字节
FDIV: INC R0 MOV A,@R0 INC R0
ORL A,@R0 DEC R0 DEC R0 JNZ DIV1 MOV @R0,#41H;被除数为零,不必运算 CLR OV RET DIV1: INC R1 MOV A,@R1 INC R1 ORL A,@R1 DEC R1 DEC R1 JNZ DIV2 SETB OV ;除数为零,溢出 RET DIV2: LCALL MVR0 ;将[R0]传送到第一工作区中 MOV A,@R0 XRL A,@R1 ;比较两个操作数的符号 RLC A MOV 1FH,C ;保存结果的符号 LCALL MVR1 ;将[R1]传送到第二工作区中 LCALL DIV3 ;调用工作区浮点除法 LJMP MOV0 ;回传结果
DIV3: CLR C ;比较尾数的大小 MOV A,R4 SUBB A,R7 MOV A,R3 SUBB A,R6 JC DIV4 LCALL RR1 ;被除数右规一次 SJMP DIV3 DIV4: CLR A ;借用R0R1R2作工作寄存器 XCH A,R0 ;清零并保护之 PUSH ACC CLR A XCH A,R1 PUSH ACC MOV A,R2 PUSH ACC MOV B,#10H ;除法运算,R3R4/R6R7-→R0R1 DIV5: CLR C MOV A,R1 RLC A MOV R1,A MOV A,R0 RLC A MOV R0,A MOV A,R4 RLC A MOV R4,A XCH A,R3 RLC A
XCH A,R3 MOV F0,C CLR C SUBB A,R7 MOV R2,A MOV A,R3 SUBB A,R6 ANL C,/F0 JC DIV6 MOV R3,A MOV A,R2 MOV R4,A INC R1 DIV6: DJNZ B,DIV5 MOV A,R6 ;四舍五入 CLR C RRC A SUBB A,R3 CLR A ADDC A,R1 ;将结果存回R3R4 MOV R4,A CLR A ADDC A,R0 MOV R3,A POP ACC ;恢复R0R1R2 MOV R2,A POP ACC MOV R1,A POP ACC MOV R0,A MOV A,R2 ;计算商的阶码 CLR C SUBB A,R5
LCALL MD ;阶码检验 LJMP RLN ;规格化
呼~~总之就是这样 在单片机基础里浮点数不管你什么操作都是三个字节,这是死规定,阶码+尾高+尾低=3字节,如果真的有大余三字节的(天文测量)时,建议你不要用单片了,改用别的芯片吧 MCS51系列是不成的了。 不过这种情况极为少见的,累死我了~~~总算写完了!!!!
欢迎光临 千家论坛_智能建筑与智能家居技术交流社区 (http://bbs.qianjia.com/) | Powered by Discuz! X3.2 |