Advertisement
Guest User

Untitled

a guest
May 26th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; это комментарии
  2.  
  3. ; подключаем библиотечку ирвина, без неё будет больно всё писать
  4. INCLUDE Irvine32.inc
  5.  
  6. .data ; сегмент данных
  7.  
  8.     ; наши сообщения, которые мы будем выводить
  9.    ; intro, equal, SecondMoreThanFirst и FirstMoreThanSecond
  10.    ; они занимают один BYTE
  11.    
  12.     intro  BYTE "Your number: ", 0  ;оканчивается на ноль, так как это конец строки
  13.     equal  BYTE "Your numbers are equal", 0
  14.     SMTF   BYTE "Second more than first number", 0
  15.     FMTS   BYTE "First more than second number", 0
  16.  
  17.  
  18. .code         ; сегмент кода
  19.     main:
  20.         mov edx, OFFSET intro  ; кидаем в edx-регистор ссылку на интро (OFFSET -- ссылка)
  21.         call WriteString       ; WriteString -- функция из библиотеки ирвина, мы её вызываем 'вызывателем функций' call
  22.                               ; она просто печатает строку, адрес которой лежит в edx регистре (перенесли туда предыдущей командой)
  23.        
  24.         call ReadInt           ; ReadInt - из ирвина, считываем с клавы число и добавляем (автоматически) в регистр eax
  25.         mov edi, eax           ; Херачим это число из eax в edi. Ибо eax понадобится чтоб считать второе число
  26.         call WriteString       ; снова интро выводим чтобы юзер ввёл число
  27.         call ReadInt           ;edi - первое введённое, eax- второе. Держи в уме
  28.        
  29.         cmp edi, eax          
  30.                                  ; смотри скрин в вк
  31.         jz equal
  32.            .IF eax > edi
  33.                 mov edx, OFFSET SMTF   ; переносим и следующей строкой выводим нашу SMTF-строку
  34.                 call WriteString
  35.                 call Crlf              ; это возврат коретки насколько я помню или чтобы экранчик не пропадал
  36.            .ELSE
  37.                 mov edx, OFFSET FMTS    ; выводим FMTS если первое число больше
  38.                 call WriteString
  39.                 call Crlf
  40.            .ENDIF
  41.             jmp finish    ; juuuuuump на финиш
  42.        
  43.         equal:
  44.             mov edx, OFFSET equal
  45.             call WriteString ; выводим если равны
  46.             call Crlf      
  47.         finish:
  48.        
  49.         ret
  50.     END main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement