เราใช้งานคอมพิวเตอร์ในงานหลักใหญ่อยู่สามประการได้แก่ การคำนวณ การทำงานซ้ำ และการตัดสินใจเลือกตามข้อมูล และวิธีการต่างๆ ประการแรกที่สำคัญคือการคำนวณ การที่จะให้เครื่องคอมพิวเตอร์ที่ใช้ชุดคำสั่ง 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)