Advertisement
Guest User

Untitled

a guest
Sep 24th, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. .386
  2. .model flat, stdcall
  3. option casemap:none
  4. include conversion.inc
  5. .code
  6. start:
  7. call Main
  8. invoke ExitProcess,0
  9. Main proc
  10. LOCAL Buffer[128]:BYTE
  11. invoke AllocConsole
  12. invoke SetConsoleTitle, TEXTOEM("Îðãàí³çàö³ÿ îïåðàö³é ââîäó ³ âèâîäó")
  13. invoke ClearScreen
  14. xor eax, eax
  15. lea esi,Buffer
  16. invoke InputDecimal,TEXTOEM("\n×èñëî â äåñÿòêîâ³é ñèñòåì³ ÷èñëåííÿ A = "),esi,12 ;chislo 1
  17. call Proverka
  18. mov ebx, eax
  19. ;!!!!!!!!!!!!! moya jalkaya vstavka
  20. @@:lodsb
  21. .if (al==0Ah)||(al==0Dh)
  22. jmp @F
  23. .elseif (al=='0')||(al=='1')||(al=='2')||(al=='3')||(al=='4')||(al=='5')||\
  24. (al=='6')||(al=='7')||(al=='8')||(al=='9')
  25. jmp @B
  26. xor ebx,ebx
  27. .endif
  28. @@:
  29.  
  30. ;!!!!!!!!!!!
  31. invoke InputDecimal,TEXTOEM("×èñëî â äåñÿòêîâ³é ñèñòåì³ ÷èñëåííÿ B = "),esi,11 ;chislo2
  32. call Proverka
  33. mul ebx
  34. mov ebx, eax
  35. invoke StdOut, TEXTOEM("\nA * B äîð³âíþº");rezultat
  36. invoke StdOut, TEXTOEM("\n äåñÿòêîâ³é ñèñòåì³ ÷èñëåííÿ:\t\t")
  37. mov edi,esi
  38. mov eax,ebx
  39. call uBinToDecASCII
  40. invoke StdOut,edi
  41. invoke StdOut,TEXTOEM("\n\nÍàòèñí³òü Enter äëÿ çàâåðøåííÿ...")
  42. invoke StdIn, addr Buffer, lengthof Buffer
  43. ret
  44. Main endp
  45.  
  46. uBinToDecASCII proc uses esi edi ebx
  47. ; Âõ³ä: EAX - ÷èñëî, EDI - àäðåñà áóôåðó íå ìåíøå í³æ 10 áàéò
  48. mov esi,edi
  49. mov ebx,10
  50. @@: xor edx,edx
  51. div ebx
  52. or dl,30h
  53. mov byte ptr [esi],dl
  54. inc esi
  55. or eax,eax
  56. jnz @B
  57. mov byte ptr [esi],0
  58. @@: dec esi
  59. mov al,byte ptr [esi]
  60. xchg byte ptr [edi],al
  61. mov byte ptr [esi],al
  62. inc edi
  63. cmp edi,esi
  64. jb @B
  65. ret
  66. uBinToDecASCII endp
  67.  
  68. uDecASCIIToBin proc uses esi ebx
  69. ; Âõ³ä: ESI - àäðåñà ASCIIZ-ðÿäêà
  70. ; Âèõ³ä: EAX - ÷èñëî
  71. xor ebx,ebx
  72. @@: lodsb
  73. or al,al
  74. jz @F
  75. and eax,0Fh
  76. lea ebx, [ebx+ebx*4]
  77. lea ebx, [eax+ebx*2]
  78. jmp @B
  79. @@: mov eax,ebx
  80. ret
  81. uDecASCIIToBin endp
  82.  
  83. InputDecimal proc uses esi edi __in lpMessage:LPCSTR,\
  84. __inout lpBuffer:LPSTR,\
  85. __in BufferLength:DWORD
  86. invoke StdOut, lpMessage
  87. mov edi,lpBuffer
  88. invoke StdIn,edi,BufferLength
  89. mov al,0Dh
  90. mov ecx,BufferLength
  91. repne scasb
  92. mov word ptr [edi-1],0
  93. mov esi,lpBuffer
  94. call uDecASCIIToBin
  95. ret
  96.  
  97.  
  98. InputDecimal endp
  99.  
  100. Proverka proc uses edi esi ebx
  101. mov edi,esi
  102. call uBinToDecASCII
  103. mov ebx,eax
  104. mov esi,edi
  105.  
  106. @@: lodsb
  107. .if (al==0Ah)||(al==0Dh)
  108. jmp @F
  109. .else
  110. sub byte ptr [esi],30h
  111. cmp byte ptr [esi],9h
  112. jbe @B
  113. xor ebx,ebx
  114. .endif
  115. @@: mov eax,ebx
  116. call uDecASCIIToBin
  117. ret
  118. Proverka endp
  119. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement