เราได้ย้ายจากแอสเซมเบลอร์ไปที่ C ในการเขียนโปรแกรมไมโครโปรเซสเซอร์ ฉันสงสัยว่านี่เป็นความคิดที่ดี
อย่ากลัวเลยไม่มีใครพัฒนาโปรแกรมใหม่ในแอสเซมเบลอร์ 100% อีกต่อไป ทุกวันนี้ C สามารถใช้ได้แม้กับสถาปัตยกรรม 8 บิตที่น้อยที่สุด อย่างไรก็ตามการรู้จักแอสเซมเบลอร์บางตัวทำให้คุณเป็นโปรแกรมเมอร์ C ที่ดีขึ้นอย่างมาก นอกจากนี้ยังมีรายละเอียดเล็กน้อยหรือสองรายการในโปรแกรมที่จำเป็นต้องเขียนในแอสเซมเบลอร์
ฉันสามารถบอกได้ว่าไวยากรณ์ C นั้นง่ายกว่าการเรียนรู้มากกว่า Assembler ไวยากรณ์
ใช่ไวยากรณ์นั้นง่ายกว่าแน่นอน อย่างไรก็ตามการเรียนรู้ภาษา C ทั้งหมดพร้อมรายละเอียดที่น่ารำคาญนั้นซับซ้อนกว่าการเรียนรู้รายละเอียดทั้งหมดของแอสเซมเบลอร์โดยเฉพาะ C เป็นภาษาที่ใหญ่กว่าและกว้างกว่ามาก แต่อีกครั้งคุณอาจไม่จำเป็นต้องเรียนรู้รายละเอียดทั้งหมด
C ใช้งานง่ายขึ้นสำหรับการสร้างโปรแกรมที่ซับซ้อนมากขึ้น
แท้จริงแล้ว C มีกลไกสำหรับการออกแบบโปรแกรมแบบแยกส่วนเช่นการห่อหุ้มและขอบเขต / ตัวแปรเฉพาะที่ และ C มีห้องสมุดมาตรฐานพร้อมด้วยทรัพยากรจำนวนมหาศาลที่ถูกเขียนขึ้นในช่วง 30 ปีที่ผ่านมา และที่สำคัญที่สุด C เป็นแบบพกพา
การเรียนรู้ C นั้นมีประสิทธิภาพมากกว่าการเรียนรู้ผู้ประกอบเนื่องจากมีสิ่งที่พัฒนารอบ C มากกว่าผู้ประกอบการ
C มีฟังก์ชั่นการทำงานมากมาย, ไลบรารีและทรัพยากรที่มีอยู่มากมายดังนั้นจึงมีการคิดค้นล้อน้อยลง แต่นอกเหนือจากนั้นคำแถลงของคุณก็เป็นเรื่องส่วนตัว ฉันเชื่อว่ามันเป็นเรื่องของการตั้งค่าส่วนตัว
ตัวอย่างเช่นฉันเป็นโปรแกรมเมอร์ C ที่มีประสบการณ์บางครั้งเขียนโปรแกรม C ++ ฉันพบว่าตัวเองมีประสิทธิผลน้อยลงใน C ++ เพราะฉันไม่รู้ภาษานั้นและรู้ C. แต่เพียงเพราะฉันรู้สึกอย่างนั้นมันไม่ได้แปลว่าการเขียนโปรแกรมใน C นั้นมีประสิทธิผลมากกว่าการเขียนโปรแกรมใน C ++ โปรแกรมเมอร์ C ++ ผู้มีประสบการณ์จะมีความเห็นตรงกันข้าม
และยังมีอีกหลายแง่มุมที่ "สร้างสรรค์" สิ่งที่สำคัญมากคือเวลาการบำรุงรักษาและโดยเฉพาะเวลาที่ใช้ในการแก้ไขข้อบกพร่องที่เกิดจากการบำรุงรักษา C นั้นง่ายต่อการบำรุงรักษามากกว่าแอสเซมเบลอร์
Assembler เป็นภาษาการเขียนโปรแกรมระดับต่ำกว่า C ดังนั้นมันจึงเป็นสิ่งที่ดีสำหรับการเขียนโปรแกรมโดยตรงกับฮาร์ดแวร์
การเขียนโปรแกรมฮาร์ดแวร์สามารถทำได้โดยตรงในภาษาใดภาษาหนึ่ง สิ่งเดียวที่คุณไม่สามารถทำได้ใน C คือการเข้าถึงตัวชี้สแต็กและการลงทะเบียนเงื่อนไข ฯลฯ ของ CPU core ดังนั้นถ้าด้วยการเขียนโปรแกรมฮาร์ดแวร์คุณหมายถึงการพูดคุยกับซีพียูของคุณเองใช่แล้วแอสเซมเบลอร์อนุญาตให้มากกว่า C ถ้าคุณหมายถึงการเข้าถึงฮาร์ดแวร์ภายนอกแอสเซมเบลอร์ไม่มีประโยชน์สำหรับซี แต่อาจเป็นข้อเสีย รหัสแอสเซมเบลอร์ทั่วไปสำหรับอุปกรณ์ภายนอกที่เฉพาะเจาะจงกว่ารหัส C ทั่วไป
มีความยืดหยุ่นมากยิ่งทำให้คุณทำงานกับหน่วยความจำขัดจังหวะการลงทะเบียนขนาดเล็ก ฯลฯ
สิ่งนี้ไม่ถูกต้อง C ช่วยให้คุณทำสิ่งเหล่านั้นทั้งหมดด้วยเช่นกันแม้ว่าคุณอาจต้องพึ่งพารหัส C เฉพาะคอมไพเลอร์เช่นคำหลักที่ขัดจังหวะ
ในที่สุดคุณจำเป็นต้องรู้ทั้งสองภาษาในการเขียนโปรแกรม MCU โดยเน้นที่ C