basic i nstructions
DESCRIPTION
Basic I nstructions. SCC : Suthida Chaichomchuen [email protected]. Basic Instructions. MOV XCHG LEA ADD/ADC SUB/SBB MUL/IMUL DIV/IDIV CMP INC/DEC NEG. MOV ( move ). - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/2.jpg)
2
Basic Instructions
MOV XCHG LEA ADD/ADC SUB/SBB MUL/IMUL DIV/IDIV CMP INC/DEC NEG
![Page 3: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/3.jpg)
3
MOV (move) เป็�นการคัดลอกข้�อมู�ลข้นาดไบต์�หร�อเวิ�ร�ดจากต์�นทาง
ไป็ยังป็ลายัทางโดยัท� ต์�นทางและป็ลายัทางอาจจะเป็�น ร�จ�สเต์อร�กบร�จ�สเต์อร� หร�อร�จ�สเต์อร�กบต์$าแหน%งข้องหน%วิยัคัวิามูจ$า หร�อคั%าคังท� ไป็ยังร�จ�สเต์อร�หร�อหน%วิยัคัวิามูจ$า
![Page 4: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/4.jpg)
4
MOV : Format [label:] MOV destination, source
[label:] MOV register, register [label:] MOV register, memory [label:] MOV register, immediate [label:] MOV memory, register [label:] MOV memory, immediate
![Page 5: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/5.jpg)
5
MOV : Example MOV AX, Table MOV Table , AX MOV ES:[BX], AX MOV DS, AX MOV BL, AL MOV -CL, 30 MOV Dest 25, H
![Page 6: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/6.jpg)
6
MOV : Constraint
ไมู%สามูารถยั�ายัข้�อมู�ลระหวิ%างหน%วิยัคัวิามูจ$าได� ต์�องใช้�ร�จ�สเต์อร�เป็�นต์วิกลางในการยั�ายัข้�อมู�ลระหวิ%าง
หน%วิยัคัวิามูจ$า เช้%น ต์�องการยั�ายัข้�อมู�ลจาก Pounds ไป็ยัง
Weight โดยัผ่%านร�จ�สเต์อร� AX
MOV AX, Pounds
MOV Weight, AX
![Page 7: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/7.jpg)
7
MOV : Constraint
ไมู%สามูารถน$าคั%า immediate เช้%นคั%า offset ใส%ให� segment register ได�โดยัต์รง
ต์�องใช้�ร�จ�สเต์อร� AX เป็�นต์วิกลางผ่%านคั%า offset ไป็ยัง segment register
MOV AX, @DATA
MOV DS, AX
ร�จ�สเต์อร� CS ไมู%สามูารถใช้�เป็�น destination ข้องคั$าส ง MOV ได�
![Page 8: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/8.jpg)
8
XCHG (exchange)
คั$าส ง XCHG จะสลบคั%าเป็�นไบต์�หร�อเวิ�ร�ดระหวิ%าง operand ท� เป็�น source และ destination
สามูารถสลบคั%าระหวิ%างร�จ�สเต์อร� 2 ต์วิ หร�อระหวิ%างร�จ�สเต์อร�กบคั%าในหน%วิยัคัวิามูจ$า
Segment Register ไมู%สามูารถน$ามูาใช้�เป็�น operand ได�
![Page 9: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/9.jpg)
9
XCHG : Format
[label:] XCHG destination, source
[label:] XCHG register, register [label:] XCHG register, memory [label:] XCHG memory, register
![Page 10: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/10.jpg)
10
XCHG : Example XCHG AX, BX XCHG AL, BH XCHG DL, Byte XCHG Word , DX
![Page 11: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/11.jpg)
11
LEA (load effective address)
คั$าส ง LEA จะน$าคั%าออฟเซต์ข้อง Operand ในหน%วิยัคัวิามูจ$าไป็ใส%ไวิ�ในร�จ�สเต์อร� 16 บ�ต์
ร�ป็แบบคั$าส ง
[label:] LEA register16, memory16
![Page 12: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/12.jpg)
12
LEA : Example
น$าคั%าออฟเซต์ข้อง Table ไป็ใส%ใน BX
Table DB 10,20,30,40,50,60,70
LEA BX, Table
![Page 13: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/13.jpg)
13
Addition Instruction บวิก operand 816/ บ�ต์
ADD destination = destination+source
ADC : ADD with Carry destination =
destination+source+carry
![Page 14: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/14.jpg)
14
ADD & ADC : Format
[ Label:] ADD/ADC register, register [Label:] ADD/ADC memory, register [Label:] ADD/ADC register, memory [Label:] ADD/ADC register, immediate [Label:] ADD/ADC memory,
immediate
![Page 15: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/15.jpg)
15
ADD : Example
ADD AX , BX ADD AL, Byte ADD Word , AX ADD BL, 10H ADD Byte 25, H
![Page 16: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/16.jpg)
16
ADC : Example
ADC AX , BX ADC AL, Byte ADC Word , AX ADC BL, 10H ADC Byte 25, H
![Page 17: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/17.jpg)
17
Subtraction Instruction
ลบคั%า operand 816/ บ�ต์ CF ท$าหน�าท� เหมู�อนต์วิยั�มู
SUB destination = destination-source
SBB : Subtract with Borrow - -destination = destination source carry
![Page 18: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/18.jpg)
18
SUB & SBB : Format
[ Label:] SUB/SBB register, register [Label:] SUB/SBB memory, register [Label:] SUB/SBB register, memory [Label:] SUB/SBB register, immediate [Label:] SUB/SBB memory,
immediate
![Page 19: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/19.jpg)
19
SUB : Example
SUB AX, BX SUB AX, Word SUB Word, AX SUB BX, 1000H SUB Word, 256H
![Page 20: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/20.jpg)
20
SBB : Example
SBB AX, BX SBB AX, Word SBB Word, AX SBB BX, 1000H SBB Word, 256H
![Page 21: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/21.jpg)
21
SUB & SBB : 32 bit
ถ�าต์�องการลบคั%า 32 บ�ต์ ใช้�คั$าส งดงน�. ก$าหนดต์วิต์.งใน BX, AX ต์วิลบอยั�%ใน DX, CX SUB AX, CX SBB BX, DX
![Page 22: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/22.jpg)
22
Multiplication Instruction เป็�นคั$าส งท� ใช้�ในการคั�ณเลข้ 8 บ�ต์และ 16 บ�ต์ ผ่ลลพธ์�ท� ได�จากการคั�ณจะมู�ข้นาดเพ� มูข้2.น เป็�น 2 เท%า มู� 2 แบบคั�อ
MUL : Unsigned Multiplication IMUL : Signed Multiplication
![Page 23: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/23.jpg)
23
Multiplication : 8 bit การคั�ณเลข้ 8 บ�ต์
ต์วิต์.งเก3บไวิ�ท� ร �จ�สเต์อร� AL ต์วิคั�ณเก3บไวิ�ท� ร �จ�สเต์อร�หร�อหน%วิยัคัวิามูจ$าข้นาด
8 บ�ต์ ผ่ลลพธ์�จะมู�ข้นาด 16 บ�ต์ เก3บอยั�%ในร�จ�สเต์อร�
AX
![Page 24: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/24.jpg)
24
Multiplication : 16 bit การคั�ณเลข้ 16 บ�ต์
ต์วิต์.งเก3บไวิ�ท� ร �จ�สเต์อร� AX ต์วิคั�ณเก3บไวิ�ท� ร �จ�สเต์อร�หร�อหน%วิยัคัวิามูจ$าข้นาด
16 บ�ต์ ผ่ลลพธ์�จะมู�ข้นาด 32 บ�ต์ เก3บอยั�%ในร�จ�สเต์อร� DX
และ AX DX เก3บผ่ลลพธ์� 16 บ�ต์บน AX เก3บผ่ลลพธ์� 16 บ�ต์ล%าง
![Page 25: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/25.jpg)
25
MUL : Format [label:] MUL
register/memory
เป็�นการคั�ณแบบไมู%คั�ดเคัร� องหมูายั ถ�าคัร2 งบนข้องผ่ลลพธ์�การคั�ณเป็�น 0
CF และ OF จะมู�คั%าเป็�น 0
![Page 26: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/26.jpg)
26
IMUL : Format [label:] IMUL register/memory
เป็�นการคั�ณแบบคั�ดเคัร� องหมูายั ถ�าคัร2 งบนข้องผ่ลลพธ์�การคั�ณเป็�น sign-
extension CF และ OF จะมู�คั%าเป็�น 0
![Page 27: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/27.jpg)
27
MUL & IMUL : Example MUL BX MUL Byte IMULDL IMULWord
![Page 28: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/28.jpg)
28
MUL : Example คั�ณเลข้ท� ไมู%มู�เคัร� องหมูายั ระหวิ%างเลข้ 8 บ�ต์ กบ
16 บ�ต์
MOV AX, Multiplicand ; AX = ต์วิต์.ง
MOV CL, Multiplier ; CL = ต์วิคั�ณMOV CH, 0MUL CX ; AX = AX * CX
![Page 29: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/29.jpg)
29
IMUL : Example คั�ณเลข้ท� มู�เคัร� องหมูายั ระหวิ%างเลข้ 8 บ�ต์ กบ 1
6 บ�ต์
MOV AL, Multiplicand ; AL = เลข้ 8บ�ต์
CBW ; ข้ยัายัเป็�น 16 บ�ต์MOV CX, Multiplier ; CX = เลข้ 16
บ�ต์IMUL CX ; AX = AX * CX
![Page 30: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/30.jpg)
30
Division Instruction
เป็�นคั$าส งท� ใช้�ในการหารคั%าต์วิเลข้ด�วิยัเลข้ 8 บ�ต์และ 16 บ�ต์
มู� 2 แบบคั�อ DIV : Unsigned Division IDIV : Signed Division
ร�ป็แบบ [label:] DIV/IDIV register/memory
![Page 31: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/31.jpg)
31
Division : by 8 bit การหารเลข้ 16 บ�ต์ ด�วิยัเลข้ 8 บ�ต์
ต์วิต์.งข้นาด 16 บ�ต์เก3บไวิ�ท� ร �จ�สเต์อร� AX ต์วิหารข้นาด 8 บ�ต์เก3บไวิ�ท� ร �จ�สเต์อร�/หน%วิยัคัวิามูจ$า ผ่ลลพธ์�
จ$านวินเต์3มูเก3บไวิ�ท� AL เศษเก3บไวิ�ท� AH
![Page 32: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/32.jpg)
32
Division : by 16 bit การหารเลข้ 32 บ�ต์ด�วิยั 16 บ�ต์
ต์วิต์.งข้นาด 32 บ�ต์เก3บในร�จ�สเต์อร� DX และ AX DX เก3บไบต์�ส�ง AX เก3บไบต์�ต์$ า
ต์วิหารข้นาด 16 บ�ต์เก3บในร�จ�สเต์อร�/หน%วิยัคัวิามูจ$า ผ่ลลพธ์�
จ$านวินเต์3มูเก3บไวิ�ท� AX เศษเก3บไวิ�ท� DX
![Page 33: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/33.jpg)
33
Division : Overflow
ถ�าผ่ลลพธ์�จากการหารได�คั%าจ$านวินเต์3มูท� ใหญ่%กวิ%าท� AL หร�อ AX จะเก3บได� จะเก�ดการ Interrupt ช้น�ด 0
โดยั DOS จะแสดงข้�อคัวิามูวิ%า “Divide
Overflow”
![Page 34: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/34.jpg)
34
DIV & IDIV : Example DIV CL DIV BX DIV byte DIV word IDIV DL IDIV CX IDIV byte IDIV word
![Page 35: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/35.jpg)
35
DIV : Example การหารเลข้ท� ไมู%มู�เคัร� องหมูายัข้นาด 16 บ�ต์ด�วิยั
เลข้ 8 บ�ต์
MOV AX, 037D7H ; 14295 MOV BL, 097H ; 151 DIV BL ; 14295/151
![Page 36: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/36.jpg)
36
IDIV : Example การหารเลข้ท� มู�เคัร� องหมูายัข้นาด 16 บ�ต์ด�วิยัเลข้
8 บ�ต์
MOV AX, 03ABH ; 939 MOV BL, 0D3H ; -45 IDIV BL ; 939/-45
![Page 37: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/37.jpg)
37
CMP (compare)
เป็�นคั$าส งท� ใช้�เป็ร�ยับเท�ยับคั%า 2 คั%า ใช้�หลกการลบคั%า source ออกจาก destination
แต์%ไมู%ได�เก3บคั%าผ่ลลพธ์�ไวิ� มู�ผ่ลต์%อแฟลก AF, CF, OF, PF, SF และ ZF ใช้�ในการต์รวิจสอบคั%าแฟลก เพ� อต์ดส�นใจในการยั�ายั
คั$าส งการท$างานไป็ยังจ7ดต์%าง ๆ
![Page 38: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/38.jpg)
38
CMP : Format [label:] CMP destination, source
[label:] CMP register, register [label:] CMP register, memory [label:] CMP register, immediate [label:] CMP memory, register [label:] CMP memory, immediate
![Page 39: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/39.jpg)
39
CMP : Example CMP AX , BX CMP CL, count CMP CX, 0 CMP number, AL CMP empty, 0
![Page 40: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/40.jpg)
40
CMP : Unsigned
Unsigned Operands Condition OF SF ZF CFSource < Destinationx x 0 0Source = Destinationx x 1 0Source > Destinationx x 0 1
![Page 41: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/41.jpg)
41
CMP : Signed
Signed Operands Condition OF SF ZF CFSource < Destination0/1 0 0 xSource = Destination0 0 1 xSource > Destination0/1 1 0 x
![Page 42: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/42.jpg)
42
INC (increment) เพ� มูคั%าให�กบร�จ�สเต์อร�/หน%วิยัคัวิามูจ$า 1 คั%า ร�ป็แบบ
[label:] INC register/memory Example
INC CX INC AL INC byte INC word
![Page 43: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/43.jpg)
43
DEC (decrement) ลดคั%าในร�จ�สเต์อร�/หน%วิยัคัวิามูจ$า 1 คั%า ร�ป็แบบ
[label:] DEC register/memory Example
DEC CX DEC AL DEC byte DEC word
![Page 44: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/44.jpg)
44
NEG (negate) เป็�นคั$าส งในการหาคั%า 2 ’s Complement ร�ป็แบบ
[label:] NEG register/memory Example
NEG CC NEG BX NEG byte NEG word
![Page 45: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/45.jpg)
45
การแป็ลง operator =
B = A MOV AX, A MOV B, AX
var1 = var2 MOV AX, var2 MOV var1, AX
![Page 46: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/46.jpg)
46
การแป็ลง operator +
X = Y + Z MOV AX, Y ADD AX, Z MOV X, AX
![Page 47: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/47.jpg)
47
การแป็ลง operator -
X = Y - Z MOV AX, Y SUB AX, Z MOV X, AX
![Page 48: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/48.jpg)
48
การแป็ลง operator *
X = Y * Z MOV AL, Y MUL Z MOV X, AX
![Page 49: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/49.jpg)
49
การแป็ลง operator div (unsigned)
X = Y div Z MOV AX, Y MOV DX, 0 DIV Z MOV X, AX
![Page 50: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/50.jpg)
50
การแป็ลง operator div (signed)
X = Y div Z MOV AX, Y CWD IDIV Z MOV X, AX
![Page 51: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/51.jpg)
51
การแป็ลง operator mod (unsigned)
X = Y mod Z MOV AX, Y MOV DX, 0 DIV Z MOV X, DX
![Page 52: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/52.jpg)
52
Example Temp1 = A + B Temp2 = Y + Z W = Temp1 * Temp2
![Page 53: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/53.jpg)
53
Assembly Code 1 MOV AX, A ADD AX, B MOV Temp1, AX ; Temp1 = A + B MOV AX, Y ADD AX, Z MOV Temp2, AX ; Temp2 = Y + Z MOV AX, Temp1 IMUL Temp2 MOV W, AX ; W = Temp1 * Temp2
![Page 54: Basic I nstructions](https://reader034.vdocuments.mx/reader034/viewer/2022051419/5681586e550346895dc5cd54/html5/thumbnails/54.jpg)
54
Assembly Code 2 MOV AX, A ADD AX, B ; AX = A + B MOV BX, Y ADD BX, Z ; BX = Y + Z IMULBX ; AX = AX * BX MOV W, AX ; W = AX