ฉันรู้ว่านี่เป็นคำถามที่พบบ่อยมาก แต่ฉันมีมุมที่แตกต่างในใจของฉัน ฉันจะพยายามทำให้ชัดเจนที่นี่
จากสิ่งที่ฉันรู้ทุกคำสั่งที่ CPU ดำเนินการอยู่ในภาษาเครื่องและ CPU ทั้งหมดสามารถทำได้คือการดำเนินการทางคณิตศาสตร์ด้วย ALU และทรานซิสเตอร์ (ถ้าเราไปที่ระดับฮาร์ดแวร์)
อย่างไรก็ตามวิธีนี้ง่ายกว่าการพิมพ์เพื่อทำความเข้าใจ ดังนั้นหาก CPU ทั้งหมดทำการบวกลบออกแล้วเป็นอย่างไรโปรแกรมพูดว่าโปรแกรม JAVA ว่าพิมพ์ Hello World ดำเนินการกับการคำนวณทางคณิตศาสตร์เหล่านี้อย่างไร
ฉันหมายถึงโปรแกรมนี้ถูกแปลงเป็นสิ่งที่เป็นเพียงส่วนเสริมสำหรับซีพียูอย่างไร
ป.ล. หากคำถามนี้ใช้ไม่ได้กับเว็บไซต์นี้ฉันต้องขออภัย
----- ตอนที่สอง -----
ตกลง. ขอบคุณทุกคนที่ตอบคำถามนี้อย่างรวดเร็วและด้วยความกระตือรือร้น ฉันคิดว่าการแก้ไขคำถามของฉันจะดีกว่าไปแสดงความคิดเห็นต่อคำตอบทั้งหมดแล้วถามพวกเขาอีกครั้ง
ดังนั้นนี่คือ
ก่อนอื่นทุกคนตอบคำถามตัวอย่างของ Hello World โดยเฉพาะ นี่คือความผิดของฉัน ฉันควรเก็บยาสามัญนี้ไว้ สวัสดีตัวอย่างโลกนำมาซึ่งคำถามเกี่ยวกับอุปกรณ์ส่งออกและวิธีการประมวลผลของมันไม่ได้ จำกัด อยู่เพียงแค่ CPU ซึ่งถูกนำขึ้นมาอย่างถูกต้องในคำตอบของคุณ
ยังมีพวกคุณหลายคนที่ทราบว่า CPU ทำมากกว่าแค่เพิ่ม ฉันเห็นด้วยกับที่ ฉันไม่ได้เขียนมันและคิดไปตลอดทาง จากสิ่งที่ฉันเข้าใจนี่คือกระบวนการ:
อ่านคำแนะนำจากหน่วยความจำ (โดยใช้ข้อมูลและที่อยู่รถประจำทางและสิ่งที่เคาน์เตอร์โปรแกรม)
- เก็บข้อมูลใน register ภายใน CPU
- ตอนนี้ ALU จะดำเนินการทางคณิตศาสตร์แน่นอนหลังจากถอดรหัสคำแนะนำหรือกระโดดถ้ามันเป็นคำสั่งถ้าชอบ
- แล้วสื่อสารกับทรัพยากรอื่น ๆ ถ้าจำเป็นเช่นอุปกรณ์เอาท์พุทเป็นต้น กระบวนการที่นอกเหนือจากนี้เป็นเพียงเล็กน้อยในตอนนี้
ดังนั้นในขั้นตอนที่ 3 ที่ CPU ถอดรหัสการเรียนการสอนและตัดสินใจที่จะดำเนินการทางคณิตศาสตร์ (ที่นี่เรากำลังสมมติว่าไม่มีการดำเนินการอื่น ๆ เช่นกระโดดคำสั่งปัจจุบัน .. ส่วนใหญ่การดำเนินการทางคณิตศาสตร์เสร็จแล้ว .. ดังนั้นเราจะ ) นี่คือที่การสร้างภาพข้อมูลของฉันสิ้นสุดลง วิธีการเรียนการสอนจากโปรแกรมของฉันเป็นเพียงการดำเนินการทางคณิตศาสตร์สำหรับ CPU มันใช้การดำเนินการทางคณิตศาสตร์และคำสั่งนั้นเพื่อจุดประสงค์ของมัน
ฉันหวังว่าฉันจะทำให้ตัวเองชัดเจนในครั้งนี้
ป.ล. ฉันใช้สมมุติฐานที่ยิ่งใหญ่ที่นี่ว่า ALU ไม่ได้ จำกัด อยู่แค่การดำเนินการทางคณิตศาสตร์ที่แท้จริงที่เราทำในโปรแกรมของเรา แต่จะดำเนินการคำสั่งทั้งหมดซึ่งขณะนี้อยู่ในรูปแบบไบนารีโดยเพิ่มหรือลบ ฯลฯ เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ ให้ผลผลิต. หากฉันผิดที่นี่มากกว่าคำตอบด้านล่างตอบคำถามของฉันอย่างถูกต้อง