Subversion Repositories Kolibri OS

Rev

Blame | 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 "CMDIPC.INC"       ; Подключить файл CMDIPC.INC
  21.  
  22. START:
  23.  call initipc              ; инициализировать для работы с CMD
  24.  
  25.  mov eax,26                ; Длина строки
  26.  mov ebx,hello_text        ; Указатель на строку
  27.  call print                ; Вывести строку
  28.  
  29. again:
  30.  call getkey               ; Ожидать нажатия клавиши и считать ее в key
  31.  
  32.  cmp byte [key],'Y'        ; Тут программа проверяет, нажата ли нужн. клавиша
  33.  je goodday
  34.  cmp byte [key],'y'
  35.  je goodday
  36.  cmp byte [key],'N'
  37.  je goodmorning
  38.  cmp byte [key],'n'
  39.  je goodmorning
  40.  
  41.  jmp again                 ; Если нужн. клавиша не нажата, то считать клавишу
  42.                            ; заново
  43. goodday:                   ; Вывести приветствие Good Day, World!
  44.  call eol                  ; Пропустить строку
  45.  
  46.  mov eax,16
  47.  mov ebx,text4
  48.  call print
  49.  
  50.  call eol                  ; Пропустить строку
  51.  
  52.  jmp endipc                ; Завершить программу
  53.  
  54. goodmorning:               ; Вывести приветствие Good Morning, World!
  55.  call eol
  56.  
  57.  mov eax,20
  58.  mov ebx,text5
  59.  call print
  60.  
  61.  call eol
  62.  
  63.  jmp endipc                ; Заверщить программу
  64.  
  65. hello_text db 'Is it after 12 noon? [Y\N]?'
  66.  
  67. text4 db 'Good day, World!'
  68. text5 db 'Good morning, World!'
  69.  
  70. I_END:
  71.