6.2 Data Processing Instruction
รูปแบบทั่วๆไปของคำสั่งในกลุ่มนี้คือ
....
แต่ละคำสั่งจะมี หนึ่ง Result และ สอง Operand โดย Result และ Operand ตัวแรกจะต้องเป็น Register ส่วน Operand ตัวต่อมานั้นจะเป็น Register หรือ ค่าคงที่
นอกจากนั้น ARM7 core ยังมี Barrel Shifter ที่จะทำให้ Operand ตัวที่สองสามารถเลื่อนให้เต็ม 32 บิต ภายในคำสั่งนั้น ส่วน S-bit ถูกใช้ในการควบคุม CC ถ้าถูก Set จะทำให้ CC เปลี่ยนแปลงตามการประมวลผล แต่ถ้า Clear ก็จะไม่ส่งผลต่อค่าของ CC เมื่อมีการประมวลผล และในกรณีที่ R15 (PC) ถูกใช้เป็น Result Register และทำการ Ser ค่า S-bit จะทำให้ค่า SPSR ของ mode ในขณะนั้น คัดลอกใส่ CPSR เอง ซึ่งจะใช้ในการจบ Exception นั้น แล้วกลับเข้าไปยัง mode เดิม อย่าทดลองการทำงานแบบนี้ใน User mode เพราะว่ามันไม่มี SPSR
…ตาราง
ด้วยคุณสมบัตินี้ทำให้เรามีชุดคำสั่งในการประมวลผลมากมาย ซึ่งช่วยในการพัฒนางาน หรืออาจจะเป็นฝันร้ายสำหรับ ผู้ที่ออกแบบตัวแปลภาษา ตัวอย่างทั่วๆไปของคำสั่ง ARM เช่น
if(z==1)
R1 = R2 + (R3 x 4)
เมื่อถูกแปลแล้วจะได้ EQADDS R1, R2, R3, LSL #2
ไม่มีความคิดเห็น:
แสดงความคิดเห็น