CONVERT.ASM
上传用户:ys_happy
上传日期:2007-01-09
资源大小:20k
文件大小:1k
源码类别:

汇编语言

开发平台:

Asm

  1. .386
  2. .model flat,STDCALL
  3. include win32.asi           ; some 32-bit constants and structures
  4. include win32.ase
  5. .data
  6. numbuf db 15 dup (0)
  7. .code
  8. public IntToString, StringToInt
  9. IntToString PROC
  10. push ebx
  11. push ecx
  12. push edx
  13. lea  edi,[numbuf]
  14. push edi
  15. or      eax,eax
  16. jns notneg
  17. mov byte ptr [edi],'-'
  18. inc edi
  19. neg eax
  20. notneg:
  21. mov ebx,10
  22. sub ecx,ecx
  23. lp0:
  24. inc ecx
  25. sub edx,edx
  26. div ebx
  27. or dl,'0'
  28. push edx
  29. or eax,eax
  30. jnz lp0
  31. lp1:
  32. pop eax
  33. stosb
  34. loop lp1
  35. sub al,al
  36. stosb
  37. pop edi
  38. pop edx
  39. pop ecx
  40. pop ebx
  41. ret
  42. IntToString ENDP
  43. StringToInt PROC
  44. push ebx
  45. push edx
  46. push esi
  47. sub ebx,ebx
  48. sub edx,edx
  49. sub eax,eax
  50. cmp byte ptr [edi],'-'
  51. jnz sinotneg
  52. inc edi
  53. inc ebx
  54. sinotneg:
  55. cmp byte ptr [edi],'+'
  56. jnz notplus
  57. inc edi
  58. notplus:
  59. lodsb
  60. or al,al
  61. jz sid
  62. sub al,'0'
  63. imul edx,edx,10
  64. sub al,'0'
  65. add edx,eax
  66. jmp notplus
  67. sid:
  68. mov eax,edx
  69. pop esi
  70. pop edx
  71. pop ebx
  72. ret
  73. StringToInt ENDP
  74. end