ฉันเรียนรู้จากหนังสือของ Kip Irvine หากคุณเพิกเฉยต่อคำวิพากษ์วิจารณ์ (ที่ยุติธรรม) เกี่ยวกับห้องสมุด (ที่ไม่เกี่ยวข้อง) ของเขาฉันสามารถแนะนำได้ว่าเป็นคำแนะนำที่ดีเกี่ยวกับภาษาแม้ว่าจะเป็นสิ่งที่น่าสนใจจริงๆที่คุณต้องค้นหาสิ่งที่ครอบงำทางอินเทอร์เน็ต
ฉันคิดว่ามันมีประโยชน์ที่จะเข้าใจสิ่งที่เกิดขึ้นในระดับล่าง ในขณะที่คุณค้นคว้าเกี่ยวกับแอสเซมเบลอร์คุณจะได้เรียนรู้เกี่ยวกับการไปป์ไลน์ของซีพียูการทำนายสาขาการจัดตำแหน่งแคช SIMD การเรียงลำดับคำสั่งและอื่น ๆ ความรู้เหล่านี้จะช่วยให้คุณเขียนโค้ดระดับสูงได้ดีขึ้น
นอกจากนี้ภูมิปัญญาดั้งเดิมคือการไม่พยายามเพิ่มประสิทธิภาพการประกอบด้วยมือเกือบตลอดเวลา แต่ให้คอมไพเลอร์กังวลเกี่ยวกับเรื่องนี้ เมื่อคุณเห็นตัวอย่างของสิ่งที่บิดเบี้ยวที่คอมไพเลอร์สร้างขึ้นคุณจะเข้าใจได้ดีขึ้นว่าทำไมภูมิปัญญาดั้งเดิมจึงมีอยู่
ตัวอย่าง: LFSR ทำงานได้อย่างรวดเร็วด้วยคำสั่งหมุนพร้อมพกพาสำหรับกรณีเฉพาะเช่นนี้การเขียนเวอร์ชันแอสเซมเบลอร์นั้นง่ายพอ ๆ กับการค้นหาว่าคอมไพเลอร์ฉลาดพอที่จะคิดออกหรือไม่ บางครั้งคุณก็รู้บางอย่างที่คอมไพเลอร์ไม่ได้
นอกจากนี้ยังช่วยเพิ่มความเข้าใจเกี่ยวกับปัญหาด้านความปลอดภัยเช่นการเขียนหรือดำเนินการการซ้อนทับ ฯลฯ
ปัญหาการเกิดพร้อมกันบางอย่างจะปรากฏชัดเจนก็ต่อเมื่อคุณทราบถึงสิ่งที่เกิดขึ้นในระดับต่อคำสั่ง
อาจมีประโยชน์ในบางครั้งเมื่อทำการดีบักหากคุณไม่มีซอร์สโค้ดที่สมบูรณ์
มีค่าความอยากรู้อยากเห็น ฟังก์ชันเสมือนถูกนำไปใช้อย่างไร? เคยลองเขียนโปรแกรม DirectX หรือ COM ในแอสเซมเบลอร์หรือไม่? โครงสร้างขนาดใหญ่ได้รับการส่งคืนอย่างไรฟังก์ชันการโทรเสนอพื้นที่ให้หรือในทางกลับกัน?
จากนั้นก็มีภาษาแอสเซมบลีพิเศษสำหรับฮาร์ดแวร์กราฟิกแม้ว่าภาษา shader จะมีระดับสูงเมื่อไม่กี่ปีที่ผ่านมา แต่สิ่งใดก็ตามที่ช่วยให้คุณคิดถึงปัญหาด้วยวิธีที่ต่างออกไป