楼主的三字节就是十六进制最大为FFF占八位的51单片机2字节存储,二进制的话就是00001111 11111111也是两字节,换成8421BCD码就痛苦了!最大24095 需要5字节。平时处理一字节的的十六进制也就是两位FF转8421BCD码的思路是用除法去加权。
例子如下:
HEXtoBCD:PUSH ACC
PUSH B
MOV A,TEMP_DATA
MOV B,#100D
DIV AB
MOV R0,A
MOV A,#10D
XCH A,B
DIV AB
MOV R1,A
MOV R2,B
POP B
POP ACC
RET
先说清楚,3字节是如何分配的?565、556、655哪种分配的,自己按位数去取、再转
谁能写个C的看看,看看汇编的编码量有多大!这难道就是传说的浮点运算?
楼主的三字节就是十六进制最大为FFF占八位的51单片机2字节存储,二进制的话就是00001111 11111111也是两字节,换成8421BCD码就痛苦了!最大24095 需要5字节。平时处理一字节的的十六进制也就是两位FF转8421BCD码的思路是用除法去加权。
例子如下:
HEXtoBCD:PUSH ACC
PUSH B
MOV A,TEMP_DATA
MOV B,#100D
DIV AB
MOV R0,A
MOV A,#10D
XCH A,B
DIV AB
MOV R1,A
MOV R2,B
POP B
POP ACC
RET
当运算量超过一字节,也就是8421BCD码超过255时问题出来了,也就出现了浮点运算。除法去加权就行不通了。汇编算法就复杂了~让我们开开眼界见证C的牛×之处吧~
那位大虾上浮点酸菜:
PS:用51装(运行)酸菜(C代码加汇编代码)!
一周热门 更多>