Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- INCLUDE Irvine32.inc
- .data
- mes1 byte "Introduceti Range:",0
- mes2 byte "X=:",0
- mes3 byte "Y=:",0
- mes4 byte "Rezutatul este:",0
- vrx sdword 0
- vry sdword 0
- rez dd 0
- d2 dw 2
- d5 dw 5
- .code
- main PROC
- mov edx,OFFSET mes1
- call WriteString ; afisarea mes1
- call ReadInt ;introducerea de la tastatura
- mov rez, eax
- call Randomize
- call RandomRange
- mov vrx, eax ;First random number
- mov eax, rez
- call RandomRange
- mov vry, eax
- ;controlam conditiile
- xor eax, eax
- mov edx, 0
- mov eax,vry
- cwd
- idiv d2 ; calcul Y/2
- cmp eax,vrx ;compararea X cu 2Y
- jb con1 ; salt la con1, daca X<2Y
- mov eax,vrx ;realizam expresia 2X-64+Y
- mov bx,2
- mul bx
- sbb eax,64
- adc eax,vry
- mov rez,eax
- jmp ex ; salt neconditionat la ex
- con1: mov eax,vrx ; realizam expresia (Y-2X)/5+150
- mul d2 ; 2*X
- mov ebx, eax ; bx = 2*X
- mov eax, vry ; eax = Y
- sub eax, ebx ; eax = Y-2*X
- xor edx,edx
- cwd
- idiv d5 ; eax = (Y-2*X)/5
- add eax, 150 ; eax = (Y-2*X)/5+150
- mov rez,eax
- ex:
- mov eax, vrx
- mov edx, OFFSET mes2
- call WriteString
- call WriteInt
- call CrlF
- mov eax, vry
- mov edx, OFFSET mes3
- call WriteString
- call WriteInt
- call Crlf
- mov eax, rez
- mov edx,OFFSET mes4
- call WriteString ; afisarea mesajului mes3
- call WriteInt ; afisarea rezultatului cu semn
- call Crlf ; din rand nou
- exit
- main ENDP
- END main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement