2011-12-23 39 views
7

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

+1

Xem câu hỏi này: http://stackoverflow.com/questions/2352048/assembly-32-bit-vs-64-bit –

Trả lời

3

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.

4

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.

1

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.

Các vấn đề liên quan