fork download
  1. section .data
  2. num1 dd 10 ; Первое число (4 байта)
  3. num2 dd 20 ; Второе число (4 байта)
  4. sum dd 0 ; Результат сложения (4 байта)
  5. difference dd 0 ; Результат вычитания (4 байта)
  6. product dd 0 ; Результат умножения (4 байта)
  7. quotient dd 0 ; Результат деления (4 байта)
  8.  
  9. section .text
  10. global _start
  11.  
  12. _start:
  13. ; Сложение
  14. mov eax, dword [num1] ; Загрузка первого числа в регистр eax
  15. mov ebx, dword [num2] ; Загрузка второго числа в регистр ebx
  16. add eax, ebx ; Сложение чисел
  17. mov dword [sum], eax ; Сохранение результата в переменную sum
  18.  
  19. ; Вычитание
  20. mov eax, dword [num1] ; Загрузка первого числа в регистр eax
  21. mov ebx, dword [num2] ; Загрузка второго числа в регистр ebx
  22. sub eax, ebx ; Вычитание чисел
  23. mov dword [difference], eax ; Сохранение результата в переменную difference
  24.  
  25. ; Умножение
  26. mov eax, dword [num1] ; Загрузка первого числа в регистр eax
  27. mov ebx, dword [num2] ; Загрузка второго числа в регистр ebx
  28. imul eax, ebx ; Умножение чисел (результат в eax)
  29. mov dword [product], eax ; Сохранение результата в переменную product
  30.  
  31. ; Деление
  32. mov eax, dword [num1] ; Загрузка первого числа в регистр eax
  33. mov ebx, dword [num2] ; Загрузка второго числа в регистр ebx
  34. cdq ; Расширение знака edx до размера eax (для деления edx:eax на ebx)
  35. idiv ebx ; Деление edx:eax на ebx (результат в eax, остаток в edx)
  36. mov dword [quotient], eax ; Сохранение частного в переменную quotient
  37.  
  38. ; Выход из программы
  39. mov eax, 1 ; Код завершения программы
  40. xor ebx, ebx ; Ошибка выхода
  41. int 0x80 ; Вызов системного вызова для выхода из программы
  42.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Standard output is empty