DataOS_A.asm
上传用户:sdjqgc
上传日期:2022-08-06
资源大小:2404k
文件大小:1k
开发平台:

Asm

  1. //=======================================================================================//
  2. //Program: 二进制转换成BCD码   C语言调用 unsigned int F_Binary_BCD(unsigned int Binary)
  3. //InPut:   Binary  要转换的二进制数
  4. //OutPut:  r1
  5. //Date:    2004年4月25日
  6. //=======================================================================================//
  7. .ram
  8. .var BCD_qw,BCD_bw;
  9. .code
  10. .public _F_Binary_BCD
  11. _F_Binary_BCD:.proc
  12. push r2,r4 to [sp]
  13. r2=0
  14. r3=0
  15. r4=0
  16. [BCD_bw]=r2
  17. [BCD_qw]=r2
  18. cmp r1,1000
  19. jb F_BCD_B
  20. F_BCD_Q:
  21. r2=[BCD_qw]
  22. r2+=1
  23. [BCD_qw]=r2
  24. r1-=1000
  25. cmp r1,1000
  26. jae F_BCD_Q
  27. F_BCD_B:
  28. cmp r1,100
  29. jb F_BCD_S
  30. r2=[BCD_bw]
  31. r2+=1
  32. [BCD_bw]=r2
  33. r1-=100
  34. cmp r1,100
  35. jae F_BCD_B
  36. F_BCD_S:
  37. cmp r1,10
  38. jb F_BCD_G
  39. r3+=1
  40. r1-=10
  41. cmp r1,10
  42. jae F_BCD_S
  43. F_BCD_G:
  44. r4=r1
  45. r1=0x0000
  46. r1=r1 rol 4
  47. r1=[BCD_qw]
  48. r2=[BCD_bw]
  49. r2=r2 ror 4
  50. r1=r1 rol 4
  51. r3=r3 ror 4
  52. r1=r1 rol 4
  53. r4=r4 ror 4
  54. r1=r1 rol 4
  55. pop r2,r4 from [sp]
  56. retf
  57. .endp