fork download
  1. section .data
  2. a dd 1000 ; Пример значения для a (3-х байтное число, но храним в 4-х для простоты)
  3. b dd 2000 ; Пример значения для b
  4. c dd 500 ; Пример значения для c
  5. d dd 0 ; Результат
  6. newline db 0xA ; Символ новой строки
  7.  
  8. section .text
  9. global _start
  10.  
  11. _start:
  12. ; b - 1
  13. mov eax, [b] ; Загружаем значение b в eax
  14. dec eax ; Вычитаем 1 из eax
  15.  
  16. ; (b - 1) + a
  17. add eax, [a] ; Прибавляем значение a к eax
  18.  
  19. ; (b - 1 + a) - c
  20. sub eax, [c] ; Вычитаем значение c из eax
  21.  
  22. ; Сохраняем результат в d
  23. mov [d], eax ; Сохраняем результат (d) в памяти
  24.  
  25. ; Вывод результата (d) на экран (как десятичное число)
  26. mov eax, 4 ; системный вызов для write
  27. mov ebx, 1 ; файловый дескриптор (stdout)
  28. mov ecx, d ; адрес строки для вывода
  29. mov edx, 4 ; количество байт для вывода
  30. int 0x80
  31.  
  32. ; Выводим перевод строки
  33. mov eax, 4
  34. mov ebx, 1
  35. mov ecx, newline
  36. mov edx, 1
  37. int 0x80
  38.  
  39. ; Завершение программы
  40. mov eax, 1 ; системный вызов для exit
  41. xor ebx, ebx ; код возврата 0
  42. int 0x80
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout