งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

CS Assembly Language Programming

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "CS Assembly Language Programming"— ใบสำเนางานนำเสนอ:

1 CS344-321 Assembly Language Programming
Period 34

2 ในกรณีการผ่านพารามิเตอร์ทาง stack ควรสร้าง macro สองตัว คือ
enter_proc macro total_local_size push bp mov bp,sp sub sp,total_local_size endm และ

3 exit_proc macro total_para_size
mov sp,bp pop bp ret total_para_size เช่น proc swap สามารถ เรียกใช้ดังนี้

4 swap proc enter_proc 2 . . . exit_proc 4 swap endp

5 Macro Call within Macro Definition
ในส่วน body ของ macro definition สามารถมีการ call macro ได้ เช่น dos21 macro dosfunc mov ah,dosfunc int 21h endm disp macro char mov dl,char dos macro call within macro definition นอกจากนี้ยังมี directive อื่น ๆ เช่น local หรือ conditional ต่าง ๆ ได้ แต่จะไม่กล่าวถึงในที่นี้

6 เช่น การ call disp ดังนี้
disp ‘x’ จะถูก expand เป็น mov dl,’x’ mov ah,02 int 21h

7 Macro V.S. Subroutine macro มีความแตกต่างจาก subroutine คือ
การ call macro กระทำในช่วงการแปล (assemble หรือ compile time) โดยการ expansion ในขณะที่ทำ expansion จะมีการแทน dummy parameter ด้วย actual parameter (ถ้ามี) ส่วน การ call subroutine กระทำในช่วงกระทำการ (execution time) เป็นการจำตำแหน่งของคำสั่งถัดไป และกระโดดไปยัง subroutine ที่ต้องการ การส่งผ่าน parameter ทำได้หลายแบบ เช่น pass by value หรือ pass by reference เป็นต้น ทุกครั้งที่มีการ call macro ส่วน body ของ macro definition จะถูก expand ทุกครั้งและกินเนื้อที่เพิ่มขึ้นเท่ากับจำนวนครั้งที่มีการ call แต่การ call subroutine จะกินเนื้อที่เท่ากับคำสั่ง call เท่านั้น subroutine ที่ถูก call ยังคงกินเนื้อที่เท่าเดิม


ดาวน์โหลด ppt CS Assembly Language Programming

งานนำเสนอที่คล้ายกัน


Ads by Google