Tôi đang làm việc trên hạt nhân của riêng mình bằng cách sử dụng GCC và khi gọi các hàm C từ mã asm, tôi phải tự mình làm add esp,xx
. Sau khi tìm kiếm một số tôi thấy rằng stdcall
là một phát minh của Microsoft và không thể sử dụng nó trong GCC. Có cách nào thuận tiện để thực hiện công việc này không?Có tương đương với stdcall trong GCC không?
Trả lời
Có bất kỳ sự tương đương nào của stdcall trong linux không?
hạt nhân của tôi trong một môi trường linux
Chờ, đây là hạt nhân của riêng bạn, hoặc hạt nhân Linux? Bởi vì nếu đó là hạt nhân của riêng bạn, nó không phải Linux nữa.
Nếu bạn đang làm việc trên Linux, bạn sẽ muốn kết hợp với quy ước gọi điện thông thường và viết lắp ráp của bạn cho phù hợp.
Nếu bạn đang làm việc trên hạt nhân của riêng bạn, bạn có thể làm bất cứ điều gì bạn muốn. GCC và Clang cả hỗ trợ
stdcall
ước gọi trên bộ vi xử lý ix86, ví dụ,#define stdcall __attribute__((stdcall))
Xem: tài liệu tham khảo Function Attributes (GCC manual)
Cảm ơn rất nhiều! Tôi đang biên dịch hạt nhân của riêng tôi với gcc và ai đó nói rằng không có stdcall trong linux gcc. Nhưng nó hoạt động tốt với mã của bạn! – babel92
- 1. GCC tương đương với PDBs
- 2. xách tay tương đương với __ __attribute gcc của (dọn dẹp)
- 3. Clang có tương đương với cờ -align-double của GCC không?
- 4. Có bit tương đương với sizeof() trong C không?
- 5. Có tương đương di động với __attribute__ của gcc (thuần túy) không?
- 6. jquery có tương đương với dojo.hitch() không?
- 7. NotifyIcon có tương đương với MouseDown không?
- 8. Có Python tương đương với HighLine không?
- 9. Python có tương đương với 'chuyển' không?
- 10. Có Java tương đương với libevent không?
- 11. Powerhell có tương đương với popen không?
- 12. Có tương đương C++ với getcwd không?
- 13. Mono có tương đương với ILDASM không?
- 14. Tương đương __declspec (trần trụi) trong gcc/g ++
- 15. Có tương đương với "gettimeofday" trong .NET
- 16. Có 'không tương đương' trong GORM không?
- 17. Có tương đương C++ với BigDecimal của Java không?
- 18. Có tương đương di động với DebugBreak()/__ gỡ rối không?
- 19. MSVC tương đương với __builtin_popcount?
- 20. Có tương đương epoll trong Java không?
- 21. Có tương đương XDomainRequest trong Firefox không?
- 22. Có tương đương với __if_exists trong gnu C++ không?
- 23. Có tương đương với str_replace trong C++ không?
- 24. Có tương đương với tĩnh của C trong C# không?
- 25. C# có tương đương với gói #pragma trong C++ không?
- 26. Có tương đương với F # Seq.windowed trong C# không?
- 27. Có tương đương với "điều này" trong PowerShell không?
- 28. Có R Markdown tương đương với \ Sexpr {} trong Sweave không?
- 29. Có tương đương với getch() từ C++ trong Java không?
- 30. Ruby có tương đương với TimeSpan trong C# không?
Vì bạn nói rằng đó là hạt nhân của riêng mình, tôi đã gỡ bỏ sang Linux. –