Macro Language and the Macro Processor บทที่ 4 Macro Language and the Macro Processor 15/08/47 Macro Language and the Macro Language
จุดประสงค์การเรียนการสอน 4. แมคโคร 41 เข้าใจความรู้พื้นฐานเกี่ยวกับแมคโคร 411 เขียนโปรแกรม โดยใช้แมคโคร 412 เขียนโปรแกรมเรียกแมคโคร จากแมคโครภายใน 15/08/47 Macro Language and the Macro Language
จุดประสงค์การเรียนการสอน (ต่อ) 42 มีทักษะในการออกแบบตัวแอสเซมเบลอร์ ที่สามารถใช้ชุดคำสั่ง แมคโคร 421 อธิบายขั้นตอนการออกแบบแมคโครแอสเซมเบลอร์ 422 อธิบายข้อกำหนดของปัญหาของแมคโครแอสเซมเบลอร์ 423 อธิบายโครงสร้างข้อมูลของแมคโครแอสเซมเบลอร์ 424 อธิบายฐานข้อมูลของแมคโครแอสเซมเบลอร์ 425 อธิบายซิมโบลเทเบิ้ลของแมคโครแอสเซมเบลอร์ 426 อธิบายแมคโครแอสเซมเบลอร์ ในส่วน พาส -วัน 427 อธิบายแมคโครแอสเซมเบลอร์ ในส่วน พาส-ทู 15/08/47 Macro Language and the Macro Language
คำสั่งแมโคร Macro Instructions (หรือเรียกสั้นๆ Macro) คำสั่งเดียว ใช้แทนคำสั่งกลุ่มหนึ่งหรือชุดหนึ่ง โดยปกติ จะประกอบด้วยคำสั่ง หลาย ๆ คำสั่ง ที่ผู้ทำโปรแกรมนำมารวมไว้ คำสั่งแมโครนี้จะมีการกำหนดเป็นชื่อคำสั่งไว้ในตอนต้นโปรแกรม เมื่อใดก็ตามที่มีการเรียกชื่อคำสั่งที่กำหนดไว้นี้ ก็จะเป็นการเรียกใช้กลุ่มคำสั่งที่ประกอบด้วยคำสั่งทั้งชุดนั้น คำสั่งแมโครนี้ เราสามารถเรียกใช้ได้ตลอดเวลาที่เรียกใช้โปรแกรมนั้นอยู่ หรือทุกแห่งที่ต้องการเรียกใช้คำสั่งกลุ่มนั้น 15/08/47 Macro Language and the Macro Language
ตัวแปลแมโคร macro assembler เป็นโปรแกรมคอมพิวเตอร์ที่ใช้งานในการสร้างโปรแกรมแมโคร มีหน้าที่แปลภาษาที่ใช้ในแมโคร ให้เป็นภาษาแอสเซมบลี (assembly language) แต่ละข้อคำสั่งในโปรแกรมภาษาแอสเซมบลีนั้นใช้แทนคำสั่งภาษาเครื่อง (machine language) หลายคำสั่งได้ ฉะนั้นถ้าเขียนแมโครเก็บไว้ เมื่อเรียกมาใช้ก็จะทำให้สะดวก ไม่ต้องพิมพ์คำสั่งยาว ๆ 15/08/47 Macro Language and the Macro Language
Macro Language and the Macro Language : A 1, DATA A 2, DATA A 3, DATA DATA DC F’5’ ซ้ำกัน สามารถทำเป็น Macro หนเดียวด้วยชื่อย่อ แล้วเรียกใช้ได้หลายหน 15/08/47 Macro Language and the Macro Language
Macro Language and the Macro Language Macro Instruction Definition Format MACRO Start of definition [ ] Macro name ------------ ------------ Sequence to be ------------ abbreviated MEND End of definition 15/08/47 Macro Language and the Macro Language
ตัวอย่างภาษาแอสเซมลี้ที่เขียนซ้ำ ตัวอย่างที่ 1 : A 1, DATA A 2, DATA A 3, DATA DATA DC F’5’ ซ้ำกัน สามารถทำเป็น Macro หนเดียวด้วยชื่อย่อ แล้วเรียกใช้ได้หลายหน 15/08/47 Macro Language and the Macro Language
Macro Language and the Macro Language SOURCE MACRO INCR A 1, DATA A 2, DATA A 3, DATA MEND : DATA DC F’5’ EXPANDED SOURCE 15/08/47 Macro Language and the Macro Language
4.2 Features of a Macro Facility ตัวอย่างที่แล้ว ยังไม่มีประสิทธิภาพพอ กรณีข้อมูลมีหลายชุด ที่แอดเดรสแตกต่างกัน 15/08/47 Macro Language and the Macro Language
4.2.1 Macro Instruction Arguments เพิ่ม Macro dummy arguments 15/08/47 Macro Language and the Macro Language
Macro Language and the Macro Language ตัวอย่างที่ 2 : A 1, DATA1 A 2, DATA1 A 3, DATA1 A 1, DATA2 A 2, DATA2 A 3, DATA2 DATA1 DC F’5’ DATA2 DC F’10’ คล้าย แต่ไม่เหมือน 15/08/47 Macro Language and the Macro Language
Macro Language and the Macro Language SOURCE MACRO INCR &ARG A 1, &ARG A 2, &ARG A 3, &ARG MEND : INCR DATA1 INCR DATA2 DATA1 DC F’5’ DATA2 DC F’10’ EXPANDED SOURCE A 1, DATA1 A 2, DATA1 A 3, DATA1 A 1, DATA2 A 2, DATA2 A 3, DATA2 15/08/47 Macro Language and the Macro Language
Macro Language and the Macro Language ตัวอย่างที่ 3 : LOOP1 A 1, DATA1 A 2, DATA2 A 3, DATA3 LOOP2 A 1, DATA3 A 3, DATA1 DATA1 DC F’5’ DATA2 DC F’10’ DATA3 DC F’15’ คล้าย แต่ไม่เหมือน 15/08/47 Macro Language and the Macro Language
Macro Language and the Macro Language Argument ตรงตำแหน่ง SOURCE MACRO &LAB INCR &ARG1,&ARG2,&ARG3 &LAB A 1, &ARG1 A 2, &ARG2 A 3, &ARG3 MEND : LOOP1 INCR DATA1,DATA2,DATA3 LOOP2 INCR DATA3,DATA2,DATA1 DATA1 DC F’5’ DATA2 DC F’10’ DATA3 DC F’15’ EXPANDED SOURCE LOOP1 A 1, DATA1 A 2, DATA2 A 3, DATA3 LOOP2 A 1, DATA3 A 3, DATA1 15/08/47 Macro Language and the Macro Language
เขียนโดยใช้ Macro อีกรูปแบบ SOURCE MACRO INCR &ARG1,&ARG2,&ARG3, &LAB &LAB A 1, &ARG1 A 2, &ARG2 A 3, &ARG3 MEND : INCR DATA1,DATA2,DATA3,LOOP1 INCR DATA3,DATA2,DATA1,LOOP2 DATA1 DC F’5’ DATA2 DC F’10’ DATA3 DC F’15’ EXPANDED SOURCE LOOP1 A 1, DATA1 A 2, DATA2 A 3, DATA3 LOOP2 A 1, DATA3 A 3, DATA1 15/08/47 Macro Language and the Macro Language
4.2.2 การใช้คำสั่งเงื่อนไขในแมโคร 2 คำสั่งที่สำคัญคือ AIF และ AGO AIF เป็นคำสั่ง กระโดดไปทำ แบบมีเงื่อนไข AGO เป็นคำสั่ง กระโดดไปทำ แบบไม่มีเงื่อนไข .LABELNAME เป็นแอดเดรสที่คำสั่ง AIF และ AGO กระโดดไปทำ 15/08/47 Macro Language and the Macro Language
ตัวอย่างที่ 4 การใช้คำสั่งเงื่อนไขในแมโคร ตัวอย่างที่ 4 การใช้คำสั่งเงื่อนไขในแมโคร : LOOP1 A 1, DATA1 A 2, DATA2 A 3, DATA3 LOOP2 A 1, DATA3 LOOP3 A 1, DATA1 DATA1 DC F’5’ DATA2 DC F’10’ DATA3 DC F’15’ 15/08/47 Macro Language and the Macro Language
Macro Language and the Macro Language SOURCE MACRO &ARG0 VARY &COUNT,&ARG1,&ARG2,&ARG3 &ARG0 A 1, &ARG1 AIF (&COUNT EQ 1).FINI A 2, &ARG2 AIF (&COUNT EQ 2).FINI A 3, &ARG3 .FINI MEND : LOOP1 VARY 3,DATA1,DATA2,DATA3 LOOP2 VARY 2,DATA3,DATA2 LOOP3 VARY 1,DATA1 DATA1 DC F’5’ DATA2 DC F’10’ DATA3 DC F’15’ EXPANDED SOURCE LOOP1 A 1, DATA1 A 2, DATA2 A 3, DATA3 LOOP2 A 1, DATA3 LOOP3 A 1, DATA1 15/08/47 Macro Language and the Macro Language
4.2.3 การใช้แมโครย่อย ในแมโครหลัก เพราะว่าคำสั่งแมโคร คือคำสั่งเดียว ที่ใช้แทน กลุ่มคำสั่งหลายคำสั่ง ดังนั้นเราจึงสามารถใช้คำสั่งแมโคร ในตัวกำหนดแมโครได้ MACRO ADD1 &ARG L 1, &ARG A 1,=F’1’ ST 1,&ARG MEND ADDS &ARG1,&ARG2,&ARG3 ADD1 &ARG1 ADD1 &ARG2 ADD1 &ARG3 15/08/47 Macro Language and the Macro Language
Macro Language and the Macro Language Source Expand Level1 Expand Level 2 : MACRO ADD1 &ARG L 1, &ARG A 1,=F’1’ ST 1,&ARG MEND ADDS &ARG1,&ARG2, &ARG3 ADD1 &ARG1 ADD1 &ARG2 ADD1 &ARG3 ADDS DATA1,DATA2, DATA3 DATA1 DC F’5’ DATA2 DC F’10’ DATA3 DC F’15’ Expansion of ADDS ADD1 DATA1 ADD1 DATA2 ADD1 DATA3 Expansion of ADD1 L 1,DATA1 ST 1,DATA1 L 1,DATA2 ST 1,DATA2 L 1,DATA3 ST 1,DATA3 15/08/47 Macro Language and the Macro Language
4.2.4 คำสั่งแมโครที่ใช้นิยามแมโคร Definition Of macro DEFINE &SUB MACRO DEFINE &SUB &SUB &Y CNOP 0,4 BAL 1,*+8 DC A(&Y) L 15,=V(&SUB) BALR 14,15 MEND Macro name DEFINE Dummy macro name Align boundary Set Reg 1 Parameter list pointer Address of subroutine Transfer control to subroutine 15/08/47 Macro Language and the Macro Language
Macro Language and the Macro Language การใช้งาน เรียกแมโครนี้ด้วยคำสั่ง เพื่อนิยามแมโครชื่อ COS DEFINE COS COS จะถูกขยายเป็นแมโครตัวใหม่คือ COS AR จากนั้นจะผลิตกลุ่มคำสั่งออกมาเป็น BALR 1,*+8 DC A(AR) address of AR L 15,=V(COS) V denotes address of external symbol BALR 14,15 15/08/47 Macro Language and the Macro Language