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

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

BIT & STRING OPERATIONS Suthida Chaichomchuen

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


งานนำเสนอเรื่อง: "BIT & STRING OPERATIONS Suthida Chaichomchuen"— ใบสำเนางานนำเสนอ:

1 BIT & STRING OPERATIONS Suthida Chaichomchuen

2 BOOLEAN OPERATIONS คำสั่งประเภทตรรก เป็นคำสั่งที่มี การปฏิบัติการตามกฎทางตรรก โดย ที่ค่าในแต่ละบิตของ operand จะมี ความหมายได้ 2 อย่างคือ จริง [1] และเท็จ [0] ผลจากการปฏิบัติคำสั่ง จะส่งไปยัง Flag ต่อไปนี้ CF, OF, PF,SF และ ZF

3 รูปแบบคำสั่งคือ [label:]operation destination,source destination: register/memory source: register/memory/immediate Boolean Logic Instructions

4 AND: ถ้าค่าของคู่บิตเป็น 1 เหมือนกัน ผลลัพธ์จะถูก SET เป็น 1 แต่ถ้าไม่ใช่ผลลัพธ์จะเป็น 0 OR: ถ้าค่าใดค่าหนึ่งของคู่บิต เป็น 1 ผลลัพธ์จะถูก SET เป็น 1 แต่ถ้าไม่ใช่ผลลัพธ์จะเป็น 0 Boolean Logic Instructions

5 XOR: ถ้าค่าของคู่บิตมีค่าที่ แตกต่างกัน ผลลัพธ์จะถูก SET เป็น 1 แต่ถ้าไม่ใช่ผลลัพธ์จะเป็น 0 TEST: ปฏิบัติการเสมือนเป็น คำสั่ง AND แต่จะเปลี่ยนเฉพาะ ค่าของ Flags เท่านั้น ค่าของ operand ยังเหมือนเดิม Boolean Logic Instructions

6 AND OR XOR Source Dest Result: Dest Examples of Boolean Logic

7 สมมติให้ BL= และ CH= ANDBL,0FH ANDBL,00H ANDBL,CH ORCH,BL ORCH,CH XORBL,0FH XORBL,BL Examples of Boolean Instructions

8 คำสั่ง TEST TESTCX,0FFH TESTBL, B TESTCL, B Examples of Boolean Operations

9 เป็นคำสั่งที่ใช้ในการเปลี่ยนค่า บิตของ operand ให้เป็นค่าตรงกัน ข้าม คือ จาก 1 เป็น 0 และจาก 0 กลายเป็น 1 หรือเป็นการหาค่า 1 s- complement นั่นเอง Boolean Logic Instructions: NOT

10 รูปแบบคำสั่งคือ [label:]NOT register/memory Boolean Logic Instructions: NOT

11 กำหนด BL= NOTBL ผลลัพธ์คือ BL= Boolean Logic Instructions: NOT

12 SHIFTING BITS เป็นคำสั่งในการเลื่อนบิต ใช้ได้ทั้ง Register และ Memory เลื่อนไปทางด้านซ้ายหรือขวาก็ได้ เลื่อนได้ทั้ง byte และ word ใช้ได้ทั้งข้อมูลที่มีเครื่องหมายและ ไม่มีเครื่องหมาย

13 รูปแบบคำสั่งคือ [label:]shift destination,count destination: register/memory count:CL/immediate Shifting Bits Instructions

14 Shifting Bits Right Instructions SHR (Shift Logical Right) : unsigned ดำเนินการเลื่อนบิตไปทางขวาโดย บิตที่ถูกเลื่อนออกไปจะบรรจุอยู่ใน Carry flag SAR (Shift Arithmetic Right) : signed คัดลอกค่า Sign bit ใส่ในบิตถัดไป และนำค่าบิตที่ถูกเลื่อนไปบรรจุใน Carry flag

15 Shifting Bits Right ลักษณะการเลื่อนบิต SHR: SAR: 0C C S

16 Shifting Bits Left Instructions SHL (Shift Logical Right) SAL (Shift Arithmetic Right) ทั้ง 2 คำสั่งจะปฏิบัติการเหมือนกัน โดยจะทำการเลื่อนบิตไปทาง ด้านซ้าย และบิตที่เลื่อนไปจะนำไป ใส่ไว้ใน Carry flag

17 ลักษณะการเลื่อนบิต SHL/SAL: Shifting Bits Left C0

18 สมมติให้ AL= B และ CF เป็น 1 SALAL,1AL: CF:1 SHLAL,1AL: CF:0 SARAL,1AL: CF:0 SHRAL,1AL: CF:0 Examples of Shifting Bits

19 ROTATING BITS เป็นคำสั่งในการหมุนบิต ใช้ได้ทั้ง Register และ Memory หมุนบิตไปทางด้านซ้ายหรือขวาก็ ได้ หมุนได้ทั้ง byte และ word ใช้ได้ทั้งข้อมูลที่มีเครื่องหมายและ ไม่มีเครื่องหมาย

20 รูปแบบคำสั่งคือ [label:]rotate destination,count destination: register/memory count:CL/immediate Rotating Bits Instructions

21 Rotating Bits Right Instructions R0R (Rotate Logical Right) ดำเนินการหมุนบิตไปทางขวาโดยบิตที่ ถูกเลื่อนออกจะถูกคัดลอกไปไว้ใน Carry flag ด้วย RCR (Rotate with Carry Right) ดำเนินการหมุนบิตร่วมกับค่าใน Carry flag โดยค่าของบิตที่เลื่อนจะนำไปไว้ ใน Carry flag และค่าใน Carry flag จะถูกส่งมายังบิตซ้ายสุด

22 ลักษณะการหมุนบิต ROR: RCR: Rotating Bits Right C C

23 Rotating Bits Left Instructions R0L (Rotate Logical Left) ดำเนินการหมุนบิตไปทางซ้ายโดยบิต ที่ถูกเลื่อนออกจะถูกคัดลอกไปไว้ใน Carry flag ด้วย RCL (Rotate with Carry Left) ดำเนินการหมุนบิตร่วมกับค่าใน Carry flag โดยค่าของบิตที่เลื่อนจะนำไปไว้ ใน Carry flag และค่าใน Carry flag จะถูกส่งมายังบิตขวาสุด

24 ลักษณะการหมุนบิต ROL: RCL: Rotating Bits Left C C

25 สมมติให้ AL= B และ CF เป็น 1 ROLAL,1AL: CF:1 RORAL,2AL: CF:0 RCLAL,1AL: CF:0 RCRAL,2AL: CF:0 Examples of Rotating Bits

26 STRING OPERATIONS เป็นปฏิบัติการเกี่ยวกับชุดของ ตัวอักษร โดยอาจเป็นได้ทั้งตัวเลข ตัวอักษรหรือสัญลักษณ์พิเศษ จะปฏิบัติการทีละไบต์หรือเวิร์ด

27 STRING OPERATIONS กำหนด source-string อยู่ใน DS : Data Segment destination-string อยู่ใน ES : Extra Segment ใช้ SI : Source Index ในการอ้างถึง ไบต์หรือเวิร์ดของ source-string ใช้ DI : Destination Index ในการ อ้างถึงไบต์หรือเวิร์ดของ destination-string

28 STRING OPERATIONS SI และ DI จะเพิ่มค่าเมื่อการ ปฏิบัติการกระทำจากตัวอักษรตัวแรก ไปยังตัวสุดท้าย SI และ DI จะลดค่าเมื่อการ ปฏิบัติการกระทำจากตัวอักษรตัว สุดท้ายไปยังตัวแรก

29 STRING OPERATIONS ใช้ DF : Direction Flag เป็นตัว กำหนดการเพิ่มขึ้นและลดลงของ SI และ DI DF เป็น 0 : SI และ DI จะถูกเพิ่มค่า DF เป็น 1 : SI และ DI จะถูกลดค่า

30 ตัวอย่างคำสั่งในการกำหนด Segment ของ string MOVDS,AX MOVES,AX STRING OPERATIONS

31 ตัวอย่างคำสั่งในการกำหนด Address ของ string LEADI,BYTE2 LEASI,BYTE1 STRING OPERATIONS

32 คำสั่งในการกำหนดค่าของ DF CLD : Clear Direction Flag เป็น 0 STD : Set Direction Flag เป็น 1 STRING OPERATIONS

33 REP: Repeat String Prefix เป็นคำสั่งที่วางไว้หน้าคำสั่ง ปฏิบัติการ string อื่น ๆ เพื่อใช้ในการ ทำงานซ้ำหลาย ๆ ครั้ง จำนวนรอบของการทำซ้ำจะกำหนด อยู่ใน CX

34 Variations of REP REP : ปฏิบัติการจนกระทั่ง CX=0 REPE/REPZ : ปฏิบัติการเมื่อ ZF set หรือจะหยุดการทำงานเมื่อ ZF clear หรือ CX=0 REPNE/REPNZ : ปฏิบัติการเมื่อ ZF clear หรือจะหยุดการทำงานเมื่อ ZF set หรือ CX=0

35 String Instructions Move: MOVS Load: LODS Store: STOS Compare: CMPS Scan: SCAS

36 Example of String Instructions DATASTR1DB25 DUP (‘*’) DATASTR2DB25 DUP (‘ ’)... CLD MOVCX,25 LEADI,DATASTR2 LEASI,DATASTR1 REPMOVSB

37 MOVS : Move String Instruction คำสั่งเกี่ยวกับการเคลื่อนย้ายไบต์ หรือเวิร์ดจาก source ไปยัง destination มี 3 คำสั่ง MOVSdestination- string,source-string MOVSB MOVSW

38 LODS : Load String Instruction คำสั่งเกี่ยวกับการโหลด string จาก source ณ ตำแหน่งที่ SI ชี้อยู่ไปไว้ ที่ AL หรือ AX มี 3 คำสั่ง LODSsource-string LODSB LODSW

39 STOS : Store String Instruction คำสั่งเกี่ยวกับการเก็บค่าของ string ใน AL หรือ AX ไปไว้ที่ destination- string ณ ตำแหน่งที่ DI ชี้อยู่ มี 3 คำสั่ง STOSdestination-string STOSB STOSW

40 CMPS : Compare String Instruction คำสั่งเกี่ยวกับการเปรียบเทียบ ตัวอักษรระหว่าง source-string กับ destination-string มี 3 คำสั่ง CMPSdestination- string,source-string CMPSB CMPSW

41 SCAS : Scan String Instruction คำสั่งที่ตรวจดูว่าตัวอักษรใน string ที่อยู่ใน ES ณ ตำแหน่งที่ DI ชี้อยู่ เหมือนกับค่าใน AL หรือ AX หรือไม่ มี 3 คำสั่ง SCASdestination-string SCASB SCASW


ดาวน์โหลด ppt BIT & STRING OPERATIONS Suthida Chaichomchuen

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


Ads by Google