fork download
  1. ; wczytywanie i wyswietlanie tekstu wielkimi literami
  2. ; (inne znaki sie nie zmieniaja)
  3. .686
  4. .model flat
  5. extrn _ExitProcess@4 : near
  6. extrn __write : near ; (dwa znaki podkreslenia)
  7. extrn __read : near ; (dwa znaki podkreslenia)
  8. public _main
  9. .data
  10. tekst_pocz db 10, 'Prosze napisac jakis tekst '
  11. db 'i nacisnac Enter', 10
  12. koniec_t db ?
  13. magazyn db 80 dup (?)
  14. nowa_linia db 10
  15. liczba_znakow dd ?
  16. .code
  17. _main:
  18. ; wyswietlenie tekstu informacyjnego
  19. ; liczba znaków tekstu
  20. mov ecx,(OFFSET koniec_t)(OFFSET tekst_pocz)
  21. push ecx
  22. push OFFSET tekst_pocz ; adres tekstu
  23. push 1 ; nr urzadzenia (tu: ekran - nr 1)
  24. call __write ; wyswietlenie tekstu poczatkowego
  25. add esp, 12 ; usuniecie parametrów ze stosu
  26. ; czytanie wiersza z klawiatury
  27. push 80 ; maksymalna liczba znaków
  28. push OFFSET magazyn
  29. push 0 ; nr urzadzenia (tu: klawiatura - nr 0)
  30. call __read ; czytanie znaków z klawiatury
  31. add esp, 12 ; usuniecie parametrów ze stosu
  32. ; kody ASCII napisanego tekstu zostały wprowadzone
  33. ; do obszaru 'magazyn'
  34. ; funkcja read wpisuje do rejestru EAX liczbe
  35. ; wprowadzonych znaków
  36. mov liczba_znakow, eax
  37. ; rejestr ECX pełni role licznika obiegów petli
  38. mov ecx, eax
  39. mov ebx, 0 ; indeks poczatkowy
  40. ptl: mov dl, magazyn[ebx] ; pobranie kolejnego znaku
  41. cmp dl, 'a'
  42. jb dalej ; skok, gdy znak nie wymaga zamiany
  43. cmp dl, 'z'
  44. ja dalej ; skok, gdy znak nie wymaga zamiany
  45. sub dl, 20H ; zamiana na wielkie litery
  46. ; odesłanie znaku do pamieci
  47. mov magazyn[ebx], dl
  48. dalej: inc ebx ; inkrementacja modyfikatora
  49. loop ptl ; sterowanie petla
  50. ; wyswietlenie przekształconego tekstu
  51. push liczba_znakow
  52. push OFFSET magazyn
  53. push 1
  54. call __write ; wyswietlenie przekształconego
  55. tekstu
  56. add esp, 12 ; usuniecie parametrów ze stosu
  57. push 0
  58. call _ExitProcess@4 ; zakonczenie programu
  59. END
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.asm:3: error: attempt to define a local label before any non-local labels
prog.asm:4: error: attempt to define a local label before any non-local labels
prog.asm:4: error: parser: instruction expected
prog.asm:5: error: parser: instruction expected
prog.asm:6: error: symbol `extrn' redefined
prog.asm:6: error: parser: instruction expected
prog.asm:7: error: symbol `extrn' redefined
prog.asm:7: error: parser: instruction expected
prog.asm:8: error: parser: instruction expected
prog.asm:13: error: comma expected after operand 1
prog.asm:20: error: expecting `)'
prog.asm:22: error: comma, colon or end of line expected
prog.asm:28: error: comma, colon or end of line expected
prog.asm:40: error: comma, colon or end of line expected
prog.asm:47: error: comma, colon or end of line expected
prog.asm:52: error: comma, colon or end of line expected
stdout
Standard output is empty