next up previous contents index
Next: การเก็บตัวแปรการคำนวณในคอมพิวเตอร์ฮาร์ดแวร์ Up: คำสั่ง: ภาษาของคอมพิวเตอร์ Previous: กล่าวนำ   Contents   Index

การทำงานของคอมพิวเตอร์ฮาร์ดแวร์

เราใช้งานคอมพิวเตอร์ในงานหลักใหญ่อยู่สามประการได้แก่ การคำนวณ การทำงานซ้ำ และการตัดสินใจเลือกตามข้อมูล และวิธีการต่างๆ ประการแรกที่สำคัญคือการคำนวณ การที่จะให้เครื่องคอมพิวเตอร์ที่ใช้ชุดคำสั่ง MIPS ทำการคำนวณ ทำได้โดยใช้ชุดของสัญญลักษณ์ที่เป็นคำสั่งดังต่อไปนี้

add a, b, c
โดยคำสั่งจะทำการบวกค่าในตัวแปร b และ c ลงใน a คำสั่งของการทำการคำนวณบวกลบคูณหาร ของ MIPS จะตัวแปรจำกัดเพียงสามตัว และจะกระทำการทางคณิตศาสตร์เพียงหนึ่งอย่าง ถ้าเราต้องการบวกตัวแปร b, c, d, และ e ลงในตัวแปร a

add a, b, c # The sum of b and c is placed in a.
add a, a, d # The sum of b, c, and d is placed in a.
add a, a, e # The sum of b, c, d, and e is placed in a.

จากชุดคำสั่งขั้นต้นจะเป็นการบวกตัวแปรสี่ตัวเข้าด้วยกัน

คำอธิบายหลังเครื่องหมาย # จะไม่มีผลกับการทำงานของโปรแกรม คำ หรือ ประโยคที่ตามมามีไว้สำหรับเป็นการบันทึกขั้นตอนทำให้สามารถเข้าใจการทำงานให้ดียิ่งขึ้น (Comment) การเขียนคอมเมนต์สำคัญมาก และควรฝึกเป็นนิสัยในการพัฒนาโปรแกรมใดๆ การคอมเมนต์จะถือว่าสิ้นสุดเมื่อจบบรรทัด ซึ่งจะต่างจากภาษา C ที่ต้องมีการปิด

จำนวนของตัวแปรดำเนินการหรือเรียกว่า Operand ในการคำนวณมีจำกัดเพียงสามตัว เลขสองตัวจะถูกบวกเข้าด้วยกัน และนำมาใส่ไว้ที่ตัวแปรตัวแรก การที่กำหนดให้มีตัวแปรเพียงสามตัวเท่านั้นเป็นการกำหนดเพื่อให้มีความสอดคล้องกับการออกแบบฮาร์ดแวร์ ซึ่งการออกแบบฮาร์ดแวร์ที่รองรับตัวแปรที่มีจำนวนไม่คงที่ทำได้ยากกว่า และมีความซับซ้อนกว่าการออกแบบฮารด์แวร์ สำหรับคำสั่งที่มีตัวแปรคงที่ จากเหตุผลดังกล่าว จึงเป็นที่มาของหลักการพื้นฐานในการออกแบบคอมพิวเตอร์ซึ่งได้แก่

Design Principle 1: Simplicity favors regularity.

การแปลงภาษา C เป็น MIPS

การทำการคำนวณทางคณิตศาสตร์กับตัวแปรห้าตัว a, b, c, d, และ e สามารถแสดงจากภาษาระดับสูงดังต่อไปนี้

a = b + c;
d = a - e;

จากการทำการแปลงให้เป็นภาษาแอสแซมบลีของ MIPS โดยตัวแปลงภาษา ซึ่งคำสั่ง MIPS จะดำเนินการกับตัวแปรทั้งสองตัว และนำผลลัพธ์ที่ได้ไปใส่ไว้ในตัวแปรผลลัพธ์ จากคำสั่งของภาษาข้างบนสามารถแปลงออกมาเป็นคำสั่งแอสแซมบลีของ MIPS ได้ดังต่อไปนี้

add a, b, c
sub d, a, e

การแปลงชุดของภาษาระดับสูงที่มีความซับซ้อนขึ้น โดยมีตัวแปรเป็น f, g, h, i, และ j

f = (g + h) - (i + j);

ตัวแปลงภาษาจะทำการแยกออกเป็นหลายคำสั่งเนื่องจากหนึ่งคำสั่งของภาษาแอสแซมบลีของ MIPS กระทำการเพียงหนึ่งการทำงาน โดยที่คำสั่งแรกจะทำการคำนวณผลบวกของ g และ h ซึ่งเราจะเก็บค่าผลลัพธ์ไว้ในตัวแปรชั่วคราว ชื่อว่า t0

add t0, g, h # temporary variable t0 contains g + h

หลังจากที่ทำการบวกในนิพจน์แรกแล้ว เราสามารถทำการบวก i กับ j เข้าด้วยกัน และรวมผลไว้ใน t1 ก่อนทำการลบค่าเพื่อให้ได้ผลลัพธ์

add t1, i, j # temporary variable t1 contains i + j

ในขั้นตอนสุดท้าย เราสามารถทำการลบค่าผลบวกที่ได้ทำการคำนวณในตอนแรก และนำมาใส่ในตัวแปร f

sub f, t0, t1 # f gets  t0 - t1, which is (g + h)-(i + j)


next up previous contents index
Next: การเก็บตัวแปรการคำนวณในคอมพิวเตอร์ฮาร์ดแวร์ Up: คำสั่ง: ภาษาของคอมพิวเตอร์ Previous: กล่าวนำ   Contents   Index
Vara Varavithya 2006-11-06