fork download
  1. section .data
  2. ; 1. Создать переменную с текстом
  3. text_var db 'Assembler – low level programming', 0
  4.  
  5. ; 2. Создать переменную со значением 40
  6. var1 dd 40
  7.  
  8. ; 3. Создать переменную со значением 36
  9. var2 dd 36
  10.  
  11. section .bss
  12. ; Переменные для хранения результатов
  13. result1 resd 1 ; для вычитания
  14. result2 resd 1 ; для сложения
  15. result3 resd 1 ; для сложения с непосредственным значением
  16. result4 resd 1 ; для вычитания непосредственного значения
  17.  
  18. section .text
  19. global _start
  20.  
  21. _start:
  22. ; 4. Вычесть из первой вторую (var1 - var2)
  23. mov eax, [var1] ; EAX = 40
  24. sub eax, [var2] ; EAX = 40 - 36 = 4
  25. mov [result1], eax ; сохраняем результат
  26.  
  27. ; 5. Сложить первую со второй (var1 + var2)
  28. mov eax, [var1] ; EAX = 40
  29. add eax, [var2] ; EAX = 40 + 36 = 76
  30. mov [result2], eax ; сохраняем результат
  31.  
  32. ; 6. Сложить любое непосредственное значение с первой переменной
  33. mov eax, [var1] ; EAX = 40
  34. add eax, 15 ; EAX = 40 + 15 = 55
  35. mov [result3], eax ; сохраняем результат
  36.  
  37. ; 7. Вычесть из первой переменной любое непосредственное значение
  38. mov eax, [var1] ; EAX = 40
  39. sub eax, 10 ; EAX = 40 - 10 = 30
  40. mov [result4], eax ; сохраняем результат
  41.  
  42. ; Завершение программы
  43. mov eax, 1
  44. mov ebx, 0
  45. int 0x80
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
Standard output is empty