Ví dụ, tôi đang chạy Windows 7 64 bit, nhưng có vẻ như tất cả các tài nguyên tốt nhất hiện có để học ngôn ngữ lắp ráp nói về x86. Nếu viết x86 trên x64 là có thể, cách tốt nhất để giải quyết vấn đề này là gì? Có biến đổi trong sự tồn tại? Ngoài ra, một số nguồn lực tốt cho 64 bit lập trình lắp ráp là gì?Viết x86 lắp ráp trên bộ xử lý bit x64
Trả lời
x86 chắc chắn không phải là tốt nhất, đầu tiên, lắp ráp để tìm hiểu. nếu ở tất cả nó là người cuối cùng bạn muốn học. checkout https://github.com/dwelch67 lsasim là một bộ hướng dẫn được thiết kế để học lắp ráp. pcemu_samples là một pcemu được sửa đổi (bộ mô phỏng 8086/88 có khả năng chạy dos), với các cuộc gọi bios/dos bị loại bỏ, đặc biệt cho việc học lắp ráp 8088/86. Tôi khuyên bạn nên khi bạn tiếp cận x86 lắp ráp bạn bắt đầu với 8088/86, một cái gì đó giống như pcemu_samples (nơi bạn buộc phải tập trung vào ngôn ngữ lắp ráp và không gọi hệ thống). dosbox và boch có thể chạy 8088/86 chương trình với dos/bios khi bạn muốn chuyển sang cuộc gọi hệ thống. THEN di chuyển lên 32 và 64 bit cải tiến, đa lõi và tất cả những điều đó.
Bạn sẽ làm cho mình một lợi ích tuyệt vời bằng cách học x86 cuối cùng. msp430, điều lsasim ở trên, cánh tay, ngón tay cái (không phải thumb2) là tất cả các điểm khởi đầu tốt. Học ít tập lệnh khác nhau, nếu không nhiều, cũng sẽ mang lại lợi ích cho bạn rất nhiều. Tôi có mô phỏng cho một số trong đó cung cấp cho bạn khả năng hiển thị tốt vào những gì đang xảy ra, tôi khuyên bạn nên học trên mô phỏng đầu tiên, mô phỏng bạn có thể nhận được tầm nhìn vào.
nếu bạn bắt đầu với 8088/86, sau đó chuyển đến 386/486 rồi chuyển tiếp tới x64 các câu trả lời khác mà bạn nhận được về hướng dẫn (sorta) hoạt động ở mọi nơi sẽ tạo ra rất nhiều ý nghĩa.
Hầu hết các hệ điều hành 64 bit đều có thể chạy các tệp nhị phân 32 bit mà không gặp sự cố. Vì câu hỏi của bạn được gắn thẻ [windows], bạn nên ổn. Nếu bạn làm theo hướng dẫn để xây dựng một nhị phân 32 bit từ các hướng dẫn của bạn, các tệp nhị phân kết quả sẽ hoạt động mà không cần sửa đổi. Nếu bạn đang sử dụng một chuỗi công cụ khác, bạn có thể cần phải tìm lá cờ cho trình biên dịch của bạn tạo ra mã 32 bit thay vì mã 64 bit.
Sự khác biệt giữa lập trình lắp ráp 32 và 64 bit là khá nhỏ. Có một số hướng dẫn mới và cải tiến để xử lý các loại 64 bit, cộng với một số tên đăng ký mới. Có một ABI mới để tranh đấu với, quá. Intel có Hướng dẫn dành cho nhà phát triển phần mềm mô tả tất cả các hướng dẫn có thể có và cách chúng hoạt động.
x64 có thể chạy các ứng dụng x86 mà không gặp bất kỳ khó khăn nào trong hầu hết các trường hợp. Có một số khác biệt trong ABI, nhưng nếu bạn chỉ muốn học lập trình lắp ráp, bất kỳ tài nguyên x86 nào bạn nhìn vào đều phải ổn. Đối với việc học lập trình lắp ráp, đó là một câu hỏi rộng hơn. Bạn có thể muốn xem NASM để bắt đầu.
- 1. Lắp ráp X86 - Xử lý lệnh IDIV
- 2. x86 thành ngữ lắp ráp
- 3. dereferencing một nhãn trong x86 lắp ráp
- 4. Cách xử lý các gói x86 và x64
- 5. x86 Tờ tham khảo lắp ráp
- 6. x86 lắp ráp hướng dẫn: gọi * Reg
- 7. Làm cách nào để sử dụng gcc để biên dịch mã lắp ráp x86 trên máy tính x64
- 8. Lắp ráp cửa sổ 64 bit
- 9. Gỡ lỗi DOS giống như chương trình cho lắp ráp 32 bit x86
- 10. Linux 64 bit, Ngôn ngữ lắp ráp, Sự cố?
- 11. Làm thế nào tôi có thể nhận được kiến trúc bộ vi xử lý của một dll lắp ráp?
- 12. x86 lắp ráp nhân và chia toán hạng lệnh, 16 bit và cao hơn
- 13. Lệnh "khóa" có nghĩa là gì trong lắp ráp x86?
- 14. Cách tốt nhất để học lắp ráp x86 trên nền tảng Linux là gì?
- 15. x86 Dịch vụ gỡ lỗi từ xa trên x64
- 16. Lắp ráp Maven: lắp ráp
- 17. 0x10 trong "hướng dẫn lắp ráp x86 0x10 (% ebx),% eax" x86 là gì?
- 18. Ý nghĩa của XOR trong lắp ráp x86 là gì?
- 19. Lắp ráp nội tuyến x86 này là gì?
- 20. Để học lắp ráp - tôi có nên bắt đầu với 32 bit hoặc 64 bit không?
- 21. Bộ phận lắp ráp và điểm nổi
- 22. Là CIL một ngôn ngữ lắp ráp và JIT là một bộ lắp ráp
- 23. CPU lắp ráp và đa lõi
- 24. Microsoft Fakes x64 không x86 và v4.5
- 25. Entity Framework spinup chậm hơn trên x64 vs x86
- 26. Học lắp ráp ARM
- 27. StackOverflowException được ném trên hệ thống x64; hoạt động đúng trên x86
- 28. Phân bổ bộ nhớ lắp ráp
- 29. Ngôn ngữ lắp ráp - Máy xếp
- 30. TypeLoadException trên x64 nhưng tốt trên x86 với structlayouts
Xem câu hỏi này: http://stackoverflow.com/questions/2352048/assembly-32-bit-vs-64-bit –