Advertisement
Guest User

Untitled

a guest
Feb 1st, 2015
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. TITLE MASM Template                     (main.asm)
  2.  
  3. INCLUDE Irvine32.inc
  4. .data
  5. Rozmer EQU 4
  6. Matica DW Rozmer*Rozmer dup(?)
  7.  
  8. RIADOKc db "Riadok hladaneho cisla je",0ah,0dh,0
  9. STLPECc db "Stlpec hladaneho cisla je",0ah,0dh,0
  10.  
  11. riadok dd ?
  12. stlpec dd ?
  13.  
  14. .code
  15.  
  16. Odriadkuj MACRO
  17.     mov al, 0Dh
  18.     call WriteChar
  19.     mov al, 0Ah
  20.     call WriteChar
  21. ENDM
  22.  
  23. GenerujMaticu PROC USES EAX ECX ESI
  24. ; generuj maticu a ulož ju do pamäti
  25.     mov esi,0
  26.     mov ecx,Rozmer*Rozmer
  27. Generuj:
  28.     mov eax,10h
  29.     call RandomRange; generuje náh. ?íslo <0; n-1>,
  30.     ; n je vstupný parameter v eax, ?íslo vráti v eax
  31.     mov Matica[esi*2],ax
  32.     inc esi
  33.     loop Generuj
  34.     ret
  35. GenerujMaticu ENDP
  36. ;------------------------------------------------------
  37. VypisMaticu PROC USES EAX EBX ECX ESI
  38.     mov ebx,0
  39.     mov ecx,Rozmer; po?et riadkov
  40. VypisRiadok:
  41.     mov esi,0; index st?pca
  42.     push ecx; odlož po?ítadlo riadkov
  43.     mov ecx,Rozmer; po?et st?pcov
  44. Vypis:
  45.     movzx eax, Matica[ebx+esi*2]
  46.     call WriteInt
  47.     mov al,9; Tab – zarovnaj do st?pcov
  48.     call WriteChar
  49.     inc esi
  50.     loop Vypis
  51.     Odriadkuj
  52.     pop ecx; obnov po?ítadlo riadkov
  53.     add ebx,Rozmer*2; aktualizuj offset riadku
  54.     loop VypisRiadok
  55.     ret
  56. VypisMaticu ENDP
  57. ;-------------------------------------------------
  58.  
  59. main PROC
  60.     call GenerujMaticu
  61.     call VypisMaticu   
  62.     odriadkuj
  63.  
  64.     mov riadok,1       
  65.     mov stlpec,0
  66.  
  67.     mov ebx,0
  68.     mov esi,0
  69.     mov eax,0
  70.  
  71. Zaciname:
  72.     inc stlpec
  73.     movzx eax, Matica[ebx+esi*2]
  74.     ;call WriteInt
  75.     cmp eax, 15; ..............CISLO KTORE HLADAM.................
  76.     je Zhoda
  77.     inc esi
  78.     cmp stlpec, 4
  79.     je DalsiRiadok
  80.     jmp Zaciname
  81. Zhoda:
  82.     odriadkuj
  83.     mov edx, offset STLPECc
  84.     call writestring
  85.  
  86.     mov eax, stlpec
  87.     call writeint
  88.     odriadkuj
  89.  
  90.     mov edx, offset RIADOKc
  91.     call writestring
  92.  
  93.     mov eax, riadok
  94.     call writeint
  95.     odriadkuj
  96.     jmp Koniec
  97. DalsiRiadok:
  98.     inc riadok
  99.     mov stlpec, 0
  100.     jmp Zaciname
  101. Koniec:
  102.     exit
  103. main ENDP
  104.  
  105. END main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement