บทที่ 17 คำสั่งตารางและการสร้างแมคโคร

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
คำสั่งเริ่มต้น รูปแบบ. <HTML>. </HTML>
Advertisements

Introduction to C Introduction to C.
โครงสร้างโปรแกรมภาษา C
บทที่ 3 ภาษาสำหรับเขียนโปรแกรม
บทที่ 11 โปรแกรมย่อยขั้นต้น
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
2.2.3 การแก้ไขแอดเดรส โดยการใช้อินเด็กรีจิสเตอร์
Functional Programming
CS Assembly Language Programming
Structure Programming
CS Assembly Language Programming
ชนิดของข้อมูลและตัวดำเนินการ
องค์ประกอบของโปรแกรม
Algorithms.
บทที่ 3 พื้นฐานการเขียนโปรแกรม Visual Basic
CE 112 บทที่ 5 การทำซ้ำในภาษา C
ภาษาคอมพิวเตอร์.
หน่วยที่ 2 ภาษาโปรแกรม และการออกแบบโปรแกรม
วิชา การเขียนโปรแกรมบนเว็บ (Web-based Programming)
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
โปรแกรมย่อย : Pascal Procedure
Macro Language and the Macro Processor
โครงสร้าง HTML โครงสร้างพื้นฐาน HTML คำสั่งขึ้นบรรทัดใหม่ <BR>
ขั้นตอนการแปลงไฟล์.
ฟังก์ชันของ PHP ฟังก์ชันคือ โปรแกรมย่อยที่สามารถประมวลผล และ คืนผลลัพธ์จาการประมวลผลนั้นสู่โปรแกรมหลักได้ ซึ่งจำเป็นในการเขียนโปรแกรมเพื่อช่วยให้การทำงานมีประสิทธิภาพที่สูงขึ้น.
PROCEDURE <<โปรแกรมย่อย>>
การควบคุมทิศทางการทำงานของโปรแกรม
Computer Architecture and Assembly Language
CS Assembly Language Programming
CS Assembly Language Programming
CS Assembly Language Programming Period 33.
บทที่ 11 การเขียนโปรแกรมภาษาซี
ดีบักเป็นเครื่องมืออันหนึ่งที่ให้ผู้ใช้ ตรวจสอบ และแก้ไขค่าใน หน่วยความจำ โหลด เก็บ ตรวจสอบค่าในเรจิสเตอร์ และสามารถ เขียนโปรแกรมแอสเซมบลีได้อย่าง สะดวก.
บทที่ 15 โปรแกรมย่อยและแสต็ก
บทที่ 10 โครงสร้างควบคุม
ความหมายของตัวเลขในหลักต่าง ๆ
ธนาวินท์ รักธรรมานนท์
ธนาวินท์ รักธรรมานนท์
โปรแกรมภาษาแอสเซมบลี้ (2)
หน่วยที่ 4: คำสั่งควบคุมโปรแกรม (Control Flow Command)
เซกเมนต์ (Segment) โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
อินเทอร์รัพท์ (Interrupt)
Introduction to C Language
ตัวแปรกับชนิดของข้อมูล
ตอนที่ 4 ความรู้พื้นฐานทางดิจิตอล
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
การเขียนเว็บเพจด้วยภาษา php ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
อินเทอร์เน็ตInternet
ตัวแปรกับชนิดของข้อมูล
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
Computer Programming for Engineers
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
PHP การตรวจสอบเงื่อนไข.
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
บทที่ 9 พอยเตอร์. สื่อชุดนี้เป็นลิขสิทธิ์ของสำนักพิมพ์วังอักษรใช้เพื่อ การศึกษาเท่านั้น พอยเตอร์ (Pointer) พอยเตอร์คือต้นฉบับของชนิดข้อมูล เป็นชนิด ข้อมูลที่สร้างจากข้อมูลมาตรฐานชนิดหนึ่ง.
Java Programming Java Structure and Datatype,Variable
การเขียนโปรแกรมคอมพิวเตอร์ 1
หลักการเขียนโปรแกรม ( )
Recursive Method.
ความรู้พื้นฐานเกี่ยวกับการโปรแกรมคอมพิวเตอร์
ตัวแปร และชนิดข้อมูล.
1 Functions กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
บทที่ 5 โปรแกรมย่อย.
Nested loop.
ค31212 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 2
ใบสำเนางานนำเสนอ:

บทที่ 17 คำสั่งตารางและการสร้างแมคโคร คำสั่ง xlat การสร้าง Macro Macro กับ Parameter Macro local variable Macro กับโปรแกรมย่อย 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

คำสั่งเปิดตาราง คำสั่ง XLAT คำสั่งเปิดตารางนี้ทำงานเหมือนคำสั่ง mov al,[bx+al] เขียนโปรแกรมแปลงเลขค่าใน AL เป็นอักขระฐานสิบหกหนึ่งหลัก EX .data hextable db ’0123456789ABCDEF’ ... .code mov bx,offset hextable xlat 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

ตัวอย่าง จงเขียนโปรแกรมย่อยที่รับค่าเป็นตัวเลขโดดฐานสิบหนึ่งตัวทางรีจิสเตอร์ AL แล้วแปลงเลขดังกล่าวเป็นเลขที่มีลำดับตรงกันข้ามกันแล้วให้ผลลัพธ์ในรีจิสเตอร์ AL (เช่น 0 จะแปลงเป็น 9, 1 จะแปลงเป็น 8 เป็นต้น) .data seq db 9,8,7,6,5,4,3,2,1,0 .code conv proc near push bx mov bx, offset seq xlat pop bx ret endp ... 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

แมคโคร แมคโคร รูปแบบการประกาศ ส่วนของโปรแกรมที่ได้รับการตั้งชื่อไว้. เมื่อเราเรียกใช้ชื่อนั้นในโปรแกรมส่วนของโปรแกรมที่มีชื่อดังกล่าวจะถูกนำไปแทนที่. รูปแบบการประกาศ name MACRO parameters ... ENDM EX print macro mov bx,offset msg mov ah,09h int 21h endm .data msg db ’TEST$’ .code … print 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

แมคโคร เมื่อโปรแกรมถูกแปลโปรแกรมที่ได้จะมีลักษณะดังนี้. .data msg db ’TEST$’ .code ... ; print mov bx,offset msg mov ah,09h int 21h 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

พารามิเตอร์ในแมคโคร พารามิเตอร์มีลักษณะคล้ายกับแมคโครซ้อนอยู่ในแมคโครอีกทีหนึ่ง พารามิเตอร์แต่ละตัวจะถูกนำไปแทนที่ในทุกจุดในแมคโครที่เรียกใช้มัน EX print macro prt mov bx,offset prt mov ah,09h int 21h endm .data msg1 db ’TEST$’ msg2 db ’TEST2$’ .code … print msg1 print msg2 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

พารามิเตอร์ในแมคโคร เมื่อโปรแกรมถูกแปลโปรแกรมที่ได้จะมีลักษณะดังนี้. .data msg1 db ’TEST$’ msg2 db ’TEST2$’ .code ... ; print msg1 mov bx,offset msg1 mov ah,09h int 21h ; print msg2 mov bx,offset msg2 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

แมคโครที่ใช้ LABEL ถ้าภายในแมคโครมีการใช้ LABEL test1 macro mov ... label1: ... endm .code test1 เมื่อแมคโครได้รับการขยายจะมีลักษณะดังนี้ .code ... ; test1 mov ... label1: เลเบลซ้ำ 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

แมคโครที่ใช้ LABEL เราสามารถกำหนดให้ MASM สร้าง LABEL ที่มีชื่อไม่ซ้ำกันจากเลเบลของเราได้ เราจะต้องประกาศให้เลเบลเป็นแบบ LOCAL test1 macro local label1 mov ... label1: ... endm ลักษณะของโปรแกรมที่ขยายแล้วจะเป็นดังนี้ .code ... ; test1 mov ... XXXX1: XXXX2: 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล

แมคโครกับโปรแกรมย่อย ข้อแตกต่าง คำสั่งในแมคโครจะถูกนำไปแทนที่ในตำแหน่งที่มีการเรียกใช้. ในการทำงานจริงจะไม่มีการกระโดดไปทำงาน แต่ถ้ามีการเรียกใช้แมคโครหลายครั้งโปรแกรมส่วนนั้นก็จะถูกขยายออกมาหลายครั้ง. โปรแกรมจะเป็นส่วนของโปรแกรมที่มีชุดเดียว. การเรียกใช้โปรแกรมย่อยทุกครั้งจะเป็นการกระโดดไปทำงานในโปรแกรมย่อยนั้น. ข้อดีของแมคโคร ลดเวลาในการกระโดดไปทำงานสำหรับส่วนของคำสั่งที่มีขนาดเล็ก ข้อเสียของแมคโคร ถ้าส่วนของคำสั่งมีขนาดใหญ่ หรือมีการใช้หลายครั้ง จะทำให้โปรแกรมที่ได้จากการแปลมีขนาดใหญ่ด้วย. 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล