คุณสามารถเขียนรหัสของคุณในแอสเซมบลีแปลง (ด้วยตนเอง) เป็นรหัสเครื่อง
ใช่
รหัสสามารถเขียนได้ "ออกจากหัวของคุณ" ในไบนารีถ้าคุณต้องการ
ยาว (ยาว) นานมาแล้วนี่คือวิธีที่ฉันเริ่มใช้ (แล้ว) ไมโครโปรเซสเซอร์
ฉันและเพื่อน ๆ จะเขียนโค้ดเป็นภาษาแอสเซมบลีรวบรวมด้วยตนเองในรหัสเครื่อง (สิ่งที่คุณสามารถทำได้ "โดยการตรวจสอบ" หลังจากฝึกฝน) แล้วใส่มันลงในโปรเซสเซอร์โดยใช้วิธีการต่าง ๆ ในระบบเดียวที่เราสร้างขึ้นเราจะตั้งค่าที่อยู่บนสวิทช์ไบนารี (เปิด) หรือใช้คุณสมบัติการเพิ่มอัตโนมัติของโปรเซสเซอร์ป้อน 8 บิตข้อมูลบนสวิทช์ไบนารีแล้วกดสวิตช์ "นาฬิกา" เพื่อป้อนข้อมูลไปยังหน่วยความจำ
การทำงานที่เทียบเท่าสามารถทำได้ด้วยสวิตช์ที่น้อยลงบนไมโครคอนโทรลเลอร์ที่ทันสมัยโดยใช้การเขียนโปรแกรม SPI แบบอนุกรม - ดูด้านล่าง
... และจากนั้นใช้พลังงานกับพินที่เหมาะสมโดยใช้แหล่งจ่ายแรงดันไฟฟ้า?
ใช่
แต่มันจะช้าอย่างไม่น่าเชื่อ !
ไมโครคอนโทรลเลอร์ที่ทันสมัยจำนวนมากอนุญาตให้ใช้อินเทอร์เฟซ "SPI" สำหรับการเขียนโปรแกรม
โดยทั่วไปประกอบด้วยสายข้อมูลอินพุตและเอาต์พุตและบรรทัด "นาฬิกา" และโดยปกติจะเป็นบรรทัดรีเซ็ต
โปรเซสเซอร์หลายตัวอนุญาตให้นาฬิกาและข้อมูล SPI เป็น "แบบคงที่" ซึ่งหมายความว่าไม่มีข้อ จำกัด เกี่ยวกับระยะเวลาที่คุณสามารถใช้ในการตั้งค่าข้อมูลระหว่างบิต คุณสามารถตั้งโปรแกรมตัวประมวลผลดังกล่าวโดยใช้สายข้อมูลและสายนาฬิกาซึ่งขับเคลื่อนโดยสวิตช์ที่ดำเนินการด้วยตนเอง บรรทัดของนาฬิกาจะต้อง "เด้งฟรี" - คุณต้องสามารถตั้งค่าให้สูงหรือต่ำในช่วงการเปลี่ยนภาพต่อการดำเนินการครั้งเดียวดังนั้นอินเทอร์เฟซขั้นต่ำอาจต้องรวมถึงประตูที่เปิดใช้ของ Schmitt คุณอาจ "หนีไปกับ" แค่ความล่าช้า RC และสวิตช์ปุ่มกด แต่อินพุตของ Schmitt นั้นปลอดภัยกว่า สายข้อมูลไม่จำเป็นต้องถูกตีกลับฟรีเนื่องจากสถานะนั้นถูกอ่านที่ขอบนาฬิกาเท่านั้น
อินเทอร์เฟซบางอย่างเป็นแบบโต้ตอบ - ข้อมูลถูกส่งออกโดยตัวประมวลผลในระหว่างการเขียนโปรแกรม (เช่น data out = MISO = Master In Serial Out บนตัวประมวลผล AVR) หากต้องการอ่านสิ่งนี้คุณต้องเพิ่มเช่น LED และตัวต้านทาน (และอาจเป็นบัฟเฟอร์หรือทรานซิสเตอร์หากความสามารถของไดรฟ์ต่ำมาก ๆ )
MC6800:
จากหน่วยความจำแบบกึ่งซีดจาง (เกือบ 40 ปี!)
LDI A, $ 7F ...... 86 7F ...... 1,000 0110 0111 1111
STA, $ 1234 ...... B7 12 34 ... 1011 0111 0001 0010 0011 00100
LDI X, $ 2734 .. . CE 27 34 ... 1100 1110 0010 0111 0011 0100
...