ฉันจะตอบคำถามของคุณอย่างแท้จริงและอภิปรายเกี่ยวกับไมโครโปรเซสเซอร์ส่วนใหญ่ไม่ใช่คอมพิวเตอร์โดยทั่วไป
คอมพิวเตอร์ทุกเครื่องมีรหัสเครื่อง คำสั่งประกอบด้วย opcode และตัวถูกดำเนินการหนึ่งตัวขึ้นไป ตัวอย่างเช่นคำสั่ง ADD สำหรับIntel 4004 (ไมโครโปรเซสเซอร์ตัวแรก) ถูกเข้ารหัสเป็น 1000RRRR โดยที่ 1000 คือ opcode สำหรับ ADD และ RRRR แทนหมายเลขทะเบียน
โปรแกรมคอมพิวเตอร์แรก ๆ เขียนด้วยมือเขียนด้วยมือ 1 และ 0 เพื่อสร้างโปรแกรมในภาษาเครื่อง จากนั้นจะถูกโปรแกรมเข้าไปในชิป ไมโครโปรเซสเซอร์ตัวแรกใช้ ROM (หน่วยความจำแบบอ่านอย่างเดียว); นี่คือภายหลังถูกแทนที่ด้วยEPROM (Erasable Programmable ROM ซึ่งถูกลบด้วยแสง UV); ตอนนี้โปรแกรมมักจะถูกโปรแกรมเข้าไปในEEPROM ( "Electrically ...- EPROM"ซึ่งสามารถลบบนชิป) หรือหน่วยความจำแฟลชโดยเฉพาะ
ไมโครโปรเซสเซอร์ส่วนใหญ่สามารถเรียกใช้โปรแกรมออกจาก RAM (ซึ่งเป็นมาตรฐานที่ค่อนข้างมากสำหรับทุกอย่างยกเว้นไมโครคอนโทรลเลอร์) แต่จะต้องมีวิธีในการโหลดโปรแกรมลงใน RAM ในตอนแรก เมื่อ Joby Taffey ชี้ให้เห็นในคำตอบของเขาสิ่งนี้ทำด้วยสวิตช์สลับสำหรับ Altair 8080 ซึ่งขับเคลื่อนโดย Intel 8080 (ซึ่งตามหลัง 4004 และ 8008) ในพีซีของคุณมี ROM เล็กน้อยที่เรียกว่าBIOSซึ่งใช้สำหรับเริ่มคอมพิวเตอร์และโหลดระบบปฏิบัติการลงใน RAM
ภาษาเครื่องได้รับความน่าเบื่ออย่างรวดเร็วจริง ๆ ดังนั้นแอสเซมเบลอร์จึงได้รับการพัฒนาที่ใช้ภาษาแอสเซมเบลอร์ mnemonic และแปลโดยทั่วไปหนึ่งบรรทัดของรหัสแอสเซมบลีต่อการเรียนการสอนเป็นรหัสเครื่อง ดังนั้นแทนที่จะเป็น 10000001 เราจะเขียน ADD R1
แต่ต้องมีการเขียนแอสเซมเบลอร์ครั้งแรกด้วยรหัสเครื่อง จากนั้นสามารถเขียนใหม่ในรหัสแอสเซมเบลอร์ของตนเองและรุ่นภาษาเครื่องใช้เพื่อรวบรวมมันในครั้งแรก หลังจากนั้นโปรแกรมสามารถรวบรวมตัวเอง สิ่งนี้เรียกว่าbootstrappingและทำด้วยคอมไพเลอร์ด้วย - โดยทั่วไปแล้วพวกเขาจะเขียนครั้งแรกในแอสเซมเบลอร์ (หรือภาษาระดับสูงอื่น) จากนั้นเขียนใหม่ในภาษาของตนเองและคอมไพล์ด้วยคอมไพเลอร์ดั้งเดิมจนกระทั่งคอมไพเลอร์
เนื่องจากไมโครโปรเซสเซอร์ตัวแรกได้รับการพัฒนามานานหลังจากเมนเฟรมและมินิคอมพิวเตอร์นั้นอยู่ใกล้และ 4004 นั้นไม่เหมาะที่จะใช้งานแอสเซมเบลอร์อยู่ดี Intel อาจเขียน cross-assembler ที่ทำงานบนคอมพิวเตอร์เครื่องใหญ่เครื่องหนึ่งและแปลรหัสประกอบสำหรับ 4004 เป็นอิมเมจไบนารี่ที่สามารถตั้งโปรแกรมเป็น ROM ได้ นี่เป็นเทคนิคทั่วไปที่ใช้ในการคอมไพล์พอร์ตกับแพลตฟอร์มใหม่ (เรียกว่าการคอมไพล์ข้าม )