Advertisement
Guest User

Untitled

a guest
Mar 24th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. INCLUDE Irvine32.inc
  2. .data
  3. mes1 byte "Introduceti Range:",0
  4. mes2 byte "X=:",0
  5. mes3 byte "Y=:",0
  6. mes4 byte "Rezutatul este:",0
  7. vrx sdword 0
  8. vry sdword 0
  9. rez dd 0
  10. d2 dw 2
  11. d5 dw 5
  12.  
  13. .code
  14. main PROC
  15. mov edx,OFFSET mes1
  16. call WriteString ; afisarea mes1
  17. call ReadInt ;introducerea de la tastatura
  18. mov rez, eax
  19. call Randomize
  20. call RandomRange
  21. mov vrx, eax ;First random number
  22. mov eax, rez
  23. call RandomRange
  24. mov vry, eax
  25.  
  26.  
  27.  
  28. ;controlam conditiile
  29.  
  30. xor eax, eax
  31. mov edx, 0
  32. mov eax,vry
  33. cwd
  34. idiv d2 ; calcul Y/2
  35. cmp eax,vrx ;compararea X cu 2Y
  36. jb con1 ; salt la con1, daca X<2Y
  37.  
  38.  
  39. mov eax,vrx ;realizam expresia 2X-64+Y
  40. mov bx,2
  41. mul bx
  42. sbb eax,64
  43. adc eax,vry
  44. mov rez,eax
  45. jmp ex ; salt neconditionat la ex
  46.  
  47.  
  48. con1: mov eax,vrx ; realizam expresia (Y-2X)/5+150
  49. mul d2 ; 2*X
  50. mov ebx, eax ; bx = 2*X
  51. mov eax, vry ; eax = Y
  52. sub eax, ebx ; eax = Y-2*X
  53.  
  54. xor edx,edx
  55. cwd
  56. idiv d5 ; eax = (Y-2*X)/5
  57. add eax, 150 ; eax = (Y-2*X)/5+150
  58. mov rez,eax
  59.  
  60. ex:
  61. mov eax, vrx
  62. mov edx, OFFSET mes2
  63. call WriteString
  64. call WriteInt
  65. call CrlF
  66.  
  67. mov eax, vry
  68. mov edx, OFFSET mes3
  69. call WriteString
  70. call WriteInt
  71. call Crlf
  72.  
  73.  
  74. mov eax, rez
  75. mov edx,OFFSET mes4
  76. call WriteString ; afisarea mesajului mes3
  77. call WriteInt ; afisarea rezultatului cu semn
  78. call Crlf ; din rand nou
  79.  
  80. exit
  81. main ENDP
  82. END main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement