41
BIT & STRING OPERATIONS Suthida Chaichomchuen [email protected]

BIT & STRING OPERATIONS

  • Upload
    carlow

  • View
    36

  • Download
    2

Embed Size (px)

DESCRIPTION

BIT & STRING OPERATIONS. Suthida Chaichomchuen [email protected]. BOOLEAN OPERATIONS. - PowerPoint PPT Presentation

Citation preview

Page 1: BIT & STRING OPERATIONS

BIT & STRING OPERATIONS

Suthida [email protected]

Page 2: BIT & STRING OPERATIONS

BOOLEAN OPERATIONS

คำ��สั่��งประเภทตรรก เป�นคำ��สั่��งท��มี� ก�รปฏิ�บั�ต�ก�รต�มีกฎท�งตรรก โดยท��

คำ��ในแต�ละบั�ตของ operand จะมี� คำว�มีหมี�ยได& 2 อย��งคำ'อ จร�ง 1[ ]

และเท(จ [0 ]ผลจ�กก�รปฏิ�บั�ต�คำ��สั่��ง จะสั่�งไปย�ง Flag ต�อไปน�* CF, OF,

PF,SF และ ZF

Page 3: BIT & STRING OPERATIONS

ร+ปแบับัคำ��สั่��งคำ'อ

[label:] operationdestination,source

destination: register/memory

source:register/memory/immediate

Boolean Logic Instructions

Page 4: BIT & STRING OPERATIONS

AND: ถ้&�คำ��ของคำ+�บั�ตเป�น 1 เหมี'อนก�น ผลล�พธ์/จะถ้+ก SET เป�น

1 แต�ถ้&�ไมี�ใช่�ผลล�พธ์/จะเป�น0OR: ถ้&�คำ��ใดคำ��หน1�งของคำ+�บั�ตเป�น

1 ผลล�พธ์/จะถ้+ก SET เป�น 1 แต�ถ้&�ไมี�ใช่�ผลล�พธ์/จะเป�น 0

Boolean Logic Instructions

Page 5: BIT & STRING OPERATIONS

XOR: ถ้&�คำ��ของคำ+�บั�ตมี�คำ��ท��แตกต��ง ก�น ผลล�พธ์/จะถ้+ก SET เป�น 1 แต�ถ้&�

ไมี�ใช่�ผลล�พธ์/จะเป�น0TEST: ปฏิ�บั�ต�ก�รเสั่มี'อนเป�นคำ��สั่��งAND แต�จะเปล��ยนเฉพ�ะคำ��ของFlags เท��น�*น คำ��ของ operand ย�งเหมี'อนเด�มี

Boolean Logic Instructions

Page 6: BIT & STRING OPERATIONS

AND OR XOR

Source 0011 00110011

Dest 0101 01010101

Result: Dest 0001 01110110

Examples of Boolean Logic

Page 7: BIT & STRING OPERATIONS

สั่มีมีต�ให& BL=0011 1010 และ CH=1010 0011•AND BL,0FH•AND BL,00H•AND BL,CH•OR CH,BL•OR CH,CH•XOR BL,0FH•XOR BL,BL

Examples of Boolean Instructions

Page 8: BIT & STRING OPERATIONS

คำ��สั่��ง TEST•TEST CX,0FFH•TEST BL,00000001B•TEST CL,11110000B

Examples of Boolean Operations

Page 9: BIT & STRING OPERATIONS

เป�นคำ��สั่��งท��ใช่&ในก�รเปล��ยนคำ��บั�ต ของ operand ให&เป�นคำ��ตรงก�นข&�มี

คำ'อ จ�ก 1 เป�น 0 และจ�ก 0 กล�ยเป�น 1 หร'อเป�นก�รห�คำ�� 1 s-

complement น��นเอง

Boolean Logic Instructions: NOT

Page 10: BIT & STRING OPERATIONS

ร+ปแบับัคำ��สั่��งคำ'อ

[label:] NOT register/memory

Boolean Logic Instructions: NOT

Page 11: BIT & STRING OPERATIONS

ก��หนด BL=0011 1010•NOT BL

ผลล�พธ์/คำ'อ BL=1100 0101

Boolean Logic Instructions: NOT

Page 12: BIT & STRING OPERATIONS

SHIFTING BITS

เป�นคำ��สั่��งในก�รเล'�อนบั�ต ใช่&ได&ท�*ง Register และ Memory เล'�อนไปท�งด&�นซ้&�ยหร'อขว�ก(ได& เล'�อนได&ท�*ง byte และ word ใช่&ได&ท�*งข&อมี+ลท��มี�เคำร'�องหมี�ยและไมี�มี�

เคำร'�องหมี�ย

Page 13: BIT & STRING OPERATIONS

ร+ปแบับัคำ��สั่��งคำ'อ

[label:] shift destination,count

destination: register/memory

count: CL/immediate

Shifting Bits Instructions

Page 14: BIT & STRING OPERATIONS

Shifting Bits Right Instructions

SHR (Shift Logical Right) : unsigned•ด��เน�นก�รเล'�อนบั�ตไปท�งขว�โดยบั�ตท��ถ้+กเล'�อน

ออกไป จะบัรรจ4อย+�ใน Carry flagSAR (Shift Arithmetic Right) : signed• คำ�ดลอกคำ�� Sign bit ใสั่�ในบั�ตถ้�ดไปและน��คำ��บั�ตท��

ถ้+กเล'�อนไปบัรรจ4ใน Carry flag

Page 15: BIT & STRING OPERATIONS

Shifting Bits Right

ล�กษณะก�รเล'�อนบั�ต

SHR:

SAR:

0 C

CS

Page 16: BIT & STRING OPERATIONS

Shifting Bits Left Instructions

SHL (Shift Logical Right)SAL (Shift Arithmetic Right) ท�*ง 2 คำ��สั่��งจะปฏิ�บั�ต�ก�รเหมี'อนก�น

โดยจะท��ก�รเล'�อนบั�ตไปท�งด&�นซ้&�ย และบั�ตท��เล'�อนไปจะน��ไปใสั่�ไว&ใน Carry

flag

Page 17: BIT & STRING OPERATIONS

ล�กษณะก�รเล'�อนบั�ต

SHL/SAL:

Shifting Bits Left

C 0

Page 18: BIT & STRING OPERATIONS

สั่มีมีต�ให& AL=10110100B และ CF เป�น1

SAL AL,1 AL:01101000 CF:1

SHL AL,1 AL:11010000 CF:0

SAR AL,1 AL:11101000 CF:0

SHR AL,1 AL:01110100 CF:0

Examples of Shifting Bits

Page 19: BIT & STRING OPERATIONS

ROTATI NG BITS

เป�นคำ��สั่��งในก�รหมี4นบั�ต ใช่&ได&ท�*ง Register และ Memoryหมี4นบั�ตไปท�งด&�นซ้&�ยหร'อขว�ก(ได& หมี4นได&ท�*ง byte และ word ใช่&ได&ท�*งข&อมี+ลท��มี�เคำร'�องหมี�ยและไมี�มี�

เคำร'�องหมี�ย

Page 20: BIT & STRING OPERATIONS

ร+ปแบับัคำ��สั่��งคำ'อ

[label:] rotate destination,count

destination: register/memory

count: CL/immediate

Rotating Bits Instructions

Page 21: BIT & STRING OPERATIONS

Rotating Bits Right Instructions

R0R (Rotate Logical Right)•ด��เน�นก�รหมี4นบั�ตไปท�งขว�โดยบั�ตท��ถ้+กเล'�อน

ออกจะถ้+กคำ�ดลอกไปไว&ใน Carry flag ด&วยRCR (Rotate with Carry Right)

• ด��เน�นก�รหมี4นบั�ตร�วมีก�บัคำ��ใน Carry flag โดยคำ��ของบั�ตท��เล'�อนจะน��ไปไว&ใน Carry

flag และคำ��ใน Carry flag จะถ้+กสั่�งมี�ย�งบั�ตซ้&�ยสั่4ด

Page 22: BIT & STRING OPERATIONS

ล�กษณะก�รหมี4นบั�ต

ROR:

RCR:

Rotating Bits Right

C

C

Page 23: BIT & STRING OPERATIONS

Rotating Bits Lef tInstructions

R0L (Rotate Logical Left)•ด��เน�นก�รหมี4นบั�ตไปท�งซ้&�ยโดยบั�ตท��ถ้+กเล'�อน

ออกจะถ้+กคำ�ดลอกไปไว&ใน Carry flag ด&วยRCL (Rotate with Carry Left)

• ด��เน�นก�รหมี4นบั�ตร�วมีก�บัคำ��ใน Carry flag โดยคำ��ของบั�ตท��เล'�อนจะน��ไปไว&ใน Carry flag

และคำ��ใน Carry flag จะถ้+กสั่�งมี�ย�งบั�ตขว�สั่4ด

Page 24: BIT & STRING OPERATIONS

ล�กษณะก�รหมี4นบั�ต

ROL:

RCL:

Rotating Bits Left

C

C

Page 25: BIT & STRING OPERATIONS

สั่มีมีต�ให& AL=10110100B และ CF เป�น1

ROL AL,1 AL:01101001 CF:1

ROR AL,2 AL:01011010 CF:0

RCL AL,1 AL:10110100 CF:0

RCR AL,2 AL:00101101 CF:0

Examples of Rota tingBits

Page 26: BIT & STRING OPERATIONS

STRING OPERATIONS

เป�นปฏิ�บั�ต�ก�รเก��ยวก�บัช่4ดของต�ว อ�กษร โดยอ�จเป�นได&ท�*งต�วเลข ต�ว

อ�กษรหร'อสั่�ญล�กษณ/พ�เศษจะปฏิ�บั�ต�ก�รท�ละไบัต/หร'อเว�ร/ด

Page 27: BIT & STRING OPERATIONS

STRING OPERATIONS

ก��หนด source-string อย+�ใน DS : Data Segment

destination-string อย+�ใน ES : Extra Segment

ใช่& SI : Source Index ในก�รอ&�งถ้1งไบัต/ หร'อเว�ร/ดของ source-string

ใช่& DI : Destination Index ในก�รอ&�ง ถ้1งไบัต/หร'อเว�ร/ดของ destination-string

Page 28: BIT & STRING OPERATIONS

STRING OPERATIONS

SI และ DI จะเพ��มีคำ��เมี'�อก�รปฏิ�บั�ต�ก�รกระท��จ�กต�วอ�กษรต�วแรกไปย�งต�วสั่4ดท&�ย

SI และ DI จะลดคำ��เมี'�อก�รปฏิ�บั�ต�ก�รกระท��จ�กต�วอ�กษรต�วสั่4ดท&�ยไปย�งต�วแรก

Page 29: BIT & STRING OPERATIONS

STRING OPERATIONS

ใช่& DF : Direction Flag เป�นต�ว ก��หนดก�รเพ��มีข1*นและลดลงของ SI

และ DIDF เป�น 0 : SI และ DI จะถ้+กเพ��มีคำ��DF เป�น 1 : SI และ DI จะถ้+กลดคำ��

Page 30: BIT & STRING OPERATIONS

ต�วอย��งคำ��สั่��งในก�รก��หนด Segment ของ string

•MOV AX,@data•MOV DS,AX•MOV ES,AX

STRING OPERATIONS

Page 31: BIT & STRING OPERATIONS

ต�วอย��งคำ��สั่��งในก�รก��หนด Address ของ string

•LEA DI,BYTE2•LEA SI,BYTE1

STRING OPERATIONS

Page 32: BIT & STRING OPERATIONS

คำ��สั่��งในก�รก��หนดคำ��ของ DF•CLD : Clear Direction Flag เป�น

0•STD : Set Direction Flag เป�น1

STRING OPERATIONS

Page 33: BIT & STRING OPERATIONS

REP: Repeat String Prefix

เป�นคำ��สั่��งท��ว�งไว&หน&�คำ��สั่��งปฏิ�บั�ต�ก�ร string อ'�น ๆ เพ'�อใช่&ในก�รท��ง�นซ้�*�

หล�ย ๆ คำร�*งจ��นวนรอบัของก�รท��ซ้�*�จะก��หนดอย+�

ใน CX

Page 34: BIT & STRING OPERATIONS

Variations of REP

REP : ปฏิ�บั�ต�ก�รจนกระท��ง CX=0REPE/REPZ : ปฏิ�บั�ต�ก�รเมี'�อ ZF set หร'อจะหย4ดก�รท��ง�นเมี'�อ ZF clear หร'อ CX=0

REPNE/REPNZ : ปฏิ�บั�ต�ก�รเมี'�อZF clear หร'อจะหย4ดก�รท��ง�นเมี'�อZF set หร'อ CX=0

Page 35: BIT & STRING OPERATIONS

String Instructions

Move: MOVSLoad: LODSStore: STOSCompare: CMPSScan: SCAS

Page 36: BIT & STRING OPERATIONS

Example of String Instructions

1DATASTR DB 25 *DUP (‘ ’)2DATASTR DB 25 DUP (‘ ’)

. . .CLDMOV CX,25LEA 2DI,DATASTRLEA 1

RRR MOVSB

Page 37: BIT & STRING OPERATIONS

MOVS : Move String Instruction

คำ��สั่��งเก��ยวก�บัก�รเคำล'�อนย&�ยไบัต/หร'อ เว�ร/ดจ�ก source ไปย�ง destination

มี� 3 คำ��สั่��ง•MOVS destination-string,source-string

•MOVSB•MOVSW

Page 38: BIT & STRING OPERATIONS

LODS : Load String Instruction

คำ��สั่��งเก��ยวก�บัก�รโหลด string จ�กsource ณ ต��แหน�งท�� SI ช่�*อย+�ไปไว&ท��AL หร'อ AX

มี� 3 คำ��สั่��ง•LODS source-string•LODSB•LODSW

Page 39: BIT & STRING OPERATIONS

STOS : Store String Instruction

คำ��สั่��งเก��ยวก�บัก�รเก(บัคำ��ของ string ในAL หร'อ AX ไปไว&ท�� destination-string ณ ต��แหน�งท�� DI ช่�*อย+�

มี� 3 คำ��สั่��ง•STOS destination-string•STOSB•STOSW

Page 40: BIT & STRING OPERATIONS

CMPS : Compare String Instruction

คำ��สั่��งเก��ยวก�บัก�รเปร�ยบัเท�ยบัต�วอ�กษร ระหว��ง source-string ก�บั

destination-string มี� 3 คำ��สั่��ง

•CMPS destination-string,source-string

•CMPSB•CMPSW

Page 41: BIT & STRING OPERATIONS

SCAS : Scan String Instruction

คำ��สั่��งท��ตรวจด+ว��ต�วอ�กษรใน string ท��อย+�ใน ES ณ ต��แหน�งท�� DI ช่�*อย+�

เหมี'อนก�บัคำ��ใน AL หร'อ AX หร'อไมี� มี� 3 คำ��สั่��ง

•SCAS destination-string•SCASB•SCASW