Guest User

Untitled

a guest
Jun 14th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .386                   ; support x386 instruction set
  2. .model flat, stdcall   ; always flat model, using stdcall
  3. .stack 100h            ; allocate a tiny stack
  4. option casemap:none    ; linking is case sensitive
  5.  
  6. .data
  7.     hello       byte    'Parameetrite arv: ',0 ; initialized array
  8.     myInt       dword   0               ; initialized int
  9.  
  10. .data? ; ? means 'uninitialized' (.bss segment)
  11.     stdout      dword   ?               ; stdout handle
  12.     stdin       dword   ?               ; stdin handle
  13.  
  14.     sbuffer     byte    80 DUP(?)       ; 80 uninit bytes
  15.     sbuffer2    byte    80 DUP(?)       ; 80 uninit bytes
  16.  
  17.  
  18. .code
  19.     ;--------- include Windows API ---------
  20.     include     C:\\masm32\\include\\windows.inc
  21.     include     C:\\masm32\\include\\kernel32.inc
  22.     includelib  C:\\masm32\\lib\\kernel32.lib
  23.     include     C:\\masm32\\include\\masm32.inc
  24.     includelib  C:\\masm32\\lib\\masm32.lib
  25.  
  26.     ;---------------------------------------
  27.  
  28. ;----- standard main procedure ---------
  29. main proc argc:dword, argv:ptr byte
  30.     LOCAL   written:dword
  31.  
  32.     call    AllocConsole                   ; attach a console
  33.     ;invoke  GetStdHandle, STD_OUTPUT_HANDLE ;
  34.     ;mov     [stdout], eax                  ; stdout = handle
  35.     ;invoke  GetStdHandle, STD_INPUT_HANDLE ;
  36.     ;mov     [stdin], eax                   ; stdin = handle
  37.  
  38.     ;invoke WriteFile, stdout, offset hello, 26, addr written, 0
  39.     ;print 'Test!'
  40.     invoke szappend, offset sbuffer, offset hello, 0
  41.     mov     ecx,    eax
  42.     add     argc,  48
  43.     mov     edx,    offset sbuffer2
  44.     mov     eax,    argc
  45.     mov     ah,     0
  46.     mov     [edx],  eax
  47.     invoke szappend, offset sbuffer, offset sbuffer2, ecx
  48.     invoke StdOut, ADDR sbuffer
  49.     invoke StdIn, offset sbuffer, 80
  50.     ;invoke ReadFile, stdin, offset sbuffer, 80, addr written, 0
  51.     ret
  52. main endp
  53.  
  54. ; mark the starting address of the program
  55. end main ; syntax: [end [program start address]]
Add Comment
Please, Sign In to add comment