fork download
  1. section .data
  2. D316 dd 0xD316 ; Значение D316
  3. X dd 0 ; Значение X
  4. Y dd 0 ; Значение Y
  5. Z dd 0 ; Значение Z
  6. F dd 0 ; Результат F
  7.  
  8. section .text
  9. global _start
  10.  
  11. _start:
  12. ; Загружаем значения в регистры
  13. mov eax, [D316] ; EAX = D316
  14. sub eax, [X] ; EAX = D316 - X
  15. shl eax, 1 ; EAX = (D316 - X) * 2
  16.  
  17. ; Считаем (Y + Z) / 4
  18. mov ebx, [Y] ; EBX = Y
  19. add ebx, [Z] ; EBX = Y + Z
  20. shr ebx, 2 ; EBX = (Y + Z) / 4
  21.  
  22. ; Вычисляем F = (D316 - X) * 2 - (Y + Z) / 4
  23. sub eax, ebx ; EAX = F
  24.  
  25. ; Сохраняем результат в переменную F
  26. mov [F], eax ; F = результат
  27.  
  28. ; Завершение программы (для Linux)
  29. mov eax, 1 ; syscall: exit
  30. xor ebx, ebx ; статус: 0
  31. int 0x80 ; вызов ядра
  32.  
Success #stdin #stdout 0s 5256KB
stdin
Standard input is empty
stdout
Standard output is empty