Upload
carlow
View
36
Download
2
Embed Size (px)
DESCRIPTION
BIT & STRING OPERATIONS. Suthida Chaichomchuen [email protected]. BOOLEAN OPERATIONS. - PowerPoint PPT Presentation
Citation preview
BIT & STRING OPERATIONS
Suthida [email protected]
BOOLEAN OPERATIONS
คำ��สั่��งประเภทตรรก เป�นคำ��สั่��งท��มี� ก�รปฏิ�บั�ต�ก�รต�มีกฎท�งตรรก โดยท��
คำ��ในแต�ละบั�ตของ operand จะมี� คำว�มีหมี�ยได& 2 อย��งคำ'อ จร�ง 1[ ]
และเท(จ [0 ]ผลจ�กก�รปฏิ�บั�ต�คำ��สั่��ง จะสั่�งไปย�ง Flag ต�อไปน�* CF, OF,
PF,SF และ ZF
ร+ปแบับัคำ��สั่��งคำ'อ
[label:] operationdestination,source
destination: register/memory
source:register/memory/immediate
Boolean Logic Instructions
AND: ถ้&�คำ��ของคำ+�บั�ตเป�น 1 เหมี'อนก�น ผลล�พธ์/จะถ้+ก SET เป�น
1 แต�ถ้&�ไมี�ใช่�ผลล�พธ์/จะเป�น0OR: ถ้&�คำ��ใดคำ��หน1�งของคำ+�บั�ตเป�น
1 ผลล�พธ์/จะถ้+ก SET เป�น 1 แต�ถ้&�ไมี�ใช่�ผลล�พธ์/จะเป�น 0
Boolean Logic Instructions
XOR: ถ้&�คำ��ของคำ+�บั�ตมี�คำ��ท��แตกต��ง ก�น ผลล�พธ์/จะถ้+ก SET เป�น 1 แต�ถ้&�
ไมี�ใช่�ผลล�พธ์/จะเป�น0TEST: ปฏิ�บั�ต�ก�รเสั่มี'อนเป�นคำ��สั่��งAND แต�จะเปล��ยนเฉพ�ะคำ��ของFlags เท��น�*น คำ��ของ operand ย�งเหมี'อนเด�มี
Boolean Logic Instructions
AND OR XOR
Source 0011 00110011
Dest 0101 01010101
Result: Dest 0001 01110110
Examples of Boolean Logic
สั่มีมีต�ให& 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
คำ��สั่��ง TEST•TEST CX,0FFH•TEST BL,00000001B•TEST CL,11110000B
Examples of Boolean Operations
เป�นคำ��สั่��งท��ใช่&ในก�รเปล��ยนคำ��บั�ต ของ operand ให&เป�นคำ��ตรงก�นข&�มี
คำ'อ จ�ก 1 เป�น 0 และจ�ก 0 กล�ยเป�น 1 หร'อเป�นก�รห�คำ�� 1 s-
complement น��นเอง
Boolean Logic Instructions: NOT
ร+ปแบับัคำ��สั่��งคำ'อ
[label:] NOT register/memory
Boolean Logic Instructions: NOT
ก��หนด BL=0011 1010•NOT BL
ผลล�พธ์/คำ'อ BL=1100 0101
Boolean Logic Instructions: NOT
SHIFTING BITS
เป�นคำ��สั่��งในก�รเล'�อนบั�ต ใช่&ได&ท�*ง Register และ Memory เล'�อนไปท�งด&�นซ้&�ยหร'อขว�ก(ได& เล'�อนได&ท�*ง byte และ word ใช่&ได&ท�*งข&อมี+ลท��มี�เคำร'�องหมี�ยและไมี�มี�
เคำร'�องหมี�ย
ร+ปแบับัคำ��สั่��งคำ'อ
[label:] shift destination,count
destination: register/memory
count: CL/immediate
Shifting Bits Instructions
Shifting Bits Right Instructions
SHR (Shift Logical Right) : unsigned•ด��เน�นก�รเล'�อนบั�ตไปท�งขว�โดยบั�ตท��ถ้+กเล'�อน
ออกไป จะบัรรจ4อย+�ใน Carry flagSAR (Shift Arithmetic Right) : signed• คำ�ดลอกคำ�� Sign bit ใสั่�ในบั�ตถ้�ดไปและน��คำ��บั�ตท��
ถ้+กเล'�อนไปบัรรจ4ใน Carry flag
Shifting Bits Right
ล�กษณะก�รเล'�อนบั�ต
SHR:
SAR:
0 C
CS
Shifting Bits Left Instructions
SHL (Shift Logical Right)SAL (Shift Arithmetic Right) ท�*ง 2 คำ��สั่��งจะปฏิ�บั�ต�ก�รเหมี'อนก�น
โดยจะท��ก�รเล'�อนบั�ตไปท�งด&�นซ้&�ย และบั�ตท��เล'�อนไปจะน��ไปใสั่�ไว&ใน Carry
flag
ล�กษณะก�รเล'�อนบั�ต
SHL/SAL:
Shifting Bits Left
C 0
สั่มีมีต�ให& 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
ROTATI NG BITS
เป�นคำ��สั่��งในก�รหมี4นบั�ต ใช่&ได&ท�*ง Register และ Memoryหมี4นบั�ตไปท�งด&�นซ้&�ยหร'อขว�ก(ได& หมี4นได&ท�*ง byte และ word ใช่&ได&ท�*งข&อมี+ลท��มี�เคำร'�องหมี�ยและไมี�มี�
เคำร'�องหมี�ย
ร+ปแบับัคำ��สั่��งคำ'อ
[label:] rotate destination,count
destination: register/memory
count: CL/immediate
Rotating Bits Instructions
Rotating Bits Right Instructions
R0R (Rotate Logical Right)•ด��เน�นก�รหมี4นบั�ตไปท�งขว�โดยบั�ตท��ถ้+กเล'�อน
ออกจะถ้+กคำ�ดลอกไปไว&ใน Carry flag ด&วยRCR (Rotate with Carry Right)
• ด��เน�นก�รหมี4นบั�ตร�วมีก�บัคำ��ใน Carry flag โดยคำ��ของบั�ตท��เล'�อนจะน��ไปไว&ใน Carry
flag และคำ��ใน Carry flag จะถ้+กสั่�งมี�ย�งบั�ตซ้&�ยสั่4ด
ล�กษณะก�รหมี4นบั�ต
ROR:
RCR:
Rotating Bits Right
C
C
Rotating Bits Lef tInstructions
R0L (Rotate Logical Left)•ด��เน�นก�รหมี4นบั�ตไปท�งซ้&�ยโดยบั�ตท��ถ้+กเล'�อน
ออกจะถ้+กคำ�ดลอกไปไว&ใน Carry flag ด&วยRCL (Rotate with Carry Left)
• ด��เน�นก�รหมี4นบั�ตร�วมีก�บัคำ��ใน Carry flag โดยคำ��ของบั�ตท��เล'�อนจะน��ไปไว&ใน Carry flag
และคำ��ใน Carry flag จะถ้+กสั่�งมี�ย�งบั�ตขว�สั่4ด
ล�กษณะก�รหมี4นบั�ต
ROL:
RCL:
Rotating Bits Left
C
C
สั่มีมีต�ให& 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
STRING OPERATIONS
เป�นปฏิ�บั�ต�ก�รเก��ยวก�บัช่4ดของต�ว อ�กษร โดยอ�จเป�นได&ท�*งต�วเลข ต�ว
อ�กษรหร'อสั่�ญล�กษณ/พ�เศษจะปฏิ�บั�ต�ก�รท�ละไบัต/หร'อเว�ร/ด
STRING OPERATIONS
ก��หนด source-string อย+�ใน DS : Data Segment
destination-string อย+�ใน ES : Extra Segment
ใช่& SI : Source Index ในก�รอ&�งถ้1งไบัต/ หร'อเว�ร/ดของ source-string
ใช่& DI : Destination Index ในก�รอ&�ง ถ้1งไบัต/หร'อเว�ร/ดของ destination-string
STRING OPERATIONS
SI และ DI จะเพ��มีคำ��เมี'�อก�รปฏิ�บั�ต�ก�รกระท��จ�กต�วอ�กษรต�วแรกไปย�งต�วสั่4ดท&�ย
SI และ DI จะลดคำ��เมี'�อก�รปฏิ�บั�ต�ก�รกระท��จ�กต�วอ�กษรต�วสั่4ดท&�ยไปย�งต�วแรก
STRING OPERATIONS
ใช่& DF : Direction Flag เป�นต�ว ก��หนดก�รเพ��มีข1*นและลดลงของ SI
และ DIDF เป�น 0 : SI และ DI จะถ้+กเพ��มีคำ��DF เป�น 1 : SI และ DI จะถ้+กลดคำ��
ต�วอย��งคำ��สั่��งในก�รก��หนด Segment ของ string
•MOV AX,@data•MOV DS,AX•MOV ES,AX
STRING OPERATIONS
ต�วอย��งคำ��สั่��งในก�รก��หนด Address ของ string
•LEA DI,BYTE2•LEA SI,BYTE1
STRING OPERATIONS
คำ��สั่��งในก�รก��หนดคำ��ของ DF•CLD : Clear Direction Flag เป�น
0•STD : Set Direction Flag เป�น1
STRING OPERATIONS
REP: Repeat String Prefix
เป�นคำ��สั่��งท��ว�งไว&หน&�คำ��สั่��งปฏิ�บั�ต�ก�ร string อ'�น ๆ เพ'�อใช่&ในก�รท��ง�นซ้�*�
หล�ย ๆ คำร�*งจ��นวนรอบัของก�รท��ซ้�*�จะก��หนดอย+�
ใน CX
Variations of REP
REP : ปฏิ�บั�ต�ก�รจนกระท��ง CX=0REPE/REPZ : ปฏิ�บั�ต�ก�รเมี'�อ ZF set หร'อจะหย4ดก�รท��ง�นเมี'�อ ZF clear หร'อ CX=0
REPNE/REPNZ : ปฏิ�บั�ต�ก�รเมี'�อZF clear หร'อจะหย4ดก�รท��ง�นเมี'�อZF set หร'อ CX=0
String Instructions
Move: MOVSLoad: LODSStore: STOSCompare: CMPSScan: SCAS
Example of String Instructions
1DATASTR DB 25 *DUP (‘ ’)2DATASTR DB 25 DUP (‘ ’)
. . .CLDMOV CX,25LEA 2DI,DATASTRLEA 1
RRR MOVSB
MOVS : Move String Instruction
คำ��สั่��งเก��ยวก�บัก�รเคำล'�อนย&�ยไบัต/หร'อ เว�ร/ดจ�ก source ไปย�ง destination
มี� 3 คำ��สั่��ง•MOVS destination-string,source-string
•MOVSB•MOVSW
LODS : Load String Instruction
คำ��สั่��งเก��ยวก�บัก�รโหลด string จ�กsource ณ ต��แหน�งท�� SI ช่�*อย+�ไปไว&ท��AL หร'อ AX
มี� 3 คำ��สั่��ง•LODS source-string•LODSB•LODSW
STOS : Store String Instruction
คำ��สั่��งเก��ยวก�บัก�รเก(บัคำ��ของ string ในAL หร'อ AX ไปไว&ท�� destination-string ณ ต��แหน�งท�� DI ช่�*อย+�
มี� 3 คำ��สั่��ง•STOS destination-string•STOSB•STOSW
CMPS : Compare String Instruction
คำ��สั่��งเก��ยวก�บัก�รเปร�ยบัเท�ยบัต�วอ�กษร ระหว��ง source-string ก�บั
destination-string มี� 3 คำ��สั่��ง
•CMPS destination-string,source-string
•CMPSB•CMPSW
SCAS : Scan String Instruction
คำ��สั่��งท��ตรวจด+ว��ต�วอ�กษรใน string ท��อย+�ใน ES ณ ต��แหน�งท�� DI ช่�*อย+�
เหมี'อนก�บัคำ��ใน AL หร'อ AX หร'อไมี� มี� 3 คำ��สั่��ง
•SCAS destination-string•SCASB•SCASW