fork download
  1. section .data
  2. num1 dd 8 ; Первое число (имитация ввода)
  3. num2 dd 3 ; Второе число (имитация ввода)
  4. product dd 0 ; Место для хранения результата умножения
  5. quotient dd 0 ; Место для хранения результата деления
  6. remainder dd 0 ; Место для хранения остатка (для полноты)
  7.  
  8. section .text
  9. global _start
  10.  
  11. _start:
  12. ; *** Умножение ***
  13. mov eax, [num1] ; Загружаем первое число в EAX
  14. mov ebx, [num2] ; Загружаем второе число в EBX
  15. mul ebx ; EAX = EAX * EBX (результат в EDX:EAX)
  16. mov [product], eax ; Сохраняем результат умножения
  17.  
  18. ; *** ВАЖНО: Код для вывода результата умножения ***
  19. ; Замените этот раздел реальным кодом для вывода значения product!
  20. ; Пример: printf("Произведение: %d\n", product);
  21.  
  22. ; *** Деление ***
  23. mov eax, [product] ; Загружаем результат умножения (делимое) в EAX
  24. mov ebx, [num2] ; Загружаем делитель (num2) в EBX
  25. xor edx, edx ; Обнуляем EDX (перед делением!)
  26. div ebx ; EAX = EDX:EAX / EBX (частное в EAX, остаток в EDX)
  27. mov [quotient], eax ; Сохраняем частное
  28. mov [remainder], edx ; Сохраняем остаток
  29.  
  30. ; *** ВАЖНО: Код для вывода результата деления (частного и остатка) ***
  31. ; Замените этот раздел реальным кодом для вывода значений quotient и remainder!
  32. ; Пример: printf("Частное: %d, Остаток: %d\n", quotient, remainder);
  33.  
  34. ; Завершение программы
  35. mov eax, 1 ; Системный вызов exit (Linux)
  36. xor ebx, ebx ; Код возврата 0
  37. int 0x80
  38.  
  39. ; Альтернативный вариант завершения для Windows:
  40. ; push 0
  41. ; call ExitProcess
  42.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Standard output is empty