Subversion Repositories Kolibri OS

Rev

Rev 31 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ; Hello, World! - Programm example for CMD shell
  2. ; Compile with FASM for Menuet
  3. ;
  4. ; You must run this program from CMD shell only
  5. ;
  6.  
  7. use32
  8.  
  9.    org 0x0
  10.  
  11.    db 'MENUET01'
  12.    dd 0x01
  13.    dd START
  14.    dd I_END
  15.    dd 0x100000
  16.    dd 0x7fff0
  17.    dd 0x0
  18.    dd 0x0
  19.  
  20. include "lang.inc"
  21. include "cmdipc.inc"       ; Подключить файл CMDIPC.INC
  22.  
  23. START:
  24.  call initipc              ; инициализировать для работы с CMD
  25.  
  26.  mov eax,26                ; Длина строки
  27.  mov ebx,hello_text        ; Указатель на строку
  28.  call print                ; Вывести строку
  29.  
  30. again:
  31.  call getkey               ; Ожидать нажатия клавиши и считать ее в key
  32.  
  33.  cmp byte [key],'Y'        ; Тут программа проверяет, нажата ли нужн. клавиша
  34.  je goodday
  35.  cmp byte [key],'y'
  36.  je goodday
  37.  cmp byte [key],'N'
  38.  je goodmorning
  39.  cmp byte [key],'n'
  40.  je goodmorning
  41.  
  42.  jmp again                 ; Если нужн. клавиша не нажата, то считать клавишу
  43.                            ; заново
  44. goodday:                   ; Вывести приветствие Good Day, World!
  45.  call eol                  ; Пропустить строку
  46.  
  47.  mov eax,16
  48.  mov ebx,text4
  49.  call print
  50.  
  51.  call eol                  ; Пропустить строку
  52.  
  53.  jmp endipc                ; Завершить программу
  54.  
  55. goodmorning:               ; Вывести приветствие Good Morning, World!
  56.  call eol
  57.  
  58.  mov eax,20
  59.  mov ebx,text5
  60.  call print
  61.  
  62.  call eol
  63.  
  64.  jmp endipc                ; Заверщить программу
  65.  
  66. hello_text db 'Is it after 12 noon? [Y\N]?'
  67.  
  68. text4 db 'Good day, World!'
  69. text5 db 'Good morning, World!'
  70.  
  71. I_END:
  72.