1 Structures & Records SCC : Suthida Chaichomchuen
2 Structure : Definition l การจัดโครงสร้างข้อมูลชนิดใหม่ โดย ประกอบด้วยกลุ่มของข้อมูลหลายชนิด ซึ่ง เมื่ออยู่รวมกันแล้วจะเป็นกลุ่มข้อมูลที่มี ความหมายใหม่
3 StructureNameSTRUC [Defined fields] StructureNameENDS Structure : General Format
4 Structure : Example กำหนดโครงสร้างข้อมูลแบบ Structure ชื่อ Personal ประกอบด้วยข้อมูล 4 ฟิลด์ PERSONALSTRUC IDDB0,0 NAMEDB10 DUP (?) AGEDB? SALARYDW? PERSONALENDS
5 Structure : Variable define การกำหนดตัวแปรชนิด Structure มีรูปแบบดังนี้ VarNameStructureName<> ชื่อตัวแปรชื่อ Structureสัญลักษณ์ การกำหนดค่า
6 Structure : Variable : Example1 Emp1PERSONAL<> เป็นการประกาศให้ตัวแปร Emp1 เป็นชนิด structure ชื่อ Personal โดยไม่มีการกำหนดค่า เริ่มต้นให้กับตัวแปร
7 Structure : Variable : Example2 Emp2PERSONAL100 Dup (<>) เป็นการประกาศให้ตัวแปร Emp2 เป็นชนิด structure ชื่อ Personal จำนวน 100 ชุด และ ไม่มีค่าเริ่มต้น
8 Structure : Operation การกำหนดค่าในแต่ละฟิลด์ของตัวแปร structure ใช้รูปแบบดังนี้ Var_name.Field_name ชื่อตัวแปร.ชื่อฟิลด์
9 Structure : Operation : Example1 MOVAL, Emp1.Name[2] คัดลอกค่าในไบต์ที่ 3 ของฟิลด์ Name ในตัวแปร Emp1 ใส่ในรีจิสเตอร์ AL
10 Structure : Operation : Example2 MOVAL, Emp2 + 4*15.Name[2] คัดลอกข้อมูลไบต์ที่ 3 ของฟิลด์ Name ของชุด ข้อมูลที่ 5 ในตัวแปร Emp2 มาใส่ในรีจิสเตอร์ AL
11 Record : Definition l การจัดโครงสร้างข้อมูลชนิดใหม่ โดย ประกอบด้วยกลุ่มข้อมูลในระดับบิต ซึ่งขนาด ของชุดข้อมูลนั้น จะมีการจัดเก็บเป็นจำนวน ไบต์
12 Record : General Format RecordNameRECORDFieldName : width=exp, … ชื่อเรคอร์ดRECORDชื่อฟิลด์ : ขนาด=ค่าเริ่มต้น,...
13 Record : Example เป็นการประกาศใช้โครงสร้างข้อมูลชนิดเรคอร์ด ชื่อ Pattern ซึ่งประกอบด้วย 4 ฟิลด์ PATTERNRECORDOPCODE:5, MODE:3, OPR1:4=8, OPR2:4
14 Record : Variable define การกำหนดตัวแปร Record มีรูปแบบดังนี้ VarNameRecordName<> ชื่อตัวแปรชื่อเรคอร์ดสัญลักษณ์ที่ใช้ กำหนดค่าเริ่มต้น
15 Record : Variable : Example1 Attrib1PATTERN<> เป็นการประกาศให้ตัวแปร Attrib1 เป็นชนิด Record ชื่อ Pattern โดยไม่มีการกำหนดค่า เริ่มต้นให้กับตัวแปร
16 Record : Variable : Example2 Attrib2PATTERN เป็นการประกาศให้ตัวแปร Attrib2 เป็นชนิด Record ชื่อ Pattern โดยมีการกำหนดค่าเริ่มต้น ให้กับตัวแปรทั้ง 4 ฟิลด์
17 WIDTH operator l ใช้เพื่อหาค่าขนาดของเรคอร์ด หรือขนาดของ แต่ละฟิลด์ในเรคอร์ด l ขนาด หมายถึง จำนวนบิต l รูปแบบคือ WIDTHชื่อเรคอร์ด/ชื่อฟิลด์ เช่นMOV BH, WIDTH PATTERN Record : Operators
18 MASK operator l เป็นการกำหนดให้ค่าบิตของฟิลด์ที่ถูก mask เป็น 1 ส่วนฟิลด์อื่นที่ไม่ถูก mask ค่าของบิต จะเป็น 0 l รูปแบบคือ MASK ชื่อเรคอร์ด/ชื่อฟิลด์ เช่นMOV AX, MASK MODE Record : Operators
19 l เมื่อต้องการนำค่าในแต่ละฟิลด์มาใช้งาน จะต้องทำการเลื่อนบิตไปทางขวามือก่อน โดย จำนวนครั้งที่ต้องเลื่อนสามารถใช้คำสั่งดังนี้ MOVCL, ชื่อฟิลด์ เช่นMOVCL, OPR1 Record : Shift count
20 MOVAL, WIDTH OPR1 กำหนดให้ค่าในรีจิสเตอร์ AL มีค่าเท่ากับขนาด ของฟิลด์ OPR1 Record : Operators : Example1
21 MOVBX, MASK OPR2 ถ้ามีการประกาศใช้ข้อมูลแบบ record ดังนี้ PATTERNRECORDOPCODE:5, MODE:3, OPR1:4=8, OPR2:4 จะได้ว่า BX= B Record : Operators : Example2
22 MOVCL, OPCODE ถ้ามีการประกาศใช้ข้อมูลแบบ record ดังนี้ PATTERNRECORDOPCODE:5, MODE:3, OPR1:4=8, OPR2:4 จะได้ว่า CL=11 (Decimal) Record : Operators : Example3