Advertisement
Guest User

hjmb

a guest
Apr 17th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .486
  2. .model flat, stdcall
  3. option casemap :none ; ÷óâñòâèòåëüíîñòü ê ðåãèñòðó áóêâ â èäåíòèôèêàòîðàõ      
  4. include windows.inc
  5. include kernel32.inc  
  6. include masm32.inc
  7. includelib kernel32.lib
  8. includelib masm32.lib
  9.  
  10. .data              
  11.        
  12.         buffer1 db 1000 dup (" ")
  13.        
  14.         buffer2 db 1000 dup (" ")
  15.         summa db 1000 dup (" ")
  16.         newline1 db 10
  17.         raznost db 1000 dup (" ")
  18.     inputBuffer db 0
  19.  
  20. .data?
  21.     inputHandle dd ?
  22.     outputHandle dd ?
  23.     numberOfChars dd ?
  24.     sum dd ?
  25.     razn dd ?
  26.     n1 dd ?
  27.     n2 dd ?
  28. .code
  29. entryPoint:        
  30.  
  31.  
  32.     push STD_INPUT_HANDLE     ; ïåðåäà÷à ïàðàìåòðà â ôóíêöèþ
  33.     call GetStdHandle         ; âûçîâ ñèñòåìíîé ôóíêöèè    
  34.     mov inputHandle, EAX      ; ñîõðàíåíèå ðåçóëüòàòà ôóíêöèè  
  35.    
  36.     push STD_OUTPUT_HANDLE
  37.     call GetStdHandle
  38.     mov outputHandle, EAX  
  39.  
  40.        
  41. push NULL
  42. push offset numberOfChars
  43. push 1000
  44. push offset buffer1
  45. push inputHandle
  46. call ReadConsole                  
  47.                                                                  
  48. mov EDX, offset buffer1          
  49. mov EAX, numberOfChars            
  50. mov byte ptr [ EDX + EAX - 2 ], 0
  51.                                    
  52. push offset buffer1
  53. call atodw  
  54. mov n1, EAX
  55.  
  56.  
  57.  
  58. push NULL
  59. push offset numberOfChars
  60. push 1000
  61. push offset buffer2
  62. push inputHandle
  63. call ReadConsole                  
  64.                                                                  
  65. mov EDX, offset buffer2          
  66. mov EAX, numberOfChars            
  67. mov byte ptr [ EDX + EAX - 2 ],0
  68.  
  69. push offset buffer2
  70. call atodw    
  71. mov n2, EAX
  72.  
  73. mov EAX, n2
  74. add EAX, n1
  75. mov sum, EAX  
  76.  
  77.  
  78.  
  79. push offset summa
  80. push sum          
  81. call dwtoa
  82.                
  83. push offset summa                              
  84. call lstrlen                                      
  85. push NULL
  86. push offset numberOfChars
  87. push sum                                          
  88. push offset summa
  89. push outputHandle
  90. call WriteConsole  
  91.  
  92.  
  93.         push NULL
  94.         push offset numberOfChars
  95.         push 1
  96.         push offset newline1
  97.         push outputHandle
  98.         call WriteConsole  
  99.                                  
  100.        
  101.        
  102.        
  103. push offset buffer1
  104. call atodw  
  105.  
  106.  
  107. push offset buffer2
  108. call atodw  
  109.  
  110.  
  111. mov EAX, n2        
  112.        
  113. sub n1, EAX
  114. mov razn, EAX        
  115.  
  116.    
  117.  
  118. push offset raznost
  119. push razn          
  120. call dwtoa    
  121.  
  122. push offset raznost                              
  123. call lstrlen                                      
  124. push NULL
  125. push offset numberOfChars
  126. push razn                                        
  127. push offset raznost
  128. push outputHandle
  129. call WriteConsole
  130.  
  131.  
  132.     push NULL
  133.     push offset numberOfChars
  134.     push 1
  135.     push offset inputBuffer
  136.     push inputHandle
  137.     call ReadConsole
  138.    
  139.  
  140.     push 0
  141.     call ExitProcess
  142.  
  143. end entryPoint
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement