220 likes | 358 Views
Structures & Records. SCC : Suthida Chaichomchuen std@kmitnb.ac.th. Structure : Definition. การจัดโครงสร้างข้อมูลชนิดใหม่ โดยประกอบด้วยกลุ่มของข้อมูลหลายชนิด ซึ่งเมื่ออยู่รวมกันแล้วจะเป็นกลุ่มข้อมูลที่มีความหมายใหม่. Structure : General Format. Structure N ame STRUC [Defined fields]
E N D
Structures & Records SCC : Suthida Chaichomchuen std@kmitnb.ac.th
Structure : Definition • การจัดโครงสร้างข้อมูลชนิดใหม่ โดยประกอบด้วยกลุ่มของข้อมูลหลายชนิด ซึ่งเมื่ออยู่รวมกันแล้วจะเป็นกลุ่มข้อมูลที่มีความหมายใหม่
Structure : General Format StructureName STRUC [Defined fields] StructureName ENDS
Structure : Example กำหนดโครงสร้างข้อมูลแบบ Structure ชื่อ Personal ประกอบด้วยข้อมูล 4 ฟิลด์ PERSONAL STRUC ID DB 0,0 NAME DB 10 DUP (?) AGE DB ? SALARY DW ? PERSONAL ENDS
Structure : Variable define การกำหนดตัวแปรชนิด Structure มีรูปแบบดังนี้ VarName StructureName <> ชื่อตัวแปร ชื่อ Structure สัญลักษณ์ การกำหนดค่า
Structure : Variable : Example1 • Emp1 PERSONAL <> • เป็นการประกาศให้ตัวแปร Emp1 เป็นชนิด structure ชื่อ Personal โดยไม่มีการกำหนดค่าเริ่มต้นให้กับตัวแปร
Structure : Variable : Example2 Emp2 PERSONAL 100 Dup (<>) เป็นการประกาศให้ตัวแปร Emp2 เป็นชนิด structure ชื่อ Personal จำนวน 100 ชุด และ ไม่มีค่าเริ่มต้น
Structure : Operation การกำหนดค่าในแต่ละฟิลด์ของตัวแปร structure ใช้รูปแบบดังนี้ Var_name.Field_name ชื่อตัวแปร.ชื่อฟิลด์
Structure : Operation : Example1 MOV AL , Emp1.Name[2] คัดลอกค่าในไบต์ที่ 3 ของฟิลด์ Name ในตัวแปร Emp1 ใส่ในรีจิสเตอร์ AL
Structure : Operation : Example2 MOV AL , Emp2 + 4*15.Name[2] คัดลอกข้อมูลไบต์ที่ 3 ของฟิลด์ Name ของชุดข้อมูลที่ 5 ในตัวแปร Emp2 มาใส่ในรีจิสเตอร์ AL
Record : Definition • การจัดโครงสร้างข้อมูลชนิดใหม่ โดยประกอบด้วยกลุ่มข้อมูลในระดับบิต ซึ่งขนาดของชุดข้อมูลนั้น จะมีการจัดเก็บเป็นจำนวนไบต์
Record : General Format RecordName RECORD FieldName : width=exp, … ชื่อเรคอร์ด RECORD ชื่อฟิลด์ : ขนาด=ค่าเริ่มต้น, ...
Record : Example เป็นการประกาศใช้โครงสร้างข้อมูลชนิดเรคอร์ดชื่อ Pattern ซึ่งประกอบด้วย 4 ฟิลด์ PATTERN RECORD OPCODE:5, MODE:3, OPR1:4=8, OPR2:4
Record : Variable define การกำหนดตัวแปร Record มีรูปแบบดังนี้ VarName RecordName <> ชื่อตัวแปร ชื่อเรคอร์ด สัญลักษณ์ที่ใช้ กำหนดค่าเริ่มต้น
Record : Variable : Example1 Attrib1 PATTERN <> เป็นการประกาศให้ตัวแปร Attrib1 เป็นชนิด Record ชื่อ Pattern โดยไม่มีการกำหนดค่าเริ่มต้นให้กับตัวแปร
Record : Variable : Example2 Attrib2 PATTERN <5,101B,4,1100B> เป็นการประกาศให้ตัวแปร Attrib2 เป็นชนิด Record ชื่อ Pattern โดยมีการกำหนดค่าเริ่มต้นให้กับตัวแปรทั้ง 4 ฟิลด์
Record : Operators WIDTH operator • ใช้เพื่อหาค่าขนาดของเรคอร์ด หรือขนาดของแต่ละฟิลด์ในเรคอร์ด • ขนาด หมายถึง จำนวนบิต • รูปแบบคือ • WIDTH ชื่อเรคอร์ด/ชื่อฟิลด์ • เช่น MOV BH , WIDTH PATTERN
Record : Operators MASK operator • เป็นการกำหนดให้ค่าบิตของฟิลด์ที่ถูก mask เป็น 1 ส่วนฟิลด์อื่นที่ไม่ถูก mask ค่าของบิตจะเป็น 0 • รูปแบบคือ • MASK ชื่อเรคอร์ด/ชื่อฟิลด์ • เช่น MOV AX , MASK MODE
Record : Shift count • เมื่อต้องการนำค่าในแต่ละฟิลด์มาใช้งาน จะต้องทำการเลื่อนบิตไปทางขวามือก่อน โดยจำนวนครั้งที่ต้องเลื่อนสามารถใช้คำสั่งดังนี้ MOV CL , ชื่อฟิลด์ เช่น MOV CL , OPR1
Record : Operators : Example1 MOV AL , WIDTH OPR1 กำหนดให้ค่าในรีจิสเตอร์ AL มีค่าเท่ากับขนาดของฟิลด์ OPR1
Record : Operators : Example2 MOV BX , MASK OPR2 ถ้ามีการประกาศใช้ข้อมูลแบบ record ดังนี้ PATTERN RECORD OPCODE:5, MODE:3, OPR1:4=8, OPR2:4 จะได้ว่า BX=0000000000001111B
Record : Operators : Example3 MOV CL , OPCODE ถ้ามีการประกาศใช้ข้อมูลแบบ record ดังนี้ PATTERN RECORD OPCODE:5, MODE:3, OPR1:4=8, OPR2:4 จะได้ว่า CL=11 (Decimal)