61
1 Lecture 4 Lecture 4 Instruction Sets Instruction Sets

Lecture 4

Embed Size (px)

DESCRIPTION

Lecture 4. Instruction Sets. ISA (Instruction Set Architecture). ISA หรือ Instruction Set Architecture คือส่วนเชื่อมต่อระหว่าง compiler และ hardware. Instruction Sets. องค์ประกอบสำคัญที่สุดของคำสั่งคอมพิวเตอร์ คือ Opcode ซึ่งกำหนดรายละเอียดการทำงานที่จะต้องทำ - PowerPoint PPT Presentation

Citation preview

Page 1: Lecture 4

11

Lecture 4Lecture 4

Instruction SetsInstruction Sets

Page 2: Lecture 4

22

ISA (Instruction Set Architecture)ISA (Instruction Set Architecture)

ISA ISA หรื�อหรื�อ Instruction Set ArchitectureInstruction Set Architecture คื�อส่�วนคื�อส่�วนเชื่��อมต่�อรืะหว�าง เชื่��อมต่�อรืะหว�าง compilercompiler และ และ hardwarehardware

FORTRAN 90program

C program

ISA level

Hardware

Fortran compliled to ISA program

C program compiled to ISA

program

Software

HardwareISA program executed

By microprogram of hardware

Page 3: Lecture 4

33

Instruction SetsInstruction Sets องคื�ปรืะกอบส่�าคื�ญที่��ส่�ดของคื�าส่��งคือมพิ"วเต่อรื� คื�อองคื�ปรืะกอบส่�าคื�ญที่��ส่�ดของคื�าส่��งคือมพิ"วเต่อรื� คื�อ

Opcode Opcode ซึ่$�งก�าหนดรืายละเอ�ยดการืที่�างานที่��จะต่'องที่�าซึ่$�งก�าหนดรืายละเอ�ยดการืที่�างานที่��จะต่'องที่�า ต่�วถู)กด�าเน"นการืแส่ดงที่��มาต่�วถู)กด�าเน"นการืแส่ดงที่��มา (source operand)(source operand) ต่�วถู)กด�าเน"นการืแส่ดงที่��เก*บ ต่�วถู)กด�าเน"นการืแส่ดงที่��เก*บ (destination operand) (destination operand) ซึ่$�งรืะบ�ซึ่$�งรืะบ�

แหล�งที่��มาของข'อม)ลและแหล�งที่��เก*บข'อม)ลผลล�พิธ์�แหล�งที่��มาของข'อม)ลและแหล�งที่��เก*บข'อม)ลผลล�พิธ์� การือ'างอ"งคื�าส่��งต่�อไป การือ'างอ"งคื�าส่��งต่�อไป (Next instruction)(Next instruction)

Opcode Opcode ก�าหนดงานที่��จะต่'องที่�า ซึ่$�งเป.นส่�วนหน$�งส่�วนใดก�าหนดงานที่��จะต่'องที่�า ซึ่$�งเป.นส่�วนหน$�งส่�วนใดของ การืคื�านวณที่างคืณ"ต่ศาส่ต่รื�และต่รืรืกะของ การืคื�านวณที่างคืณ"ต่ศาส่ต่รื�และต่รืรืกะ, , การืเคืล��อนการืเคืล��อนย'ายข'อม)ลรืะหว�างรื�จ"ส่เต่อรื�ส่องต่�ว หรื�อ รืะหว�างรื�จ"ส่เต่อรื�ย'ายข'อม)ลรืะหว�างรื�จ"ส่เต่อรื�ส่องต่�ว หรื�อ รืะหว�างรื�จ"ส่เต่อรื�ก�บหน�วยคืวามจ�า หรื�อรืะหว�างต่�าแหน�งในหน�วยคืวามจ�าก�บหน�วยคืวามจ�า หรื�อรืะหว�างต่�าแหน�งในหน�วยคืวามจ�า, , การืที่�างานไอโอ และ การืคืวบคื�มการืที่�างานไอโอ และ การืคืวบคื�ม

การือ'างอ"งต่�วถู)กด�าเน"นการืการือ'างอ"งต่�วถู)กด�าเน"นการื(operand)(operand) เป.นการืก�าหนดรื�จ"เป.นการืก�าหนดรื�จ"ส่เต่อรื� หรื�อต่�าแหน�งหน�วยคืวามจ�าที่��เก*บข'อม)ล ข'อม)ลอาจส่เต่อรื� หรื�อต่�าแหน�งหน�วยคืวามจ�าที่��เก*บข'อม)ล ข'อม)ลอาจจะเป.นต่�าแหน�งที่��อย)�จะเป.นต่�าแหน�งที่��อย)�, , ต่�วเลขต่�วเลข, , ต่�วอ�กษรื หรื�อ ข'อม)ลต่รืรืกะต่�วอ�กษรื หรื�อ ข'อม)ลต่รืรืกะ

Page 4: Lecture 4

44

Instruction SetsInstruction Sets

การือ'างอ"งข'อม)ลน�4นม�กจะใชื่'ในล�กษณะของ การือ'างอ"งข'อม)ลน�4นม�กจะใชื่'ในล�กษณะของ ส่แต่*กส่แต่*ก(stack) (stack) ม�ไว'ใชื่'จ�ดการืการืเรื�ยกใชื่'ฟั6งก�ชื่�นและม�ไว'ใชื่'จ�ดการืการืเรื�ยกใชื่'ฟั6งก�ชื่�นและการืคื�นคื�าให'แก�ฟั6งก�ชื่�นที่��เรื�ยกใชื่' และอาจน�ามาใชื่'ในการืคื�นคื�าให'แก�ฟั6งก�ชื่�นที่��เรื�ยกใชื่' และอาจน�ามาใชื่'ในการืเก*บต่�าแหน�งที่��อย)�ในหน�วยคืวามจ�าได' การืที่�างานการืเก*บต่�าแหน�งที่��อย)�ในหน�วยคืวามจ�าได' การืที่�างานพิ�4นฐานเก��ยวก�บส่แต่*กคื�อ พิ�4นฐานเก��ยวก�บส่แต่*กคื�อ PUSHPUSH และและ POPPOP

ProcessorProcessor อาจแบ�งได'เป.นแบบอาจแบ�งได'เป.นแบบ Big-endian, Big-endian, Little-endianLittle-endian และและ Bi-endian Bi-endian Big-endianBig-endian : : วางไบต่�ที่��ม�คื�าส่)งส่�ดไว'ที่��ต่�าแหน�งที่��อย)�น'อยวางไบต่�ที่��ม�คื�าส่)งส่�ดไว'ที่��ต่�าแหน�งที่��อย)�น'อย Little-endianLittle-endian : : วางไบต่�ที่��ม�คื�าส่)งส่�ดไว'ที่��ต่�าแหน�งที่��อย)�ส่)งวางไบต่�ที่��ม�คื�าส่)งส่�ดไว'ที่��ต่�าแหน�งที่��อย)�ส่)ง Bi-endianBi-endian : : ส่ามารืถูเก*บข'อม)ลได'ที่�4งส่องแบบส่ามารืถูเก*บข'อม)ลได'ที่�4งส่องแบบ

Page 5: Lecture 4

55

วงรือบคื�าส่��งวงรือบคื�าส่��ง วงรือบการืที่�างานวงรือบการืที่�างาน 11 คื�าส่��งเรืาเรื�ยกว�า คื�าส่��งเรืาเรื�ยกว�า ““วงรือบคื�าวงรือบคื�า

ส่��งส่��ง””(instruction cycle)(instruction cycle) จะปรืะกอบด'วยวงรือบการือ�านคื�าส่��งจะปรืะกอบด'วยวงรือบการือ�านคื�าส่��งหรื�อหรื�อ fetch cyclefetch cycle และ และ execute cycleexecute cycle โปรืแกรืมจะหย�ดที่�างานโปรืแกรืมจะหย�ดที่�างานเม��อที่�าถู$งคื�าส่��งที่��ให'หย�ดที่�างาน หรื�อเม��อป8ดเคืรื��อง หรื�อเม��อเก"ดเม��อที่�าถู$งคื�าส่��งที่��ให'หย�ดที่�างาน หรื�อเม��อป8ดเคืรื��อง หรื�อเม��อเก"ดข'อผ"ดพิลาดก�บเคืรื��องจนหย�ดการืที่�างานข'อผ"ดพิลาดก�บเคืรื��องจนหย�ดการืที่�างาน

ในการือ�านคื�าส่��ง โปรืเซึ่ส่เซึ่อรื�อาจจะอ�านจากหน�วยคืวามจ�าในการือ�านคื�าส่��ง โปรืเซึ่ส่เซึ่อรื�อาจจะอ�านจากหน�วยคืวามจ�าโดยต่รืง แต่�โดยที่��วไปแล'วโปรืเซึ่ส่เซึ่อรื�จะอ�านต่�าแหน�งที่��เก*บคื�าโดยต่รืง แต่�โดยที่��วไปแล'วโปรืเซึ่ส่เซึ่อรื�จะอ�านต่�าแหน�งที่��เก*บคื�าส่��งต่�อไปจากโปรืแกรืมเคืาเต่อรื� ส่� �งต่�อไปจากโปรืแกรืมเคืาเต่อรื� (Program counter)(Program counter) ต่�าแหน�งต่�าแหน�งเหล�าน�4จะอย)�บนหน�วยคืวามจ�าแล'วเอ*กซึ่"คื"วต่�ต่ามคื�าส่��งที่��อ�านเข'าเหล�าน�4จะอย)�บนหน�วยคืวามจ�าแล'วเอ*กซึ่"คื"วต่�ต่ามคื�าส่��งที่��อ�านเข'ามา ซึ่$�งมา ซึ่$�ง program counterprogram counter จะที่�าการืเพิ"�มคื�าข$4นเรื��อย ๆ ที่�าให'จะที่�าการืเพิ"�มคื�าข$4นเรื��อย ๆ ที่�าให'โปรืเซึ่ส่เซึ่อรื�ที่�างานเรื��อยไปโปรืเซึ่ส่เซึ่อรื�ที่�างานเรื��อยไป

Page 6: Lecture 4

66

ไดอะแกรืมของวงรือบคื�าส่��งไดอะแกรืมของวงรือบคื�าส่��ง

Instructionfetch

Operand fetch

Operand store

Instruction address

calculation

Instruction operation decoding

Operand address

calculation

Dataoperation

Operand address

calculation

Multiple operands

Multiple results

Instruction completeFetch next instruction

Return for stringor vector data

Page 7: Lecture 4

77

ไดอะแกรืมของวงรือบคื�าส่��งไดอะแกรืมของวงรือบคื�าส่��ง Instruction Address Calculation(IAC):Instruction Address Calculation(IAC): หาต่�าแหน�งที่��เก*บคื�าส่��งต่�อไปที่��หาต่�าแหน�งที่��เก*บคื�าส่��งต่�อไปที่��

โปรืเซึ่ส่เซึ่อรื�ที่��จะอ�านเข'ามาโปรืเซึ่ส่เซึ่อรื�ที่��จะอ�านเข'ามา Instruction Fetch(IF):Instruction Fetch(IF): อ�านคื�าส่��งจากต่�าแหน�งบนหน�วยคืวามจ�าลงในอ�านคื�าส่��งจากต่�าแหน�งบนหน�วยคืวามจ�าลงใน

โปรืเซึ่ส่เซึ่อรื�โปรืเซึ่ส่เซึ่อรื� Instruction Operation Decoding(IOD):Instruction Operation Decoding(IOD): ว"เคืรืาะห�คื�าส่��งเพิ��อพิ"จารืณาว"เคืรืาะห�คื�าส่��งเพิ��อพิ"จารืณา

ปรืะเภที่ของโอเปอรื�เรืชื่��นที่��จะกรืะที่�า รืวมที่�4งโอเปอรื�แรืนด�ที่��จะใชื่'ปรืะเภที่ของโอเปอรื�เรืชื่��นที่��จะกรืะที่�า รืวมที่�4งโอเปอรื�แรืนด�ที่��จะใชื่' Operand Address Calculation(OAC):Operand Address Calculation(OAC): หาต่�าแหน�งของโอเปอรื�แรืนด� หาต่�าแหน�งของโอเปอรื�แรืนด�

ถู'าโอเปอรื�เรืชื่�นน�4นม�การือ'างถู$ง โอเปอรื�แรืนด�หรื�อที่��ม�อย)�ในหน�วยคืวามจ�าถู'าโอเปอรื�เรืชื่�นน�4นม�การือ'างถู$ง โอเปอรื�แรืนด�หรื�อที่��ม�อย)�ในหน�วยคืวามจ�าผ�านที่างอ�ปกรืณ�ผ�านที่างอ�ปกรืณ� อ"นพิ�ต่อ"นพิ�ต่//เอาที่�พิ�ต่เอาที่�พิ�ต่

Operand Fetch(OF):Operand Fetch(OF): อ�านโอเปอรื�แรืนด�จากหน�วยคืวามจ�าหรื�ออ�านจากอ�านโอเปอรื�แรืนด�จากหน�วยคืวามจ�าหรื�ออ�านจากอ�ปกรืณ�อ"นพิ�ต่อ�ปกรืณ�อ"นพิ�ต่//เอาที่�พิ�ต่เอาที่�พิ�ต่

DataData Operation(DO):Operation(DO): น�าข'อม)ลมากรืะที่�าต่ามโอเปอเรืชื่�นที่��ก�าหนดในคื�าน�าข'อม)ลมากรืะที่�าต่ามโอเปอเรืชื่�นที่��ก�าหนดในคื�าส่��งส่��ง

Operand Store(OS):Operand Store(OS): เข�ยนผลล�พิธ์�ลงในหน�วยคืวามจ�าหรื�อส่�งออกไปเข�ยนผลล�พิธ์�ลงในหน�วยคืวามจ�าหรื�อส่�งออกไปที่างอ�ปกรืณ�อ"นพิ�ต่ที่างอ�ปกรืณ�อ"นพิ�ต่//เอาที่�พิ�ต่เอาที่�พิ�ต่

Page 8: Lecture 4

88

ปรืะเภที่คื�าส่��งปรืะเภที่คื�าส่��ง ลองพิ"จารืณาคื�าส่��งภาษาชื่�4นส่)ง เชื่�นลองพิ"จารืณาคื�าส่��งภาษาชื่�4นส่)ง เชื่�น pascal, Fortranpascal, Fortran หรื�อ หรื�อ BasicBasic

X = X + YX = X + Y ลองส่มมต่"คื�าต่�วแปรืลองส่มมต่"คื�าต่�วแปรื XX และ และ Y Y เก*บอย)�ที่��ต่�าแหน�งเก*บอย)�ที่��ต่�าแหน�ง 123123 และและ 456456

ต่ามล�าด�บ โอเปอเรืชื่�นน�4จะที่�าต่ามล�าด�บ โอเปอเรืชื่�นน�4จะที่�า 33 คื�าส่��ง คื�อคื�าส่��ง คื�อ1. 1. โหลดคื�าจากหน�วยคืวามจ�าต่�าแหน�ง โหลดคื�าจากหน�วยคืวามจ�าต่�าแหน�ง 123123 ลงรื�จ"ส่เต่อรื�ลงรื�จ"ส่เต่อรื�2. 2. บวกคื�าจากหน�วยคืวามต่�าแหน�งบวกคื�าจากหน�วยคืวามต่�าแหน�ง 456456 ก�บคื�าในรื�จ"ส่เต่อรื�ก�บคื�าในรื�จ"ส่เต่อรื�3.3. เก*บคื�าจากรื�จ"ส่เต่อรื�ลงบนหน�วยคืวามจ�าต่�าแหน�งเก*บคื�าจากรื�จ"ส่เต่อรื�ลงบนหน�วยคืวามจ�าต่�าแหน�ง 123123

จะเห*นว�าภาษาชื่�4นส่)งจะใชื่'ส่�ญล�กษณ�ที่างคืณ"ต่ศาส่ต่รื�และใชื่'จะเห*นว�าภาษาชื่�4นส่)งจะใชื่'ส่�ญล�กษณ�ที่างคืณ"ต่ศาส่ต่รื�และใชื่'ต่�วแปรื ส่�วนคื�าส่��งภาษาเคืรื��องจะใชื่'การืถู�ายโอนข'อม)ลรืะหว�างหน�วยต่�วแปรื ส่�วนคื�าส่��งภาษาเคืรื��องจะใชื่'การืถู�ายโอนข'อม)ลรืะหว�างหน�วยคืวามจ�าก�บรื�จ"ส่เต่อรื�คืวามจ�าก�บรื�จ"ส่เต่อรื�

ด�งน�4นเรืาส่ามารืถูแบ�งกล��มปรืะเภที่คื�าส่��งของภาษาเคืรื��องได' ด�งน�4ด�งน�4นเรืาส่ามารืถูแบ�งกล��มปรืะเภที่คื�าส่��งของภาษาเคืรื��องได' ด�งน�4 Data processingData processing : : คื�าส่��งที่างคืณ"ต่ศาส่ต่รื�และต่รืรืกะคื�าส่��งที่างคืณ"ต่ศาส่ต่รื�และต่รืรืกะ Data storageData storage : : คื�าส่��งจ�ดการืหน�วยคืวามจ�าคื�าส่��งจ�ดการืหน�วยคืวามจ�า Data movementData movement : : คื�าส่��งจ�ดการือ"นพิ�ต่คื�าส่��งจ�ดการือ"นพิ�ต่//เอาที่�พิ�ต่เอาที่�พิ�ต่ ControlControl : : คื�าส่��งต่รืวจส่อบเง��อนไขและกรืะโดดไปที่�างานคื�าส่��งต่รืวจส่อบเง��อนไขและกรืะโดดไปที่�างาน

Page 9: Lecture 4

99

จ�านวนจ�านวน AddressAddress ถู'าเรืาต่'องการืจ�านวนแอ*ดเดรืส่ส่)งส่�ดส่�าหรื�บ ถู'าเรืาต่'องการืจ�านวนแอ*ดเดรืส่ส่)งส่�ดส่�าหรื�บ 22 แอ*ดเดแอ*ดเด

รืส่เพิ��ออ'างอ"งโอเปอแรืนด� อ�กรืส่เพิ��ออ'างอ"งโอเปอแรืนด� อ�ก 11 แอ*ดเดรืส่ส่�าหรื�บเก*บแอ*ดเดรืส่ส่�าหรื�บเก*บคื�าผลล�พิธ์� และคื�าผลล�พิธ์� และ 11 แอ*ดเดรืส่ส่�าหรื�บเก*บคื�าคื�าส่��งต่�อไปที่��แอ*ดเดรืส่ส่�าหรื�บเก*บคื�าคื�าส่��งต่�อไปที่��จะอ�านเข'ามา จะเห*นว�าต่'องใชื่'ถู$งจะอ�านเข'ามา จะเห*นว�าต่'องใชื่'ถู$ง 44 แอ*ดเดรืส่ แอ*ดเดรืส่ ((22 ส่�าหรื�บโอเปอรื�แรืนด�และอ�กส่�าหรื�บโอเปอรื�แรืนด�และอ�ก 22 ส่�าหรื�บเก*บผลล�พิธ์�และส่�าหรื�บเก*บผลล�พิธ์�และคื�าส่��งถู�ดไปคื�าส่��งถู�ดไป))

แต่�ในที่างปฎิ"บ�ต่"คื�าส่��งที่��ใชื่'โอเปอแรืนด�แต่�ในที่างปฎิ"บ�ต่"คื�าส่��งที่��ใชื่'โอเปอแรืนด� 44 แอ*ดเดรืส่หาแอ*ดเดรืส่หาได'ยาก ส่�วนมากจะเป.นหน$�ง หรื�อส่อง หรื�อส่ามแอ*ดเดได'ยาก ส่�วนมากจะเป.นหน$�ง หรื�อส่อง หรื�อส่ามแอ*ดเดรืส่เที่�าน�4น ส่�วนแอ*ดเดรืส่ส่�าหรื�บคื�าส่��งต่�อไปส่�วนมากจะรืส่เที่�าน�4น ส่�วนแอ*ดเดรืส่ส่�าหรื�บคื�าส่��งต่�อไปส่�วนมากจะใชื่'ใชื่' Program counterProgram counter

Page 10: Lecture 4

1010

จ�านวน จ�านวน AddressAddress

LOAD A ย'าย A ไปย�ง Accumalator ACMULTIPLY B AC := AC x BSTORE T ย'าย AC ไปหน�วยคืวามจ�าต่�าแหน�ง TLOAD C ย'าย C ไปย�งแอ*กคื"วม)เลเต่อรื� ACMULTIPLY C AC := AC x CADD T AC := AC + TSTORE X เก*บคื�าผลล�พิธ์�ในหน�วยคืวามจ�าต่�าแหน�ง X

One Address

MOVE T, A T := AMULTIPLY T, B T := T x BMOVE X, C X := CMULTIPLY X, C X := X x CLOAD X, T X:= X + T

Two Address

Y = A x B + C x C

Page 11: Lecture 4

1111

จ�านวนจ�านวน AddressAddressY = A x B + C x C

MULTIPLY T, A, B T := A x BMULTIPLY X, C, C X := C x CADD X, X, T X := X + T

Three Address

PUSH A ย'าย A ไปอย)�บนส่�ดของส่แต่*กPUSH B ย'าย B ไปอย)�บนส่�ดของส่แต่*กMULTIPLY ลบ A, B ออกจากแส่ต่*กและแที่นคื�าด'วย A x BPUSH C ย'าย C ไปอย)�บนส่�ดของส่แต่*กPUSH C ย'ายก*อปป<4 ที่��ส่องของ C ไปอย)�บนส่�ดของส่แต่*กMULTIPLY ลบ C, C ออกจากส่แต่*ก และแที่นคื�าด'วย C x CADD ลบ C x C, A x B ออกจากส่แต่*ก และแที่นคื�าด'วย

ผลบวกของ (C x C) + (A x B)POP X ย'ายผลล�พิธ์�จากบนส่�ดของส่แต่*กไปเก*บไว'ที่�� X

Zero AddressStack processor

Page 12: Lecture 4

1212

การืออกแบบชื่�ดคื�าส่��งการืออกแบบชื่�ดคื�าส่��ง การืออกแบบชื่�ดคื�าส่��งเป.นงานที่��ม�คืวามซึ่�บซึ่'อนเน��องจากม�ผลกการืออกแบบชื่�ดคื�าส่��งเป.นงานที่��ม�คืวามซึ่�บซึ่'อนเน��องจากม�ผลก

รืะที่บก�บรืะบบคือมพิ"วเต่อรื� ชื่�ดคื�าส่��งก�าหนดฟั6งก�ชื่�นที่��หลากรืะที่บก�บรืะบบคือมพิ"วเต่อรื� ชื่�ดคื�าส่��งก�าหนดฟั6งก�ชื่�นที่��หลากหลายที่��ที่�าโดยซึ่�พิ�ย) ม�ผลกรืะที่บอย�างมากก�บซึ่�พิ�ย) ชื่�ดคื�าส่��งคื�อหลายที่��ที่�าโดยซึ่�พิ�ย) ม�ผลกรืะที่บอย�างมากก�บซึ่�พิ�ย) ชื่�ดคื�าส่��งคื�อส่"�งที่��โปรืแกรืมเมอรื�ใชื่'คืวบคื�มซึ่�พิ�ย) ด�งน�4นส่"�งที่��โปรืแกรืมเมอรื�ส่"�งที่��โปรืแกรืมเมอรื�ใชื่'คืวบคื�มซึ่�พิ�ย) ด�งน�4นส่"�งที่��โปรืแกรืมเมอรื�ต่'องการืจะต่'องน�ามาพิ"จารืณาในการืออกแบบชื่�ดคื�าส่��งด'วย พิ�4นต่'องการืจะต่'องน�ามาพิ"จารืณาในการืออกแบบชื่�ดคื�าส่��งด'วย พิ�4นฐานในการืออกแบชื่�ดคื�าส่��งคืวรืม� ด�งน�4ฐานในการืออกแบชื่�ดคื�าส่��งคืวรืม� ด�งน�4 Operation repertoryOperation repertory: : จ�านวนโอเปอเรืชื่�นที่��ม�ให'เล�อกใชื่' รืวมที่�4งคืวามจ�านวนโอเปอเรืชื่�นที่��ม�ให'เล�อกใชื่' รืวมที่�4งคืวาม

ซึ่�บซึ่'อนของโอเปอเรืชื่�นที่��คืวรืเป.นซึ่�บซึ่'อนของโอเปอเรืชื่�นที่��คืวรืเป.น Data typeData type : : คืวามหลากหลายของปรืะเภที่ข'อม)ลที่��ที่�าโอเปอเรืชื่�นคืวามหลากหลายของปรืะเภที่ข'อม)ลที่��ที่�าโอเปอเรืชื่�น Instruction formatInstruction format : : คืวามยาวของคื�าส่��งคืวามยาวของคื�าส่��ง((เป.นบ"ต่เป.นบ"ต่)) จ�านวนแอ*ดเดรืส่ จ�านวนแอ*ดเดรืส่

ขนาดของฟั8ลด�และอ��น ๆขนาดของฟั8ลด�และอ��น ๆ RegisterRegister : : จ�านวนรื�จ"ส่เต่อรื�ที่��คื�าส่��งส่ามารืถูอ'างอ"งและใชื่'ปรืะโยชื่น�ได'จ�านวนรื�จ"ส่เต่อรื�ที่��คื�าส่��งส่ามารืถูอ'างอ"งและใชื่'ปรืะโยชื่น�ได' AddressingAddressing : : การืก�าหนดโหมดของแอ*ดเดรืส่ส่�าหรื�บโอเปอแรืนด�การืก�าหนดโหมดของแอ*ดเดรืส่ส่�าหรื�บโอเปอแรืนด�

Page 13: Lecture 4

1313

ปรืะเภที่ของโอเปอเรืชื่�นปรืะเภที่ของโอเปอเรืชื่�น จ�านวนจ�านวน Opcode Opcode แต่�ละเคืรื��องม�หลากหลายก�นไป แต่�แต่�ละเคืรื��องม�หลากหลายก�นไป แต่�

อย�างไรืก*ต่าม ปรืะเภที่โอเปอเรืชื่�นพิ�4นฐานที่��พิบในแต่�ละอย�างไรืก*ต่าม ปรืะเภที่โอเปอเรืชื่�นพิ�4นฐานที่��พิบในแต่�ละเคืรื��องจะเหม�อนก�น ซึ่$�งส่ามารืถูแบ�งกล��มได' ด�งน�4เคืรื��องจะเหม�อนก�น ซึ่$�งส่ามารืถูแบ�งกล��มได' ด�งน�4 โอเปอเรืชื่�นที่างด'านการืถู�ายโอนข'อม)ลโอเปอเรืชื่�นที่างด'านการืถู�ายโอนข'อม)ล (Data transfer)(Data transfer) โอเปอเรืชื่�นที่างด'านคืณ"ต่ศาส่ต่รื� โอเปอเรืชื่�นที่างด'านคืณ"ต่ศาส่ต่รื� (Arithmetic)(Arithmetic) โอเปอเรืชื่�นที่างด'านต่รืรืกะโอเปอเรืชื่�นที่างด'านต่รืรืกะ (Logical)(Logical) โอเปอเรืชื่�นที่างด'านการืแปลงคื�าโอเปอเรืชื่�นที่างด'านการืแปลงคื�า (Conversion)(Conversion) โอเปอเรืชื่�นที่างด'านอ�ปกรืณ�อ"นพิ�ต่โอเปอเรืชื่�นที่างด'านอ�ปกรืณ�อ"นพิ�ต่//เอาที่�พิ�ต่เอาที่�พิ�ต่ (I/O)(I/O) โอเปอเรืชื่�นที่างด'านการืคืวบคื�มรืะบบโอเปอเรืชื่�นที่างด'านการืคืวบคื�มรืะบบ (System control)(System control)

Page 14: Lecture 4

1414

ปรืะเภที่ของโอเปอเรืชื่�นปรืะเภที่ของโอเปอเรืชื่�นประเภทโอเปอเรประเภทโอเปอเร

ชันชันชั� อโอเปอเรชั� อโอเปอเร

ชันชันคำ��อธิ�บ�ยคำ��อธิ�บ�ย

ก�รถ่��ยโอนก�รถ่��ยโอนข้�อมู�ลข้�อมู�ล

MoveMove ถู�ายโอนข'อม)ลจากต่'นที่างไปปลายถู�ายโอนข'อม)ลจากต่'นที่างไปปลายที่างที่าง

StoreStore ถู�ายโอนข'อม)ลจากโปรืเซึ่ส่เซึ่อรื�ไปถู�ายโอนข'อม)ลจากโปรืเซึ่ส่เซึ่อรื�ไปหน�วยคืวามจ�าหน�วยคืวามจ�า

LoadLoad ถู�ายโอนข'อม)ลจากหน�วยคืวามจ�าไปถู�ายโอนข'อม)ลจากหน�วยคืวามจ�าไปโปรืเซึ่ส่เซึ่อรื�โปรืเซึ่ส่เซึ่อรื�

ExchangeExchange แลกเปล��ยนข'อม)ลรืะหว�างต่'นที่างก�บแลกเปล��ยนข'อม)ลรืะหว�างต่'นที่างก�บปลายที่างปลายที่าง

ClearClear ถู�ายโอนคื�าถู�ายโอนคื�า 0 0 ไปย�งปลายที่างไปย�งปลายที่างSetSet ถู�ายโอนคื�าถู�ายโอนคื�า 11 ไปปลายที่างไปปลายที่างPushPush ถู�ายโอนคื�าจากต่'นที่างข$4นไปบนส่�ดถู�ายโอนคื�าจากต่'นที่างข$4นไปบนส่�ด

ของของ StackStack

PopPop ถู�ายโอนคื�าจากบนส่�ดของถู�ายโอนคื�าจากบนส่�ดของ StackStack ไปไปปลายที่างปลายที่าง

Page 15: Lecture 4

1515

ปรืะเภที่ของโอเปอเรืชื่�นปรืะเภที่ของโอเปอเรืชื่�นประเภทโอประเภทโอเปอเรชันเปอเรชัน

ชั� อโอเปอเรชั� อโอเปอเรชันชัน

คำ��อธิ�บ�ยคำ��อธิ�บ�ย

คำณิ�ตศ�สตร!คำณิ�ตศ�สตร! AddAdd หาผลบวกของโอเปอแรืนด� หาผลบวกของโอเปอแรืนด� 22 ต่�วต่�วAdd with Add with CarryCarry

หาผลบวกของโอเปอแรืนด� หาผลบวกของโอเปอแรืนด� 22 ต่�วและต่�วและบ"ต่ต่�วที่ดบ"ต่ต่�วที่ด

SubtractSubtract หาผลลบของโอเปอแรืนด�หาผลลบของโอเปอแรืนด� 2 2 ต่�วต่�วMultiplyMultiply หาผลคื)ณของโอเปอแรืนด�หาผลคื)ณของโอเปอแรืนด� 2 2 ต่�วต่�วDivideDivide หาผลหารืของโอเปอแรืนด�หาผลหารืของโอเปอแรืนด� 22 ต่�วต่�วAbsoluteAbsolute เปล��ยนคื�าโอเปอแรืนด�เป.นคื�าส่มบ)รืณ�เปล��ยนคื�าโอเปอแรืนด�เป.นคื�าส่มบ)รืณ�NegateNegate เปล��ยนเคืรื��องหมายโอเปอแรืนด�เป.นเปล��ยนเคืรื��องหมายโอเปอแรืนด�เป.น

คื�าต่รืงข'ามคื�าต่รืงข'ามIncrementIncrement บวกบวก 11 เข'าก�บโอเปอแรืนด�เข'าก�บโอเปอแรืนด�DecrementDecrement ลบลบ 11 ออกจากโอเปอแรืนด�ออกจากโอเปอแรืนด�

Page 16: Lecture 4

1616

ปรืะเภที่ของโอเปอเรืชื่�นปรืะเภที่ของโอเปอเรืชื่�นประเภทโอประเภทโอเปอเรชันเปอเรชัน

ชั� อโอเปอเรชั� อโอเปอเรชันชัน

คำ��อธิ�บ�ยคำ��อธิ�บ�ย

ตรรกะตรรกะ ANDAND กรืะที่�าโอเปอเรืชื่�นที่างต่รืรืกะบ"ต่ต่�อกรืะที่�าโอเปอเรืชื่�นที่างต่รืรืกะบ"ต่ต่�อบ"ต่บ"ต่OROR

NOTNOT

Exclusive-Exclusive-OROR

ShiftShift เล��อนบ"ต่ของโอเปอแรืนด� เล��อนบ"ต่ของโอเปอแรืนด� ((ซึ่'ายหรื�อซึ่'ายหรื�อขวาขวา) ) 1 1 บ"ต่บ"ต่

RotateRotate หม�นบ"ต่ของโอเปอแรืนด� หม�นบ"ต่ของโอเปอแรืนด� ((ซึ่'ายหรื�อซึ่'ายหรื�อขวาขวา)) 1 1 บ"ต่ โดยบ"ต่ส่�ดที่'ายวนกล�บบ"ต่ โดยบ"ต่ส่�ดที่'ายวนกล�บเป.นคื�าบ"ต่แรืกเป.นคื�าบ"ต่แรืก

Page 17: Lecture 4

1717

ปรืะเภที่ของโอเปอเรืชื่�นปรืะเภที่ของโอเปอเรืชื่�นประเภทโอประเภทโอเปอเรชันเปอเรชัน

ชั� อโอเปอเรชั� อโอเปอเรชันชัน

คำ��อธิ�บ�ยคำ��อธิ�บ�ย

ก�รคำวบคำ#มูก�รคำวบคำ#มู JumpJump

(branch)(branch)กรืะโดดไปโดยไม�ม�เง��อนไข กรืะโดดไปโดยไม�ม�เง��อนไข ; ; โหลดโหลด PCPC ไปย�งแอ*ดเดรืส่ที่��ก�าหนดไปย�งแอ*ดเดรืส่ที่��ก�าหนด

Jump Jump conditioncondition

กรืะโดดไปถู'าต่รืงเง��อนไขกรืะโดดไปถู'าต่รืงเง��อนไข ;; อาจจะอาจจะโหลดโหลด PCPC ไปย�งแอ*ดเดรืส่ที่��ก�าหนด ไปย�งแอ*ดเดรืส่ที่��ก�าหนด หรื�อ อาจจะไม�ได'ที่�าอะไรืเลยหรื�อ อาจจะไม�ได'ที่�าอะไรืเลย

Jump to Jump to subroutinesubroutine

วางข'อม)ลโปรืแกรืมคือนโที่รืลในวางข'อม)ลโปรืแกรืมคือนโที่รืลในต่�าแหน�งที่��แน�นอนต่�าแหน�งที่��แน�นอน ;; กรืะโดดไปกรืะโดดไปต่�าแหน�งที่��ก�าหนดต่�าแหน�งที่��ก�าหนด

ReturnReturn เปล��ยนข'อม)ลเปล��ยนข'อม)ล PC PC และรื�จ"ส่เต่อรื�อ��นและรื�จ"ส่เต่อรื�อ��นจากต่�าแหน�งที่��แน�นอนจากต่�าแหน�งที่��แน�นอน

ExecuteExecute ด$งโอเปอแรืนด�จากต่�าแหน�งที่��ด$งโอเปอแรืนด�จากต่�าแหน�งที่��ก�าหนดแล'วเอ*กซึ่"คื"วต่�คื�าส่��งก�าหนดแล'วเอ*กซึ่"คื"วต่�คื�าส่��ง; ; ไม�ม�การืไม�ม�การืเปล��ยนแปลงเปล��ยนแปลง PCPC

SkipSkip เพิ"�มคื�า เพิ"�มคื�า PCPC เพิ��อข'ามไปย�งคื�าส่��งต่�อไปเพิ��อข'ามไปย�งคื�าส่��งต่�อไป

Page 18: Lecture 4

1818

ปรืะเภที่ของโอเปอเรืชื่�นปรืะเภที่ของโอเปอเรืชื่�นประเภทโอประเภทโอเปอเรชันเปอเรชัน

ชั� อโอเปอเรชั� อโอเปอเรชันชัน

คำ��อธิ�บ�ยคำ��อธิ�บ�ย

ก�รคำวบคำ#มูก�รคำวบคำ#มู Skip Skip conditioncondition

ข'ามไปถู'าต่รืงเง��อนไขข'ามไปถู'าต่รืงเง��อนไข ;; อาจจะข'ามไป อาจจะข'ามไป หรื�ออาจจะไม�ได'ที่�าอะไรืเลยหรื�ออาจจะไม�ได'ที่�าอะไรืเลย

TestTest ต่รืวจส่อบเง��อนไขต่รืวจส่อบเง��อนไข;; เซึ่*ต่คื�าแฟั.กต่ามเซึ่*ต่คื�าแฟั.กต่ามผลที่��เก"ดข$4นผลที่��เก"ดข$4น

CompareCompare เปรื�ยบเที่�ยบโอเปอแรืนด�เปรื�ยบเที่�ยบโอเปอแรืนด� 2 2 ต่�วหรื�อต่�วหรื�อมากกว�ามากกว�า;; เซึ่*ต่คื�าแฟั.กต่ามผลที่��เก"ดเซึ่*ต่คื�าแฟั.กต่ามผลที่��เก"ดข$4นข$4น

Set control Set control variablevariable

คืวบคื�มส่�าหรื�บป=องก�นคืวบคื�มส่�าหรื�บป=องก�น,,แก'ไขอ"นเที่แก'ไขอ"นเที่อรื�รื�พิที่�อรื�รื�พิที่�,,คืวบคื�มเวลาหรื�ออ��น ๆคืวบคื�มเวลาหรื�ออ��น ๆ

HaltHalt หย�ดการืเอ*กซึ่"คื"วต่�โปรืแกรืมหย�ดการืเอ*กซึ่"คื"วต่�โปรืแกรืมWait(hold)Wait(hold) หย�ดการืเอ*กซึ่"คื"วต่�โปรืแกรืมหย�ดการืเอ*กซึ่"คื"วต่�โปรืแกรืม;; ต่รืวจต่รืวจ

ส่อบเง��อนไขไปเรื��อยจนกว�าเง��อนไขจะส่อบเง��อนไขไปเรื��อยจนกว�าเง��อนไขจะเป.นจรื"งเป.นจรื"ง

No No operationoperation

ไม�ม�โอเปอเรืชื่�น แต่�ย�งคืงม�การืเอ*กซึ่"ไม�ม�โอเปอเรืชื่�น แต่�ย�งคืงม�การืเอ*กซึ่"คื"วซึ่�โปรืแกรืมต่�อไปคื"วซึ่�โปรืแกรืมต่�อไป

Page 19: Lecture 4

1919

ปรืะเภที่ของโอเปอเรืชื่�นปรืะเภที่ของโอเปอเรืชื่�นประเภทโอประเภทโอเปอเรชันเปอเรชัน

ชั� อโอเปอเรชั� อโอเปอเรชันชัน

คำ��อธิ�บ�ยคำ��อธิ�บ�ย

อ#ปกรณิ! อ#ปกรณิ! I/OI/O Input(read)Input(read) ถู�ายโอนข'อม)ลจากพิอรื�ต่ของถู�ายโอนข'อม)ลจากพิอรื�ต่ของอ�ปกรืณ� อ�ปกรืณ� I/OI/O หรื�อหรื�อ device device ไปย�งไปย�งปลายที่างปลายที่าง((เชื่�น จากหน�วยคืวามเชื่�น จากหน�วยคืวามจ�าหล�กไปรื�จ"ส่เต่อรื�ของโปรืเซึ่ส่เซึ่อรื�จ�าหล�กไปรื�จ"ส่เต่อรื�ของโปรืเซึ่ส่เซึ่อรื�))

Output(write)Output(write) ถู�ายโอนข'อม)ลจากต่'นที่างที่��ก�าหนดไปถู�ายโอนข'อม)ลจากต่'นที่างที่��ก�าหนดไปย�งพิอรื�ต่อ�ปกรืณ� ย�งพิอรื�ต่อ�ปกรืณ� I/OI/O หรื�อหรื�อ devicedevice

Start I/OStart I/O ถู�ายโอนคื�าส่��งจากโปรืเซึ่ส่เซึ่อรื�ของถู�ายโอนคื�าส่��งจากโปรืเซึ่ส่เซึ่อรื�ของอ�ปกรืณ� อ�ปกรืณ� I/OI/O ไปย�งโอเปอเรืชื่�นเรื"�มต่'นไปย�งโอเปอเรืชื่�นเรื"�มต่'นของของ I/OI/O

Test I/OTest I/O ถู�ายโอนข'อม)ลส่ถูานะจากรืะบบของถู�ายโอนข'อม)ลส่ถูานะจากรืะบบของอ�ปรืกรืณ� อ�ปรืกรืณ� I/OI/O ไปย�งปลายที่างที่��ไปย�งปลายที่างที่��ก�าหนดก�าหนด

ก�รแปลงคำ��ก�รแปลงคำ�� TranslateTranslate แปลงคื�าในส่�วนของหน�วยคืวามจ�าแปลงคื�าในส่�วนของหน�วยคืวามจ�าต่ามต่ารืางที่��ส่�มพิ�นธ์�ก�นต่ามต่ารืางที่��ส่�มพิ�นธ์�ก�น

ConvertConvert แปลงคื�าจากรื)ปแบบหน$�งไปรื)ปแบบแปลงคื�าจากรื)ปแบบหน$�งไปรื)ปแบบหน$�ง หน$�ง ((เชื่�น แปลงเชื่�น แปลง decimal decimal เป.นเลขเป.นเลขฐานส่องฐานส่อง))

Page 20: Lecture 4

2020

โอเปอเรืชื่�นที่างด'านการืโอนถู�ายโอเปอเรืชื่�นที่างด'านการืโอนถู�ายข'อม)ลข'อม)ล เป.นปรืะเภที่ของคื�าส่��งที่��เป.นพิ�4นฐานที่��ส่�ด ซึ่$�งจะต่'องม�การืก�าหนด เป.นปรืะเภที่ของคื�าส่��งที่��เป.นพิ�4นฐานที่��ส่�ด ซึ่$�งจะต่'องม�การืก�าหนด

ด�งน�4ด�งน�4 ต่�าแหน�งของโอเปอแรืนด�ต่'นที่างก�บโอเปอแรืนด�ปลายที่าง แต่�ละต่�าแหน�งต่�าแหน�งของโอเปอแรืนด�ต่'นที่างก�บโอเปอแรืนด�ปลายที่าง แต่�ละต่�าแหน�ง

อาจจะเป.นหน�วยคืวามจ�ารื�จ"ส่เต่อรื� หรื�อส่�วนบนส่�ดของอาจจะเป.นหน�วยคืวามจ�ารื�จ"ส่เต่อรื� หรื�อส่�วนบนส่�ดของ stackstack ก*ได'ก*ได' ขนาดคืวามยาวของข'อม)ลที่��จะถู�ายโอนน�4นจะต่'องก�าหนดให'แน�นอนขนาดคืวามยาวของข'อม)ลที่��จะถู�ายโอนน�4นจะต่'องก�าหนดให'แน�นอน ก�าหนดโหมดแอ*ดเดรืส่ก�าหนดโหมดแอ*ดเดรืส่ (Addressing mode)(Addressing mode) ของแต่�ละโอเปอแรืนด�ของแต่�ละโอเปอแรืนด�

ถู'าพิ"จารืณาการืที่�างานของถู'าพิ"จารืณาการืที่�างานของ CPUCPU แล'ว การืถู�ายโอนข'อม)ลเป.นแล'ว การืถู�ายโอนข'อม)ลเป.นปรืะเภที่ที่��ธ์รืรืมดาที่��ส่�ด ถู'าที่�4งต่'นที่างและปลายที่างเป.นรื�จ"ส่เต่อรื� ปรืะเภที่ที่��ธ์รืรืมดาที่��ส่�ด ถู'าที่�4งต่'นที่างและปลายที่างเป.นรื�จ"ส่เต่อรื� ซึ่�พิ�ย)ก*แคื�ย'ายข'อม)ลจากรื�จ"ส่เต่อรื�หน$�งไปรื�จ"ส่เต่อรื�อ�กต่�วหน$�งเที่�าน�4น ซึ่�พิ�ย)ก*แคื�ย'ายข'อม)ลจากรื�จ"ส่เต่อรื�หน$�งไปรื�จ"ส่เต่อรื�อ�กต่�วหน$�งเที่�าน�4น ซึ่$�งเป.นการืที่�างานภายในซึ่�พิ�ย) แต่�ถู'าโอเปอแรืนด�ใดหรื�อที่�4งส่องโอซึ่$�งเป.นการืที่�างานภายในซึ่�พิ�ย) แต่�ถู'าโอเปอแรืนด�ใดหรื�อที่�4งส่องโอเปอแรืนด�อย)�ในหน�วยคืวามจ�าแล'ว ซึ่�พิ�ย)จะต่'องกรืะที่�าส่"�งใดส่"�งหน$�ง เปอแรืนด�อย)�ในหน�วยคืวามจ�าแล'ว ซึ่�พิ�ย)จะต่'องกรืะที่�าส่"�งใดส่"�งหน$�ง หรื�อที่�กส่"�งด�งต่�อไปน�4หรื�อที่�กส่"�งด�งต่�อไปน�4 คื�านวณแอ*ดเดรืส่ของหน�วยคืวามจ�าต่ามการืก�าหนดโหมดของแอ*ดเดรืส่คื�านวณแอ*ดเดรืส่ของหน�วยคืวามจ�าต่ามการืก�าหนดโหมดของแอ*ดเดรืส่ ถู'าแอ*ดเดรืส่อ'างถู$งหน�วยคืวามจ�าเส่ม�อน จะแปลจากแอ*ดเดรืส่เส่ม�อนเป.นถู'าแอ*ดเดรืส่อ'างถู$งหน�วยคืวามจ�าเส่ม�อน จะแปลจากแอ*ดเดรืส่เส่ม�อนเป.น

แอ*ดเดรืส่จรื"งแอ*ดเดรืส่จรื"ง อาจก�าหนดแอ*ดเดรืส่ในแคืชื่อาจก�าหนดแอ*ดเดรืส่ในแคืชื่ ถู'าไม�ก�าหนด ให'ออกคื�าส่��งไปย�งโมด)ลของหน�วยคืวามจ�าถู'าไม�ก�าหนด ให'ออกคื�าส่� �งไปย�งโมด)ลของหน�วยคืวามจ�า

Page 21: Lecture 4

2121

โอเปอเรืชื่�นที่างด'านต่รืรืกะโอเปอเรืชื่�นที่างด'านต่รืรืกะ โอเปอเรืชื่�นโอเปอเรืชื่�น arithmetic shiftarithmetic shift จะกรืะที่�าก�บข'อม)ลเหม�อนจะกรืะที่�าก�บข'อม)ลเหม�อน

จ�านวนเต่*มที่��ม�เคืรื��องหมาย และไม�เล��อนบ"ต่เคืรื��องหมาย ส่�าหรื�บจ�านวนเต่*มที่��ม�เคืรื��องหมาย และไม�เล��อนบ"ต่เคืรื��องหมาย ส่�าหรื�บการืเล��อนที่างขวาแบบน�4 จะที่�าส่�าเนาบ"ต่เคืรื��องหมายไว'ที่��บ"ต่ขวา การืเล��อนที่างขวาแบบน�4 จะที่�าส่�าเนาบ"ต่เคืรื��องหมายไว'ที่��บ"ต่ขวา แต่�ส่�าหรื�บการืเล��อนที่างซึ่'ายจะเล��อนบ"ต่ไปที่างซึ่'ายเหม�อนแต่�ส่�าหรื�บการืเล��อนที่างซึ่'ายจะเล��อนบ"ต่ไปที่างซึ่'ายเหม�อน logical logical left shift left shift แต่�ไม�ต่'องเล��อนบ"ต่เคืรื��องหมาย ให'คืงบ"ต่น�4นไว'แต่�ไม�ต่'องเล��อนบ"ต่เคืรื��องหมาย ให'คืงบ"ต่น�4นไว'

Rotate Rotate หรื�อการืหม�นซึ่$�งเป.นการืเล��อนแบบวนรือบเป.นโอเปอเรืหรื�อการืหม�นซึ่$�งเป.นการืเล��อนแบบวนรือบเป.นโอเปอเรืชื่�นที่��เก*บคื�าที่�กบ"ต่ไว' โดยการืหม�น ถู'าเป.นการืหม�นขวา ชื่�นที่��เก*บคื�าที่�กบ"ต่ไว' โดยการืหม�น ถู'าเป.นการืหม�นขวา (Right (Right Rotate)Rotate) บ"ต่ขวาส่�ดจะหม�นไปเป.นบ"ต่ซึ่'ายส่�ด หรื�อถู'าเป.นการืหม�นบ"ต่ขวาส่�ดจะหม�นไปเป.นบ"ต่ซึ่'ายส่�ด หรื�อถู'าเป.นการืหม�นซึ่'ายซึ่'าย (Left Rotate)(Left Rotate) บ"ต่ที่��อย)�ซึ่'ายส่�ดจะหม�นไปเป.นบ"ต่ขวาส่�ด บ"ต่ที่��อย)�ซึ่'ายส่�ดจะหม�นไปเป.นบ"ต่ขวาส่�ด ((ที่�4งที่�4งส่องกรืณ�จะต่'องม�การืต่รืวจส่อบเพิ��อให'คืงส่ภาพิในกรืณ�ที่��บ"ต่ซึ่'ายส่องกรืณ�จะต่'องม�การืต่รืวจส่อบเพิ��อให'คืงส่ภาพิในกรืณ�ที่��บ"ต่ซึ่'ายส่�ดเป.นเป.นเคืรื��องหมายส่�ดเป.นเป.นเคืรื��องหมาย (sign bit) (sign bit) ด'วยด'วย

Page 22: Lecture 4

2222

โอเปอเรืชื่�นที่างต่รืรืกะโอเปอเรืชื่�นที่างต่รืรืกะ ต่�วอย�างการืเล��อนและการืหม�นบ"ต่ต่�วอย�างการืเล��อนและการืหม�นบ"ต่

คื�าเรื"�มต่'นคื�าเรื"�มต่'น โอเปอเรืชื่�นโอเปอเรืชื่�น ผลล�พิธ์�ผลล�พิธ์�1010011010100110 Logical rightLogical right shift (3shift (3 บ"ต่บ"ต่)) 0001010000010100

1010011010100110 Logical left shiftLogical left shift (3(3 บ"ต่บ"ต่)) 0011000000110000

1010011010100110 Arithmetic right shift (3Arithmetic right shift (3 บ"ต่บ"ต่))

1111010011110100

1010011010100110 Arithmetic left shift (3Arithmetic left shift (3 บ"ต่บ"ต่)) 1011000010110000

1010011010100110 Right rotate (3Right rotate (3 บ"ต่บ"ต่)) 1101010011010100

1010011010100110 Left rotate (3Left rotate (3 บ"ต่บ"ต่)) 0011010100110101

Page 23: Lecture 4

2323

โอเปอเรืชื่�นการืคืวบคื�มโอเปอเรืชื่�นการืคืวบคื�ม คื�าส่��งในกล��มต่�าง ๆ ที่��กล�าวมาแล'วเป.นคื�าส่��งที่��ม�การืโหลดคื�าส่��งในกล��มต่�าง ๆ ที่��กล�าวมาแล'วเป.นคื�าส่��งที่��ม�การืโหลด

คื�าส่��งต่�อไปไว'ในหน�วยคืวามจ�าเรื�ยบรื'อยแล'ว คื�อคื�าส่��งจะคื�าส่��งต่�อไปไว'ในหน�วยคืวามจ�าเรื�ยบรื'อยแล'ว คื�อคื�าส่��งจะเรื�ยงล�าด�บคื�าส่��งก�อนหล�งไว'แล'ว อย�างไรืก*ต่ามย�งม�กล��มเรื�ยงล�าด�บคื�าส่��งก�อนหล�งไว'แล'ว อย�างไรืก*ต่ามย�งม�กล��มคื�าส่��งที่��เปล��ยนล�าด�บการืเอ*กซึ่"คื"วต่�คื�าส่��ง ซึ่�พิ�ย)จะที่�าคื�าส่��งคื�าส่��งที่��เปล��ยนล�าด�บการืเอ*กซึ่"คื"วต่�คื�าส่��ง ซึ่�พิ�ย)จะที่�าคื�าส่��งในกล��มน�4โดยอ�ปเดที่ในกล��มน�4โดยอ�ปเดที่ PCPC ที่��ปรืะกอบด'วยแอ*ดเดรืส่ของคื�าที่��ปรืะกอบด'วยแอ*ดเดรืส่ของคื�าส่��งในหน�วยคืวามจ�า ยกต่�วอย�างเชื่�น คื�าส่��งส่��งในหน�วยคืวามจ�า ยกต่�วอย�างเชื่�น คื�าส่��ง branchbranch skipskip procedureprocedure

Page 24: Lecture 4

2424

คื�าส่��งคื�าส่��ง branchbranch branchbranch หรื�อบางคืรื�4งเรื�ยกว�าหรื�อบางคืรื�4งเรื�ยกว�า jump jump หล�งคื�าส่��งหล�งคื�าส่��ง branchbranch จะเป.นจะเป.น

แอ*ดเดรืส่ที่��ก�าหนดให'กรืะโดดไปที่�าคื�าส่��งต่�อไป ส่�วนมากคื�าส่��งน�4แอ*ดเดรืส่ที่��ก�าหนดให'กรืะโดดไปที่�าคื�าส่��งต่�อไป ส่�วนมากคื�าส่��งน�4จะเป.นคื�าส่��งจะเป.นคื�าส่��ง conditional branchconditional branch ซึ่$�งจะม�การืเปรื�ยบเที่�ยบซึ่$�งจะม�การืเปรื�ยบเที่�ยบเง��อนไขก�อน ถู'าเก"ดผลต่ามเง��อนไขจ$งกรืะโดดไปแอ*ดเดรืส่ต่ามเง��อนไขก�อน ถู'าเก"ดผลต่ามเง��อนไขจ$งกรืะโดดไปแอ*ดเดรืส่ต่ามที่��ก�าหนดที่��ก�าหนด ((อ�ปเดที่อ�ปเดที่ PCPC ให'เที่�าก�บแอ*ดเดรืส่ที่��ก�าหนดในโอเปอให'เที่�าก�บแอ*ดเดรืส่ที่��ก�าหนดในโอเปอแรืนด�แรืนด�) ) แต่�ถู'าไม�ต่รืงเง��อนไขก*จะเพิ"�มแต่�ถู'าไม�ต่รืงเง��อนไขก*จะเพิ"�ม PCPC ต่ามปกต่"เพิ��อเอ*กซึ่"ต่ามปกต่"เพิ��อเอ*กซึ่"คื"วต่�คื�าส่��งถู�ดไปคื"วต่�คื�าส่��งถู�ดไป

ม�ม� 22 ว"ธ์� ในการืส่รื'างเง��อนไขเพิ��อต่รืวจส่อบคื�าส่��งว"ธ์� ในการืส่รื'างเง��อนไขเพิ��อต่รืวจส่อบคื�าส่��ง conditional conditional branchbranch ก�าหนดรืห�ส่ขนาดก�าหนดรืห�ส่ขนาด 1 1 บ"ต่ หรื�อหลายบ"ต่ก*ได'เพิ��อรืองรื�บผลล�พิธ์�ที่��เก"ดบ"ต่ หรื�อหลายบ"ต่ก*ได'เพิ��อรืองรื�บผลล�พิธ์�ที่��เก"ด

ข$4น เชื่�นในบางเคืรื��องคื�าส่��งส่�าหรื�บข$4น เชื่�นในบางเคืรื��องคื�าส่��งส่�าหรื�บ 44 กรืณ�อาจเป.นกรืณ�อาจเป.น• BRP XBRP X กรืะโดดไปต่�าแหน�งกรืะโดดไปต่�าแหน�ง XX ถู'าผลล�พิธ์�เป.นบวกถู'าผลล�พิธ์�เป.นบวก• BRNBRN XX กรืะโดดไปต่�าแหน�ง กรืะโดดไปต่�าแหน�ง XX ถู'าผลล�พิธ์�เป.นลบถู'าผลล�พิธ์�เป.นลบ• BRZ XBRZ X กรืะโดดไปต่�าแหน�งกรืะโดดไปต่�าแหน�ง XX ถู'าผลล�พิธ์�เป.นศ)นย�ถู'าผลล�พิธ์�เป.นศ)นย�• BRO XBRO X กรืะโดดไปต่�าแหน�งกรืะโดดไปต่�าแหน�ง X X ถู'าผลล�พิธ์�เก"ดถู'าผลล�พิธ์�เก"ด overflowoverflow

Page 25: Lecture 4

2525

คื�าส่��งคื�าส่��ง branchbranch

อ�กว"ธ์�คื�อรื)ปแบบที่��ก�าหนดคื�าส่��งเป.นอ�กว"ธ์�คื�อรื)ปแบบที่��ก�าหนดคื�าส่��งเป.น 33 แอ*ดเดรืส่เพิ��อที่�าการืเปรื�ยบแอ*ดเดรืส่เพิ��อที่�าการืเปรื�ยบเที่�ยบและก�าหนดต่�าแหน�งที่��กรืะโดดไปในคื�าส่��งเด�ยวก�นเลย เชื่�นเที่�ยบและก�าหนดต่�าแหน�งที่��กรืะโดดไปในคื�าส่��งเด�ยวก�นเลย เชื่�น• BRE R1, R2, XBRE R1, R2, X

กรืะโดดไปต่�าแหน�งกรืะโดดไปต่�าแหน�ง XX เม��อข'อม)ลในเม��อข'อม)ลใน R1R1 เที่�าก�บข'อม)ลในเที่�าก�บข'อม)ลใน R2R2

รื)ปหน'าถู�ดไปแส่ดงต่�วอย�างของคื�าส่��งรื)ปหน'าถู�ดไปแส่ดงต่�วอย�างของคื�าส่��ง BranchBranch ให'จ�าไว'ว�าการืกรืะโดดให'จ�าไว'ว�าการืกรืะโดดส่ามารืถูกรืะโดดไปข'างหน'าส่ามารืถูกรืะโดดไปข'างหน'า((ไปคื�าส่��งแอ*ดเดรืส่ส่)งกว�าไปคื�าส่��งแอ*ดเดรืส่ส่)งกว�า) ) หรื�อกรืะโดดหรื�อกรืะโดดย'อนกล�บย'อนกล�บ((แอ*ดเดรืส่ต่��ากว�าแอ*ดเดรืส่ต่��ากว�า) ) ในต่�วอย�างแส่ดงถู$งการืกรืะโดดโดยไม�ม�ในต่�วอย�างแส่ดงถู$งการืกรืะโดดโดยไม�ม�เง��อนไขและแบบม�เง��อนไขที่��ส่ามารืถูเก"ดการืวนรือบคื�าส่��งได' คื�าส่��งในเง��อนไขและแบบม�เง��อนไขที่��ส่ามารืถูเก"ดการืวนรือบคื�าส่��งได' คื�าส่��งในต่�าแหน�ง ต่�าแหน�ง 302302 ถู$งถู$ง 310310 จะถู)กเอ*กซึ่"คื"วซึ่�ซึ่�4า ๆ จนกว�าผลล�พิธ์�ของจะถู)กเอ*กซึ่"คื"วซึ่�ซึ่�4า ๆ จนกว�าผลล�พิธ์�ของ X-X-Y Y เป.น เป.น 00

Page 26: Lecture 4

2626

คื�าส่��งคื�าส่��ง branchbranchMemory Address Instruction

300 …. 301 ….

302 SUB X, Y303 BRZ 311….. ….….. ….….. ….310 BR 302311 ….….. ….325 BRE R1, R2, 335….. ….….. ….335 ….

Conditionalbranch

Conditional branch

Unconditionalbranch

Page 27: Lecture 4

2727

คื�าส่��งคื�าส่��ง skipskip คื�าส่��งในกล��มการืคืวบคื�มอ�กคื�าส่��งหน$�งคื�อคื�าส่��งในกล��มการืคืวบคื�มอ�กคื�าส่��งหน$�งคื�อ skipskip ซึ่$�งคื�าส่��งน�4ซึ่$�งคื�าส่��งน�4

จะม�แอ*ดเดรืส่ที่��แน�นอน โดยปกต่"แล'วคื�าส่��งจะม�แอ*ดเดรืส่ที่��แน�นอน โดยปกต่"แล'วคื�าส่��ง skip skip จะบอกจะบอกว�าม�หน$�งคื�าส่��งที่��ถู)กข'ามไป ด�งน�4นแอ*ดเดรืส่ที่��เห*นน�4จะเที่�าว�าม�หน$�งคื�าส่��งที่��ถู)กข'ามไป ด�งน�4นแอ*ดเดรืส่ที่��เห*นน�4จะเที่�าก�บแอ*ดเดรืส่ของคื�าส่��งต่�อไปบวกก�บคืวามยาวคื�าส่��ง ก�บแอ*ดเดรืส่ของคื�าส่��งต่�อไปบวกก�บคืวามยาวคื�าส่��ง เน��องจากคื�าส่��งเน��องจากคื�าส่��ง skip skip ไม�ต่'องการืแอ*ดเดรืส่ปลายที่าง ไม�ต่'องการืแอ*ดเดรืส่ปลายที่าง ต่�วอย�างที่��เห*นที่��วไปคื�อคื�าส่��ง ต่�วอย�างที่��เห*นที่��วไปคื�อคื�าส่��ง increment-and-skip-if-increment-and-skip-if-zerozero (ISZ)(ISZ) ด�งต่�วอย�างด'านล�างด�งต่�วอย�างด'านล�าง401 ……..

….409 ISZ R1410 BR 401411 ……..

ในต่�วอย�างน�4ม�การืใชื่'คื�าส่��ง 2 คื�าส่��งที่��ที่�าให'เก"ดการืวนรือบ คื�า R1 ถู)กก�าหนดให'ม�คื�าเป.นเลขลบต่อนที่'ายของการืวนรือบคื�า R1 ถู)กเพิ"�มคื�า ถู'าย�งไม�ใชื่� 0 โปรืแกรืมจะกรืะโดดกล�บไปที่��จ�ดเรื"�มต่'นของการืวนรือบ นอกน�4นคื�าส่��งกรืะโดดจะถู)กข'ามไป และโปรืแกรืมย�งคืงที่�าคื�าส่��งต่�อไปหล�งจากหมดการืวนรือบ

Page 28: Lecture 4

2828

คื�าส่��งคื�าส่��ง procedure callprocedure call

procedureprocedure คื�อส่�วนย�อย ๆ ของโปรืแกรืมคือมพิ"วเต่อรื�ที่��รืวมคื�อส่�วนย�อย ๆ ของโปรืแกรืมคือมพิ"วเต่อรื�ที่��รืวมอย)�ในโปรืแกรืมใหญ� ปรืะโยชื่น�ของอย)�ในโปรืแกรืมใหญ� ปรืะโยชื่น�ของ procedure procedure คื�อ ส่ามารืถูคื�อ ส่ามารืถูเรื�ยกใชื่'ส่�วนย�อยของโปรืแกรืมได'หลายคืรื�4งโดยไม�ต่'องเข�ยนเรื�ยกใชื่'ส่�วนย�อยของโปรืแกรืมได'หลายคืรื�4งโดยไม�ต่'องเข�ยนใหม�ที่�าให'เก"ดปรืะส่"ที่ธ์"ภาพิส่)งในการืจ�ดเก*บข'อม)ล และย�งชื่�วยใหม�ที่�าให'เก"ดปรืะส่"ที่ธ์"ภาพิส่)งในการืจ�ดเก*บข'อม)ล และย�งชื่�วยให'การืเข�ยนโปรืแกรืมขนาดใหญ�ที่�าได'ง�ายโดยการืแบ�งเป.นส่�วนให'การืเข�ยนโปรืแกรืมขนาดใหญ�ที่�าได'ง�ายโดยการืแบ�งเป.นส่�วนย�อย ๆ แล'วเข�ยนโปรืแกรืมให'เส่รื*จเรื�ยบรื'อยในแต่�ละส่�วน แล'วย�อย ๆ แล'วเข�ยนโปรืแกรืมให'เส่รื*จเรื�ยบรื'อยในแต่�ละส่�วน แล'วคื�อยน�ามารืวมก�นภายหล�งคื�อยน�ามารืวมก�นภายหล�ง

กลไกการืที่�างานของ กลไกการืที่�างานของ procedureprocedure จะม�คื�าส่��งพิ�4นฐานจะม�คื�าส่��งพิ�4นฐาน 22 คื�าส่��ง คื�าส่��ง คื�อ คื�าส่��งคื�อ คื�าส่��ง callcall เพิ��อกรืะโดดจากต่�าแหน�งป6จจ�บ�นไปย�งเพิ��อกรืะโดดจากต่�าแหน�งป6จจ�บ�นไปย�ง procedureprocedure ที่��ต่'องการื และคื�าส่��งที่��ต่'องการื และคื�าส่��ง returnreturn เพิ��อกล�บจากเพิ��อกล�บจาก procedure procedure มาย�งต่�าแหน�งเด"มที่��เรื�ยกมาย�งต่�าแหน�งเด"มที่��เรื�ยก procedure procedure

Page 29: Lecture 4

2929

คื�าส่��งคื�าส่��ง procedure callprocedure call…………….……………..CALL Proc1

………………

…………….……………..CALL Proc2

………………CALL Proc2……………..

RETURN

…………….……………RETURN

Main Program

ProcedureProc1

ProcedureProc2

5000

51005101

5500

56005601

56505651

5800

จากรื)ปแส่ดงการืม� procedure ในโปรืแกรืมหล�กโดยโปรืแกรืมหล�กอย)�ที่��ต่�าแหน�ง 5000 ที่��ม�การืเรื�ยกProcedure ที่��ชื่��อ Proc1 ซึ่$�งเรื"�มต่'นที่��ต่�าแหน�ง5500 เม��อถู$งคื�าส่��ง call ที่��เรื�ยก Proc1 น�4นซึ่�พิ�ย)จะหย�ดการืเอ*กซึ่"คื"วซึ่�คื�าส่��งที่��โปรืแกรืมหล�ก แล'วเรื"�มต่'นการืเอ*กซึ่"คื"วซึ่� Proc1 โดยด$งคื�าส่��งถู�ดไปจากต่�าแหน�ง 5500 ภายใน Proc1 จะม�คื�าส่��ง CALL2 คืรื�4งเพิ��อเรื�ยก Proc2 ซึ่$�งเรื"�มต่'นที่��ต่�าแหน�ง 5800 ในแต่�ละกรืณ�จะหย�ดการืเอ*กซึ่"คื"วต่� Proc1 ไว'ก�อนแล'วจะเรื"�มเอ*กซึ่"คื"วซึ่� Proc2 ก�อนจนถู$งคื�าส่��งRETURN ที่�าให'ซึ่�พิ�ย)กล�บไปย�งโปรืแกรืมที่��เรื�ยกprocedure แล'วเอ*กซึ่"คื"วซึ่�คื�าส่��งที่��อย)�ถู�ดจากคื�าส่��งCALL

Page 30: Lecture 4

3030

คื�าส่��งคื�าส่��ง procedure callprocedure call เน��องจากส่ามารืถูเรื�ยกเน��องจากส่ามารืถูเรื�ยก procedure procedure ได'จากหลายจ�ด ที่�าให'ซึ่�พิ�ย)ได'จากหลายจ�ด ที่�าให'ซึ่�พิ�ย)

ต่'องม�ว"ธ์�การืเก*บแอ*ดเดรืส่เพิ��อกล�บมาย�งต่�าแหน�งเด"มได' การืจะต่'องม�ว"ธ์�การืเก*บแอ*ดเดรืส่เพิ��อกล�บมาย�งต่�าแหน�งเด"มได' การืจะใชื่'ส่แต่*ก ใชื่'ส่แต่*ก (stack)(stack) ในการืเรื�ยงข'อม)ล หรื�อไอเที่*มเป.นชื่�4น ๆ โดยในการืเรื�ยงข'อม)ล หรื�อไอเที่*มเป.นชื่�4น ๆ โดยข'อม)ลที่��เข'ามาใหม�จะอย)�บนส่�ดและจะถู)กน�าไปใชื่'งานก�อนในล�กษณะข'อม)ลที่��เข'ามาใหม�จะอย)�บนส่�ดและจะถู)กน�าไปใชื่'งานก�อนในล�กษณะ Last-in-First-outLast-in-First-out (LIFO)(LIFO) เม��อม�การืเรื�ยกเม��อม�การืเรื�ยก procedure procedure ซึ่�พิ�ย)จะซึ่�พิ�ย)จะเก*บคื�าแอ*ดเดรืส่ลงบนแส่ต่*ก หล�งจากเอ*กซึ่"คื"วซึ่�คื�าส่��งในเก*บคื�าแอ*ดเดรืส่ลงบนแส่ต่*ก หล�งจากเอ*กซึ่"คื"วซึ่�คื�าส่��งใน procedure procedure จนเส่รื*จเรื�ยบรื'อยจนเจอคื�าส่��ง จนเส่รื*จเรื�ยบรื'อยจนเจอคื�าส่��ง returnreturn ซึ่�พิ�ย)จะใชื่'ซึ่�พิ�ย)จะใชื่'แอ*ดเดรืส่บนส่แต่*ก การืใชื่'ส่แต่*กแส่ดงด�งรื)ปแอ*ดเดรืส่บนส่แต่*ก การืใชื่'ส่แต่*กแส่ดงด�งรื)ป

5101 5101

5601

5101 5101

5651

5101

แส่ต่*กเรื"�มต่'น

หล�งจากCALL Proc1

เรื"�มต่'นCALL Proc2

หล�งจากRETURN

หล�งจากCALL Proc2

หล�งจากRETURN

หล�งจากRETURN

Page 31: Lecture 4

3131

คื�าส่��งคื�าส่��ง procedure callprocedure call นอกจากการืเก*บคื�าแอ*ดเดรืส่เพิ��อกล�บไปที่�างานที่��เด"มแล'ว การืเรื�ยกนอกจากการืเก*บคื�าแอ*ดเดรืส่เพิ��อกล�บไปที่�างานที่��เด"มแล'ว การืเรื�ยก

procedure procedure จะต่'องม�การืผ�านคื�าพิารืาม"เต่อรื�เข'าไปด'วย ว"ธ์�การืส่�งผ�านจะต่'องม�การืผ�านคื�าพิารืาม"เต่อรื�เข'าไปด'วย ว"ธ์�การืส่�งผ�านพิารืาม"เต่อรื�ที่��ย�ดหย��นที่��ส่�ดคื�อการืใชื่'ส่แต่*ก เม��อโปรืเซึ่ส่เซึ่อรื�ม�การืเรื�ยกพิารืาม"เต่อรื�ที่��ย�ดหย��นที่��ส่�ดคื�อการืใชื่'ส่แต่*ก เม��อโปรืเซึ่ส่เซึ่อรื�ม�การืเรื�ยก procedure procedure ไม�เพิ�ยงเก*บคื�าแอ*ดเดรืส่เด"มแล'ว ม�นย�งเก*บคื�าพิารืาม"เต่อรื�เพิ��อไม�เพิ�ยงเก*บคื�าแอ*ดเดรืส่เด"มแล'ว ม�นย�งเก*บคื�าพิารืาม"เต่อรื�เพิ��อส่�งผ�านไปย�งส่�งผ�านไปย�ง procedureprocedure ที่��ถู)กเรื�ยกแล'วที่��ถู)กเรื�ยกแล'ว procedure procedure น�4นย�งส่ามารืถูใชื่'พิารืาน�4นย�งส่ามารืถูใชื่'พิารืาม"เต่อรื�จากส่แต่*กได'อ�กด'วย นอกจากน�4นคื�าพิารืาม"เต่อรื�ที่��ส่�งกล�บก*ย�งเก*บบนม"เต่อรื�จากส่แต่*กได'อ�กด'วย นอกจากน�4นคื�าพิารืาม"เต่อรื�ที่��ส่�งกล�บก*ย�งเก*บบนส่แต่*กได'ด'วย ชื่�ดของพิารืาม"เต่อรื�ที่�4งหมดที่��รืวมที่�4งแอ*ดเดรืส่เด"ม จะถู)กเก*บส่แต่*กได'ด'วย ชื่�ดของพิารืาม"เต่อรื�ที่�4งหมดที่��รืวมที่�4งแอ*ดเดรืส่เด"ม จะถู)กเก*บส่�าหรื�บการือ'างอ"งในส่�าหรื�บการือ'างอ"งใน procedureprocedure ที่��อ'างอ"งถู$งส่แต่*กเฟัรืมที่��อ'างอ"งถู$งส่แต่*กเฟัรืม

ต่�วอย�างการืส่�งผ�านคื�าพิารืาม"เต่อรื�จะเป.นด�งรื)ปหน'าถู�ดไปซึ่$�งในต่�วอย�างม� ต่�วอย�างการืส่�งผ�านคื�าพิารืาม"เต่อรื�จะเป.นด�งรื)ปหน'าถู�ดไปซึ่$�งในต่�วอย�างม� procedureprocedure ที่��ชื่��อที่��ชื่��อ PP และและ QQ ใน ใน P P ม�การืปรืะกาศต่�วแปรื ม�การืปรืะกาศต่�วแปรื x1x1 และและ x2x2 แบบโลแบบโลคือล ส่�วนคือล ส่�วน QQ ที่��ส่ามารืถูเรื�ยกได'จากที่��ส่ามารืถูเรื�ยกได'จาก PP ม�การืปรืะกาศต่�วแปรืม�การืปรืะกาศต่�วแปรื y1y1 และและ y2y2 แบบแบบโลคือลเชื่�นเด�ยวก�น ในรื)ปน�4 ที่��จ�ดโลคือลเชื่�นเด�ยวก�น ในรื)ปน�4 ที่��จ�ด return pointreturn point ในแต่�ละในแต่�ละ procedureprocedure เป.นไอเป.นไอเที่*มแรืกที่��ถู)กเก*บในส่แต่*กเฟัรืมที่��ส่�มพิ�นธ์�ก�น ถู�ดไปจะเก*บพิอยเต่อรื�ของจ�ดเที่*มแรืกที่��ถู)กเก*บในส่แต่*กเฟัรืมที่��ส่�มพิ�นธ์�ก�น ถู�ดไปจะเก*บพิอยเต่อรื�ของจ�ดเรื"�มต่'นเฟัรืมเด"ม ซึ่$�งเป.นส่"�งจ�าเป.นถู'าจ�านวนหรื�อคืวามยาวของพิารืาม"เต่อรื�ที่��เรื"�มต่'นเฟัรืมเด"ม ซึ่$�งเป.นส่"�งจ�าเป.นถู'าจ�านวนหรื�อคืวามยาวของพิารืาม"เต่อรื�ที่��เก*บบนส่แต่*กม�คื�าไม�แน�นอนเก*บบนส่แต่*กม�คื�าไม�แน�นอน

Page 32: Lecture 4

3232

คื�าส่��งคื�าส่��ง procedure callprocedure call

Stack Frame เมู� อใชั�ใน procedure P และ Q

x2

x1

Old frame pointer

Return pointP :

x2

x1

Old frame pointer

Return point

Return point

Old frame pointer

y1

y2

P :

Q :

Stack pointer

Frame pointer

Stack pointer

Frame pointer

(a) P (b) P Q

Page 33: Lecture 4

3333

ปรืะเภที่ข'อม)ลของปรืะเภที่ข'อม)ลของ PentiumPentium PentiumPentium ม�ปรืะเภที่ข'อม)ลที่��ม�คืวามยาวม�ปรืะเภที่ข'อม)ลที่��ม�คืวามยาว 88 บ"ต่บ"ต่(byte),(byte), 1616

บ"ต่บ"ต่(word),(word), 3232 บ"ต่บ"ต่(doubleword)(doubleword) และและ 64 64 บ"ต่บ"ต่(quadword)(quadword) เพิ��อเพิ��อให'เก"ดคืวามย�ดหย��นส่)งส่�ดในโคืรืงส่รื'างข'อม)ล และการืจ�ดการืหน�วยให'เก"ดคืวามย�ดหย��นส่)งส่�ดในโคืรืงส่รื'างข'อม)ล และการืจ�ดการืหน�วยคืวามจ�าที่��ม�ปรืะส่"ที่ธ์"ภาพิส่)งส่�ดก�าหนดให'คืวามจ�าที่��ม�ปรืะส่"ที่ธ์"ภาพิส่)งส่�ดก�าหนดให' wordword ต่'องไม�วางบนแอ*ดเดรืส่ที่��เป.นเลขคื)�ต่'องไม�วางบนแอ*ดเดรืส่ที่��เป.นเลขคื)� Double wordDouble word ต่'องไม�วางบนแอ*ดเดรืส่ที่��หารืด'วย ต่'องไม�วางบนแอ*ดเดรืส่ที่��หารืด'วย 4 4 ลงต่�ว ลงต่�ว Quadword Quadword ต่'องไม�วางบนแอ*ดเดรืส่ที่��หารืด'วย ต่'องไม�วางบนแอ*ดเดรืส่ที่��หารืด'วย 88 ลงต่�วลงต่�ว

ส่�วนการืเก*บข'อม)ลในเคืรื��องที่��เป.น ส่�วนการืเก*บข'อม)ลในเคืรื��องที่��เป.น PentiumPentium จะใชื่'จะใชื่' little endian little endian คื�อไบต่�ที่��ม�คื�อไบต่�ที่��ม�คื�าน'อยที่��ส่�ดคื�าน'อยที่��ส่�ด

จะเก*บบนแอ*ดเดรืส่ต่��าส่�ด ที่�4ง จะเก*บบนแอ*ดเดรืส่ต่��าส่�ด ที่�4ง byte, word, double word, quadwordbyte, word, double word, quadword เป.นเป.นปรืะเภที่ข'อม)ลพิ�4นฐาน นอกจากน�4ปรืะเภที่ข'อม)ลพิ�4นฐาน นอกจากน�4 PentiumPentium ย�งส่น�บส่น�นปรืะเภที่ข'อม)ลแบบย�งส่น�บส่น�นปรืะเภที่ข'อม)ลแบบ

พิ"เศษที่��ใชื่'คื�าส่��งพิ"เศษที่��ใชื่'คื�าส่��งเฉพิาะด�งต่ารืางหน'าถู�ดไปเฉพิาะด�งต่ารืางหน'าถู�ดไป

Page 34: Lecture 4

3434

ปรืะเภที่ข'อม)ลของปรืะเภที่ข'อม)ลของ PentiumPentiumGeneralGeneral ปรืะเภที่ข'อม)ลที่��เป.น ปรืะเภที่ข'อม)ลที่��เป.น byte,word(16bit),doubleword(32bit) byte,word(16bit),doubleword(32bit)

และ และ quadword(64bit) quadword(64bit) ส่�าหรื�บข'อม)ลฐานส่องส่�าหรื�บข'อม)ลฐานส่องIntegerInteger คื�าเลขฐานส่องม�เคืรื��องหมายที่��ปรืะกอบอย)�ในคื�าเลขฐานส่องม�เคืรื��องหมายที่��ปรืะกอบอย)�ใน byte,wordbyte,word หรื�อ หรื�อ

doubleword doubleword โดยแส่ดงผลแบบโดยแส่ดงผลแบบ 2’s complement2’s complement

OrdinalOrdinal คื�าจ�านวนเต่*มไม�ม�เคืรื��องหมายที่��ปรืะกอบอย)�ในคื�าจ�านวนเต่*มไม�ม�เคืรื��องหมายที่��ปรืะกอบอย)�ใน byte, word byte, word หรื�อ หรื�อ doubleworddoubleword

Unpacked binary Unpacked binary codedcoded decimal(BCD)decimal(BCD)

การืแส่ดงคื�าของต่�วเลขการืแส่ดงคื�าของต่�วเลข BCDBCD ในชื่�วงในชื่�วง 0-90-9 ที่��ใชื่'ต่�วเลขละบ"ต่ที่��ใชื่'ต่�วเลขละบ"ต่

Packed BCDPacked BCD ไบต่�ที่��แส่ดงต่�วเลขไบต่�ที่��แส่ดงต่�วเลข BCDBCD 22 ต่�ว คื�าอย)�รืะหว�างต่�ว คื�าอย)�รืะหว�าง 0-990-99

Near pointerNear pointer แอ*ดเกรืส่ขนาด แอ*ดเกรืส่ขนาด 3232 บ"ต่ ใชื่'ส่�าหรื�บพิอยเต่อรื�เพิ��ออ'างอ"งในหน�วยคืวามบ"ต่ ใชื่'ส่�าหรื�บพิอยเต่อรื�เพิ��ออ'างอ"งในหน�วยคืวามจ�าจ�า

Bit fieldBit field ชื่�ดของบ"ต่ที่��เรื�ยงต่�อเน��องโดยแต่�ละบ"ต่ม�คืวามเป.นอ"ส่รืะ ข'อม)ลจะเรื"�มชื่�ดของบ"ต่ที่��เรื�ยงต่�อเน��องโดยแต่�ละบ"ต่ม�คืวามเป.นอ"ส่รืะ ข'อม)ลจะเรื"�มในบ"ต่ใดของไบต่�ก*ได' และส่ามารืถูม�มากได'ถู$ง ในบ"ต่ใดของไบต่�ก*ได' และส่ามารืถูม�มากได'ถู$ง 2232-132-1 บ"ต่บ"ต่

Byte stringByte string Byte,word Byte,word หรื�อ หรื�อ doubleworddoubleword ที่��เรื�ยงต่�อเน��องก�น ข'อม)ลม�ได'ต่� 4งแต่�ที่��เรื�ยงต่�อเน��องก�น ข'อม)ลม�ได'ต่� 4งแต่� 00 ถู$ง ถู$ง 2232-132-1 ไบต่�ไบต่�Floating pointFloating point

Page 35: Lecture 4

3535

การืก�าหนดแอ*ดเดรืส่หน�วยคืวามจ�าการืก�าหนดแอ*ดเดรืส่หน�วยคืวามจ�า ส่มมต่"ว�าม�ข'อม)ลขนาดส่มมต่"ว�าม�ข'อม)ลขนาด 3232 บ"ต่ซึ่$�งม�คื�าฐานส่"บหกเป.นบ"ต่ซึ่$�งม�คื�าฐานส่"บหกเป.น

89ABCDEF89ABCDEF ถู)กเก*บไว'ในหน�วยคืวามจ�า ถู)กเก*บไว'ในหน�วยคืวามจ�า 11 word word ที่��แอ*ดเดรืส่ที่��แอ*ดเดรืส่ 10001000 ในคือมพิ"วเต่อรื�ที่��ส่ามารืถูก�าหนดข'อม)ลในรืะด�บไบต่�ได'น�4น ในคือมพิ"วเต่อรื�ที่��ส่ามารืถูก�าหนดข'อม)ลในรืะด�บไบต่�ได'น�4น (byte addressable memory)(byte addressable memory) คื�าของเลขจ�านวนน�4เก"ดจากคื�าของเลขจ�านวนน�4เก"ดจากข'อม)ลขนาดข'อม)ลขนาด 44 ไบต่� ซึ่$�งไบต่�ที่��ม�คื�าน�ยส่�าคื�ญต่��าส่�ดไบต่� ซึ่$�งไบต่�ที่��ม�คื�าน�ยส่�าคื�ญต่��าส่�ด (LSB)(LSB) จะเก*บจะเก*บคื�าคื�า EFEF ส่�วนไบต่�ที่��ม�คื�าน�ยส่�าคื�ญส่)งส่�ด ส่�วนไบต่�ที่��ม�คื�าน�ยส่�าคื�ญส่)งส่�ด (MSB)(MSB) จะเก*บคื�าจะเก*บคื�า 8989 ไว' ไว' การืเก*บข'อม)ลชื่�ดน�4ในหน�วยคืวามจ�าที่�าได'การืเก*บข'อม)ลชื่�ดน�4ในหน�วยคืวามจ�าที่�าได' 22 ว"ธ์� คื�อว"ธ์� คื�อ Little EndianLittle Endian และและ Big Endian Big Endian โดยที่��โดยที่�� Little EndianLittle Endian จะวางไบต่�ที่��ม�น�ยส่�าคื�ญจะวางไบต่�ที่��ม�น�ยส่�าคื�ญต่��าส่�ดไว'ที่��แอ*ดเดรืส่ต่��าส่�ด ส่�วนต่��าส่�ดไว'ที่��แอ*ดเดรืส่ต่��าส่�ด ส่�วน Big Endian Big Endian จะวางไบต่�ที่��ม�คื�าน�ยจะวางไบต่�ที่��ม�คื�าน�ยส่�าคื�ญส่)งส่�ดไว'ที่��แอ*ดเดรืส่ต่��าส่�ดส่�าคื�ญส่)งส่�ดไว'ที่��แอ*ดเดรืส่ต่��าส่�ด89

AB

CD

EF

EF

CD

AB

89

Data DataAddress Address

1003

1002

1001

1000

1003

1002

1001

1000

Little Endian Big Endian

Page 36: Lecture 4

3636

การืก�าหนดแอ*ดเดรืส่หน�วยคืวามจ�าการืก�าหนดแอ*ดเดรืส่หน�วยคืวามจ�า การืวางข'อม)ลแบบการืวางข'อม)ลแบบ Little Endian Little Endian น�4ส่�วนมากพิบในน�4ส่�วนมากพิบใน Intel Intel

80x86, Pentium, VAX, Alpha80x86, Pentium, VAX, Alpha ส่�วนการืวางข'อม)ลแบบส่�วนการืวางข'อม)ลแบบ Big EndianBig Endian จะพิบในจะพิบใน IBM System IBM System

379/390, Motolora 680x, SUN SPARC379/390, Motolora 680x, SUN SPARC การืใชื่'งานในคือมพิ"วเต่อรื�เคืรื��องเด�ยวก�นไม�เก"ดป6ญหา แต่�ถู'าการืใชื่'งานในคือมพิ"วเต่อรื�เคืรื��องเด�ยวก�นไม�เก"ดป6ญหา แต่�ถู'า

ม�การืแลกเปล��ยนข'อม)ลรืะหว�างก�น ด�งน�4นการืแลกเปล��ยนม�การืแลกเปล��ยนข'อม)ลรืะหว�างก�น ด�งน�4นการืแลกเปล��ยนข'อม)ลรืะหว�างเคืรื��องจ�าเป.นต่'องที่รืาบโคืรืงส่รื'างข'อม)ลที่��ที่�าการืข'อม)ลรืะหว�างเคืรื��องจ�าเป.นต่'องที่รืาบโคืรืงส่รื'างข'อม)ลที่��ที่�าการืแลกเปล��ยนก�นด'วย เชื่�น ถู'าม�ข'อม)ลแลกเปล��ยนก�นด'วย เชื่�น ถู'าม�ข'อม)ล “ “ARCHITECTURE”ARCHITECTURE” แต่�การืผ"ดพิลาดในการืวางไบต่�ในหน�วยคืวามจ�า ข'อม)ลที่��อ�านแต่�การืผ"ดพิลาดในการืวางไบต่�ในหน�วยคืวามจ�า ข'อม)ลที่��อ�านได'ใหม�อาจจะเป.นได'ใหม�อาจจะเป.น “ “ERUTCETIHCRA”ERUTCETIHCRA” ก*ได'ก*ได'

การืแก'ป6ญหารืะหว�างการืแก'ป6ญหารืะหว�าง little little และ และ bigbig endianendian ป6จจ�บ�นซึ่�พิ�ย)ป6จจ�บ�นซึ่�พิ�ย) PowerPCPowerPC ได'ออกแบบเพิ��อส่น�บส่น�นการืเก*บข'อม)ลได'ที่�4งส่องได'ออกแบบเพิ��อส่น�บส่น�นการืเก*บข'อม)ลได'ที่�4งส่องแบบ เรื�ยกว�าแบบ เรื�ยกว�า Bi-endianBi-endian ที่�าให'ส่ามารืถูย'ายซึ่อฟัต่�แวรื�ให'ไปที่�าให'ส่ามารืถูย'ายซึ่อฟัต่�แวรื�ให'ไปที่�างานก�บรืะบบคือมพิ"วเต่อรื�อ��นได'ที่�างานก�บรืะบบคือมพิ"วเต่อรื�อ��นได'

Page 37: Lecture 4

3737

การืก�าหนดโหมดของแอ*ดเดรืส่การืก�าหนดโหมดของแอ*ดเดรืส่ การืก�าหนดแอ*ดเดรืส่แบบให'คื�าโดยต่รืงการืก�าหนดแอ*ดเดรืส่แบบให'คื�าโดยต่รืง(Immediate (Immediate

Addressing)Addressing) การืก�าหนดแอ*ดเดรืส่โดยต่รืงการืก�าหนดแอ*ดเดรืส่โดยต่รืง(Direct Addressing)(Direct Addressing) การืก�าหนดแอ*ดเดรืส่ที่างอ'อมการืก�าหนดแอ*ดเดรืส่ที่างอ'อม(Indirect Address)(Indirect Address) การืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�โดยต่รืงการืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�โดยต่รืง(Register (Register

Direct Addressing)Direct Addressing) การืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�ที่างอ'อมการืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�ที่างอ'อม(Register (Register

Indirect Addressing)Indirect Addressing) การืก�าหนดแอ*ดเดรืส่แบบแที่นที่��การืก�าหนดแอ*ดเดรืส่แบบแที่นที่��(Displacement (Displacement หรื�อหรื�อ

Indexed Addressing)Indexed Addressing) การืก�าหนดแอ*ดเดรืส่แบบส่�มพิ�นธ์�การืก�าหนดแอ*ดเดรืส่แบบส่�มพิ�นธ์� (Relative Addressing)(Relative Addressing) การืใชื่'ส่แต่*กการืใชื่'ส่แต่*ก (Stack)(Stack)

Page 38: Lecture 4

3838

การืก�าหนดแอ*ดเดรืส่แบบให'คื�าการืก�าหนดแอ*ดเดรืส่แบบให'คื�าโดยต่รืงโดยต่รืง(Immediate Addressing)(Immediate Addressing)

การืก�าหนดแบบน�4จะเป.นรื)ปแบบที่��ง�ายที่��ส่�ด และใชื่'งานการืก�าหนดแบบน�4จะเป.นรื)ปแบบที่��ง�ายที่��ส่�ด และใชื่'งานบ�อยคืรื�4ง เน��องจากเป.นการืก�าหนดหรื�อให'คื�าคืงที่�� หรื�อบ�อยคืรื�4ง เน��องจากเป.นการืก�าหนดหรื�อให'คื�าคืงที่�� หรื�อเป.นการืก�าหนดคื�าเรื"�มต่'นให'ก�บคื�าต่�วแปรื รื)ปแบบคื�าส่��งจะเป.นการืก�าหนดคื�าเรื"�มต่'นให'ก�บคื�าต่�วแปรื รื)ปแบบคื�าส่��งจะเป.นเป.น

LOAD X, #1000LOAD X, #1000 เป.นการืโหลดข'อม)ล เป.นการืโหลดข'อม)ล 10001000 ไว'ที่��ไว'ที่��ต่�วแปรื ต่�วแปรื XX

ข'อด�ของว"ธ์�น�4คื�อไม�ม�การือ'างอ"งหน�วยคืวามจ�า ข'อด�ของว"ธ์�น�4คื�อไม�ม�การือ'างอ"งหน�วยคืวามจ�า ((นอกนอกเหน�อจากการือ�านคื�าส่��งเข'ามาในซึ่�พิ�ย)เหน�อจากการือ�านคื�าส่��งเข'ามาในซึ่�พิ�ย)) ) ที่�าให'ปรืะหย�ดเวลาที่�าให'ปรืะหย�ดเวลาในการืที่�างาน ส่�วนข'อเส่�ยของว"ธ์�น�4คื�อขนาดของต่�วเลขจะในการืที่�างาน ส่�วนข'อเส่�ยของว"ธ์�น�4คื�อขนาดของต่�วเลขจะถู)กจ�าก�ดด'วยขนาดของฟั8ลด�ของแอ*ดเดรืส่ถู)กจ�าก�ดด'วยขนาดของฟั8ลด�ของแอ*ดเดรืส่

Op Operand

Page 39: Lecture 4

3939

การืก�าหนดแอ*ดเดรืส่โดยต่รืงการืก�าหนดแอ*ดเดรืส่โดยต่รืง(Direct (Direct Addressing)Addressing)

อาจเรื�ยกอ�กอย�างหน$�งว�า การืก�าหนดแอ*ดเดรืส่หน�วยคืวามจ�าอาจเรื�ยกอ�กอย�างหน$�งว�า การืก�าหนดแอ*ดเดรืส่หน�วยคืวามจ�าโดยต่รืง โดยต่รืง (Memory Direct Addressing) (Memory Direct Addressing) เป.นการือ'างอ"งเป.นการือ'างอ"งต่�าแหน�งหน�วยคืวามจ�าโดยต่รืง เม��อได'ต่�าแหน�งแล'วจ$งน�าคื�าจากต่�าแหน�งหน�วยคืวามจ�าโดยต่รืง เม��อได'ต่�าแหน�งแล'วจ$งน�าคื�าจากต่�าแหน�งน�4นมาใชื่'งาน การืก�าหนดแอ*ดเดรืส่แบบน�4น"ยมใชื่'ในรืะบบต่�าแหน�งน�4นมาใชื่'งาน การืก�าหนดแอ*ดเดรืส่แบบน�4น"ยมใชื่'ในรืะบบคือมพิ"วเต่อรื�ในย�คืแรืก ๆ แต่�ในป6จจ�บ�นไม�คื�อยน"ยม การืปรืะมวลคือมพิ"วเต่อรื�ในย�คืแรืก ๆ แต่�ในป6จจ�บ�นไม�คื�อยน"ยม การืปรืะมวลผลจะต่'องใชื่'วงรือบการือ'างอ"งหน�วยคืวามจ�าเพิ"�มอ�กผลจะต่'องใชื่'วงรือบการือ'างอ"งหน�วยคืวามจ�าเพิ"�มอ�ก 11 รือบ แต่�รือบ แต่�ไม�ม�การืคื�านวณ ข'อเส่�ยก*คื�อข'อจ�าก�ดในการือ'างอ"งหน�วยคืวามจ�า ไม�ม�การืคื�านวณ ข'อเส่�ยก*คื�อข'อจ�าก�ดในการือ'างอ"งหน�วยคืวามจ�า รื)ปแบบคื�าส่��งจะเป.นรื)ปแบบคื�าส่��งจะเป.น

LOAD X, 1000LOAD X, 1000 เป.นการืโหลดข'อม)ลที่��แอ*ดเดรืส่ เป.นการืโหลดข'อม)ลที่��แอ*ดเดรืส่ 10001000 ไว'ที่��ต่�วไว'ที่��ต่�วแปรืแปรื XX ( (ถู'าที่��แอ*ดเดรืส่ ถู'าที่��แอ*ดเดรืส่ 10001000 ม�คื�าม�คื�า 1010

ด�งน�4น ด�งน�4น XX จะม�คื�าเที่�าก�บจะม�คื�าเที่�าก�บ 10)10)Op Operand

10

คื�าส่��ง หน�วยคืวามจ�า

999

1000

1001

1002

Page 40: Lecture 4

4040

การืก�าหนดแอ*ดเดรืส่ที่างอ'อมการืก�าหนดแอ*ดเดรืส่ที่างอ'อม(Indirect (Indirect Addressing)Addressing)

เรื�ยกอ�กอย�างหน$�งว�าการืก�าหนดแอ*ดเดรืส่หน�วยคืวามจ�าที่างเรื�ยกอ�กอย�างหน$�งว�าการืก�าหนดแอ*ดเดรืส่หน�วยคืวามจ�าที่างอ'อมอ'อม (Memory Indirect Address)(Memory Indirect Address) ล�กษณะน�4จะคืล'ายก�บล�กษณะน�4จะคืล'ายก�บการืก�าหนดแอ*ดเดรืส่โดยต่รืง แต่�การืก�าหนดแอ*ดเดรืส่แบบน�4การืก�าหนดแอ*ดเดรืส่โดยต่รืง แต่�การืก�าหนดแอ*ดเดรืส่แบบน�4คื�าที่��ปรืากฎิในคื�าส่��งไม�ใชื่�แอ*ดเดรืส่ของข'อม)ล คื�าที่��ปรืากฎิในคื�าส่��งไม�ใชื่�แอ*ดเดรืส่ของข'อม)ล แต่�เป.นแอ*ดเดรืส่แต่�เป.นแอ*ดเดรืส่ของแอ*ดเดรืส่ของข'อม)ลของแอ*ดเดรืส่ของข'อม)ล การืก�าหนดเชื่�นน�4เน��องจากฟั8ลด�ของ การืก�าหนดเชื่�นน�4เน��องจากฟั8ลด�ของแอ*ดเดรืส่ม�ขนาดส่�4นกว�าคืวามยาวของแอ*ดเดรืส่ม�ขนาดส่�4นกว�าคืวามยาวของ 11 wordword ที่�าให'ขอบเขต่ที่�าให'ขอบเขต่ของแอ*ดเดรืส่ถู)กจ�าก�ด รื)ปแบบจะเป.นของแอ*ดเดรืส่ถู)กจ�าก�ด รื)ปแบบจะเป.น

LOAD X,(1000)LOAD X,(1000) เป.นการืโหลดข'อม)ลที่��อย)�บนแอ*ดเดรืส่ที่��เป.นการืโหลดข'อม)ลที่��อย)�บนแอ*ดเดรืส่ที่��เก*บอย)�ในแอ*ดเก*บอย)�ในแอ*ด

เดรืส่เดรืส่ 10001000 ( (ถู'าที่��แอ*ดเดรืส่ถู'าที่��แอ*ดเดรืส่ 10001000 ม�คื�าม�คื�า 10021002

ด�งน�4นข'อม)ลที่��แที่'จรื"งอย)�ที่��แอ*ดเดรืส่ด�งน�4นข'อม)ลที่��แที่'จรื"งอย)�ที่��แอ*ดเดรืส่ 10021002 ซึ่$�งม�คื�าซึ่$�งม�คื�า 2020 ด�งน�4นด�งน�4น XX จะม�คื�าเที่�าก�บจะม�คื�าเที่�าก�บ 20)20)

Op Operand 20

1002

คื�าส่��ง หน�วยคืวามจ�า

999

1000

1001

1002

Page 41: Lecture 4

4141

การืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�การืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�โดยต่รืงโดยต่รืง(Register Direct Addressing)(Register Direct Addressing) การืก�าหนดแบบน�4จะคืล'ายก�บการืก�าหนดแอ*ดเดรืส่การืก�าหนดแบบน�4จะคืล'ายก�บการืก�าหนดแอ*ดเดรืส่

โดยต่รืง ส่"�งที่��ต่�างก�นคื�อฟั8ลด�ของแอ*ดเดรืส่ในคื�าส่��งจะโดยต่รืง ส่"�งที่��ต่�างก�นคื�อฟั8ลด�ของแอ*ดเดรืส่ในคื�าส่��งจะเก*บคื�าหมายเลขรื�จ"ส่เต่อรื�ไว' แที่นการืก�าหนดแอ*ดเดรืส่เก*บคื�าหมายเลขรื�จ"ส่เต่อรื�ไว' แที่นการืก�าหนดแอ*ดเดรืส่ของหน�วยคืวามจ�า โดยปกต่"ฟั8ลด�ของแอ*ดเดรืส่ที่��ก�าหนดของหน�วยคืวามจ�า โดยปกต่"ฟั8ลด�ของแอ*ดเดรืส่ที่��ก�าหนดหมายเลขรื�จ"ส่เต่อรื�จะม�ขนาดหมายเลขรื�จ"ส่เต่อรื�จะม�ขนาด 3-53-5 บ"ต่บ"ต่ ที่�าให'ส่ามารืถูที่�าให'ส่ามารืถูก�าหนดหมายเลขรื�จ"ส่เต่อรื�ได'ก�าหนดหมายเลขรื�จ"ส่เต่อรื�ได' 8-32 8-32 ต่�วต่�ว

LOAD X, R1LOAD X, R1 เป.นการืโหลดข'อม)ลจากรื�จ"ส่เต่อรื� เป.นการืโหลดข'อม)ลจากรื�จ"ส่เต่อรื� R1R1 ไว'ที่��ไว'ที่��

ต่�วแปรืต่�วแปรื X X ((ถู'าที่��รื �จ"ส่เต่อรื� ถู'าที่��รื �จ"ส่เต่อรื� R1R1 ม�คื�าม�คื�า 3030

ด�งน�4นด�งน�4น XX จะม�คื�าเที่�าก�บจะม�คื�าเที่�าก�บ 30)30)

Op R1 …

คื�าส่��ง

30

รื�จ"ส่เต่อรื� R1

Page 42: Lecture 4

4242

การืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�ที่างการืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�ที่างอ'อมอ'อม(Register Indirect Addressing)(Register Indirect Addressing)

การืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�ที่างอ'อมจะเปรื�ยบได'ก�บการืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�ที่างอ'อมจะเปรื�ยบได'ก�บการืก�าหนดแอ*ดเดรืส่ที่างอ'อม คืวามแต่กต่�างอย)�ที่��ฟั8ลด�ของการืก�าหนดแอ*ดเดรืส่ที่างอ'อม คืวามแต่กต่�างอย)�ที่��ฟั8ลด�ของแอ*ดเดรืส่ในคื�าส่��งจะเก*บแอ*ดเดรืส่ในหน�วยคืวามจ�า หรื�อแอ*ดเดรืส่ในคื�าส่��งจะเก*บแอ*ดเดรืส่ในหน�วยคืวามจ�า หรื�อเก*บหมายเลขรื�จ"ส่เต่อรื�เก*บหมายเลขรื�จ"ส่เต่อรื�

LOAD x, (R1)LOAD x, (R1) เป.นการืโหลดข'อม)ลที่��อย)�ในแอ*ดเดรืส่เป.นการืโหลดข'อม)ลที่��อย)�ในแอ*ดเดรืส่ที่��เก*บอย)�ในรื�จ"ส่ที่��เก*บอย)�ในรื�จ"ส่

เต่อรื� เต่อรื� R1R1 ไว'ที่��ต่�วแปรื ไว'ที่��ต่�วแปรื XX ( (ถู'าที่��รื�จ"ส่ถู'าที่��รื�จ"ส่เต่อรื� เต่อรื� R1R1 เก*บเก*บ

คื�าคื�า 10011001 และที่��แอ*ดเดรืส่และที่��แอ*ดเดรืส่ 10011001ของของหน�วยคืวามหน�วยคืวาม

จ�าม�คื�าจ�าม�คื�า 4040 ด�งน�4นด�งน�4น XX จะม�คื�าเที่�าก�บจะม�คื�าเที่�าก�บ 40)40)

Op R1 …

คื�าส่��ง

1001

รื�จ"ส่เต่อรื� R1

20

40

1002

หน�วยคืวามจ�า

999

1000

1001

1002

Page 43: Lecture 4

4343

การืก�าหนดแอ*ดเดรืส่แบบการืก�าหนดแอ*ดเดรืส่แบบแที่นที่��แที่นที่��(Displacement (Displacement หรื�อหรื�อ Indexed Indexed

Addressing)Addressing) การืก�าหนดแบบแที่นที่��น�4น�าข'อด�ของการืก�าหนดแอ*ดเดรืส่โดยต่รืงก�บการืก�าหนดแบบแที่นที่��น�4น�าข'อด�ของการืก�าหนดแอ*ดเดรืส่โดยต่รืงก�บ

การืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�ที่างอ'อมมาปรืะย�กต่�ใชื่'การืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�ที่างอ'อมมาปรืะย�กต่�ใชื่' การืก�าหนด การืก�าหนดแบบน�4จะใชื่'ฟั8ลด�ของแอ*ดเดรืส่แบบน�4จะใชื่'ฟั8ลด�ของแอ*ดเดรืส่ 22 ฟั8ลด� โดยจะต่'องม�อย�างน'อยฟั8ลด� โดยจะต่'องม�อย�างน'อย 11 ฟั8ลด� ฟั8ลด� ที่��ก�าหนดคื�าโดยต่รืงที่��ก�าหนดคื�าโดยต่รืง((ก�าหนดเป.นคื�าคืงที่��ก�าหนดเป.นคื�าคืงที่��) ) ส่�วนอ�กฟั8ลด�จะก�าหนดส่�วนอ�กฟั8ลด�จะก�าหนดโดยต่รืงหรื�อโดยที่างอ'อมก*ได' ซึ่$�งถู'าเป.นการืก�าหนดโดยที่างอ'อมจะโดยต่รืงหรื�อโดยที่างอ'อมก*ได' ซึ่$�งถู'าเป.นการืก�าหนดโดยที่างอ'อมจะอ'างอ"งรื�จ"ส่เต่อรื� แล'วน�าคื�าในรื�จ"ส่เต่อรื�ไปบวกก�บคื�าคืงที่�� แล'วจะได'คื�าอ'างอ"งรื�จ"ส่เต่อรื� แล'วน�าคื�าในรื�จ"ส่เต่อรื�ไปบวกก�บคื�าคืงที่�� แล'วจะได'คื�าแอ*ดเดรืส่ที่��แที่'จรื"ง ซึ่$�งคื�าแอ*ดเดรืส่ที่��แที่'จรื"งน�4เป.นแอ*ดเดรืส่ในหน�วยแอ*ดเดรืส่ที่��แที่'จรื"ง ซึ่$�งคื�าแอ*ดเดรืส่ที่��แที่'จรื"งน�4เป.นแอ*ดเดรืส่ในหน�วยคืวามจ�า ด�งน�4นคื�าที่��อย)�แอ*ดเดรืส่ด�งกล�าวจ$งเป.นคื�าที่��น�ามาใชื่'งานคืวามจ�า ด�งน�4นคื�าที่��อย)�แอ*ดเดรืส่ด�งกล�าวจ$งเป.นคื�าที่��น�ามาใชื่'งาน

LOAD X, (R1)+ConstantLOAD X, (R1)+Constant เป.นการืโหลดข'อม)ลจากแอ*ดเดรืส่บนเป.นการืโหลดข'อม)ลจากแอ*ดเดรืส่บนหน�วยคืวามจ�าที่��เก"ดจากคื�าในรื�จ"ส่เต่อรื�หน�วยคืวามจ�าที่��เก"ดจากคื�าในรื�จ"ส่เต่อรื�บวกก�บคื�าคืงที่��ไว'ที่��ต่�วแปรืบวกก�บคื�าคืงที่��ไว'ที่��ต่�วแปรื XX ( (ถู'าในรื�จ"ส่ถู'าในรื�จ"ส่เต่อรื�ม�คื�าเต่อรื�ม�คื�า 1000,1000, คื�าคืงที่��เที่�าก�บคื�าคืงที่��เที่�าก�บ 2 2 และและที่��แอ*ดเดรืส่ ที่��แอ*ดเดรืส่ 10021002 ม�คื�าเที่�าก�บม�คื�าเที่�าก�บ 2020 ด�งด�งน�4นคื�าน�4นคื�า XX จะเที่�าก�บจะเที่�าก�บ 20)20)

Page 44: Lecture 4

4444

การืก�าหนดแอ*ดเดรืส่แบบการืก�าหนดแอ*ดเดรืส่แบบแที่นที่��แที่นที่��(Displacement (Displacement หรื�อหรื�อ Indexed Indexed

Addressing)Addressing)

Op R1 2

คื�าส่��ง

1000

รื�จ"ส่เต่อรื� R1

20

40

1002

หน�วยคืวามจ�า

999

1000

1001

1002

+

Page 45: Lecture 4

4545

การืก�าหนดแอ*ดเดรืส่แบบการืก�าหนดแอ*ดเดรืส่แบบส่�มพิ�นธ์�ส่�มพิ�นธ์�(Relative Addressing)(Relative Addressing)

การืก�าหนดแบบน�4คืล'ายก�บการืก�าหนดแอ*ดเดรืส่แบบแที่นที่�� การืก�าหนดแบบน�4คืล'ายก�บการืก�าหนดแอ*ดเดรืส่แบบแที่นที่�� เพิ�ยงแต่�ว�าแที่นที่��จะใชื่'การือ'างอ"งก�บรื�จ"ส่เต่อรื� การืก�าหนดเพิ�ยงแต่�ว�าแที่นที่��จะใชื่'การือ'างอ"งก�บรื�จ"ส่เต่อรื� การืก�าหนดแอ*ดเดรืส่แบบน�4จะอ'างอ"งก�บ แอ*ดเดรืส่แบบน�4จะอ'างอ"งก�บ Program counterProgram counter ด�งน�4นคื�าคืงที่��ด�งน�4นคื�าคืงที่��จะบวกก�บคื�าใน จะบวกก�บคื�าใน Program counter Program counter แล'วได'คื�าแอ*ดเดรืส่ที่��แที่'แล'วได'คื�าแอ*ดเดรืส่ที่��แที่'จรื"ง ซึ่$�งคื�าแอ*ดเดรืส่ที่��แที่'จรื"งน�4เป.นแอ*ดเดรืส่ในหน�วยคืวามจ�า จรื"ง ซึ่$�งคื�าแอ*ดเดรืส่ที่��แที่'จรื"งน�4เป.นแอ*ดเดรืส่ในหน�วยคืวามจ�า ด�งน�4นคื�าที่��อย)�ในแอ*ดเดรืส่ด�งกล�าวจ$งเป.นคื�าที่��น�ามาใชื่'งาน ด�งน�4นคื�าที่��อย)�ในแอ*ดเดรืส่ด�งกล�าวจ$งเป.นคื�าที่��น�ามาใชื่'งาน

LOAD X, PC+ConstantLOAD X, PC+Constant เป.นการืโหลดข'อม)ลจากแอ*ดเดรืส่เป.นการืโหลดข'อม)ลจากแอ*ดเดรืส่บนหน�วยบนหน�วย

คืวามจ�าที่��เก"ดจากคื�าในคืวามจ�าที่��เก"ดจากคื�าใน PCPC บวกก�บคื�าคืงที่��บวกก�บคื�าคืงที่��ไว'ที่��ต่�วแปรืไว'ที่��ต่�วแปรื XX ( (ถู'าในถู'าใน PCPC ม�คื�าม�คื�า 1000,1000,คื�าคืงที่��เที่�าก�บคื�าคืงที่��เที่�าก�บ 11 และคื�าที่��แอ*ดเดรืส่และคื�าที่��แอ*ดเดรืส่ 10011001ม�คื�าเที่�าก�บม�คื�าเที่�าก�บ 4040 ด�งน�4นคื�าด�งน�4นคื�า XX จะเที่�าก�บจะเที่�าก�บ 40)40)

Page 46: Lecture 4

4646

การืก�าหนดแอ*ดเดรืส่แบบการืก�าหนดแอ*ดเดรืส่แบบส่�มพิ�นธ์�ส่�มพิ�นธ์�(Relative Addressing)(Relative Addressing)

Op 1

คื�าส่��ง

1000

PC

20

40

1002

หน�วยคืวามจ�า

999

1000

1001

1002

+

Page 47: Lecture 4

4747

การืใชื่'แส่ต่*กการืใชื่'แส่ต่*ก (Stack)(Stack) เน��องจากส่แต่*กเป.นอารื�เรืย�ของแอ*ดเดรืส่ที่��วางซึ่'อนก�นอย)� การืน�าเน��องจากส่แต่*กเป.นอารื�เรืย�ของแอ*ดเดรืส่ที่��วางซึ่'อนก�นอย)� การืน�า

แอ*ดเดรืส่มาใชื่'จะน�าแอ*ดเดรืส่ที่��อย)�บนส่�ดออกมาใชื่'ก�อน เรื�ยกว�าแอ*ดเดรืส่มาใชื่'จะน�าแอ*ดเดรืส่ที่��อย)�บนส่�ดออกมาใชื่'ก�อน เรื�ยกว�า LIFOLIFO ส่แต่*กน�4เป.นหน�วยคืวามจ�าที่��ส่งวนไว'ใชื่'งานโดยเฉพิาะ ส่แต่*กส่แต่*กน�4เป.นหน�วยคืวามจ�าที่��ส่งวนไว'ใชื่'งานโดยเฉพิาะ ส่แต่*กจะม�ข'อม)ลเส่มอ และจะที่�างานรื�วมก�บพิอยเต่อรื�จะม�ข'อม)ลเส่มอ และจะที่�างานรื�วมก�บพิอยเต่อรื�(pointer)(pointer)

การืน�าข'อม)ลไปใชื่'จะน�าจากต่�าแหน�งที่��พิอยเต่อรื�ชื่�4เส่มอ และปกต่"การืน�าข'อม)ลไปใชื่'จะน�าจากต่�าแหน�งที่��พิอยเต่อรื�ชื่�4เส่มอ และปกต่"พิอยเต่อรื�จะชื่�4ที่��ต่�าแหน�งบนส่�ดน��นเอง ข'อม)ลบนส่�ดส่องต่�วของพิอยเต่อรื�จะชื่�4ที่��ต่�าแหน�งบนส่�ดน��นเอง ข'อม)ลบนส่�ดส่องต่�วของส่แต่*ก จะถู)กเก*บในรื�จ"ส่เต่อรื�ภายในซึ่�พิ�ย)เส่มอ พิอยเต่อรื�ของส่แต่*ส่แต่*ก จะถู)กเก*บในรื�จ"ส่เต่อรื�ภายในซึ่�พิ�ย)เส่มอ พิอยเต่อรื�ของส่แต่*กก*เก*บอย)�ในรื�จ"ส่เต่อรื�เชื่�นก�นกก*เก*บอย)�ในรื�จ"ส่เต่อรื�เชื่�นก�น

ด�งน�4นการืก�าหนดแอ*ดเดรืส่โดยใชื่'ส่แต่*กน�4จะคืล'ายก�บการืก�าหนดด�งน�4นการืก�าหนดแอ*ดเดรืส่โดยใชื่'ส่แต่*กน�4จะคืล'ายก�บการืก�าหนดแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�โดยอ'อมน��นเอง การืก�าหนดแอ*ดเดรืส่แบบแอ*ดเดรืส่ผ�านรื�จ"ส่เต่อรื�โดยอ'อมน��นเอง การืก�าหนดแอ*ดเดรืส่แบบน�4เป.นการือ'างอ"งแอ*ดเดรืส่โดยอ'อม ไม�จ�าเป.นต่'องอ'างอ"งหน�วยน�4เป.นการือ'างอ"งแอ*ดเดรืส่โดยอ'อม ไม�จ�าเป.นต่'องอ'างอ"งหน�วยคืวามจ�า แต่�ใชื่'ข'อม)ลต่�วบนของส่แต่*กแที่นคืวามจ�า แต่�ใชื่'ข'อม)ลต่�วบนของส่แต่*กแที่น

Page 48: Lecture 4

4848

การืใชื่'แส่ต่*กการืใชื่'แส่ต่*ก (Stack)(Stack)

LOAD X, StackLOAD X, Stack เป.นการืโหลดข'อม)ลที่��อย)�บนส่�ดของส่แต่*กเป.นการืโหลดข'อม)ลที่��อย)�บนส่�ดของส่แต่*กไว'ที่��ต่�วแปรืไว'ที่��ต่�วแปรื

XX ( (ถู'าข'อม)ลที่��อย)�บนส่�ดของส่แต่*ถู'าข'อม)ลที่��อย)�บนส่�ดของส่แต่*กม�คื�ากม�คื�า 10001000 คื�าคื�า

XX จะม�คื�าเที่�าก�บจะม�คื�าเที่�าก�บ 10001000 น��นเองน��นเอง))Op

คื�าส่��ง

1000

520

730

1002

รื�จ"ส่เต่อรื�ที่��เก*บส่แต่*กส่�วนบนของส่แต่*ก

Page 49: Lecture 4

4949

การืใชื่'การืใชื่' Stack Stack ในการืแปลง ในการืแปลง infixinfix เป.นเป.น postfixpostfix

ต่รืวจข'อม)ลต่�วต่�อไปที่��ถู)กอ�านเข'ามาต่รืวจข'อม)ลต่�วต่�อไปที่��ถู)กอ�านเข'ามา ถู'าเป.นต่�วถู)กกรืะที่�าถู'าเป.นต่�วถู)กกรืะที่�า (operand) (operand) ให'ส่�งออกเป.นผลล�พิธ์�ให'ส่�งออกเป.นผลล�พิธ์� ถู'าเป.นเคืรื��องหมายวงเล*บเป8ด ให'ใส่�ลงไปในส่แต่*กถู'าเป.นเคืรื��องหมายวงเล*บเป8ด ให'ใส่�ลงไปในส่แต่*ก ถู'าเป.นต่�วกรืะที่�า ถู'าเป.นต่�วกรืะที่�า (operator) (operator) ให'ที่�าด�งน�4ให'ที่�าด�งน�4

ถู'าต่�วกรืะที่�าต่�วบนส่�ดในส่แต่*กเป.นเคืรื��องหมายวงเล*บเป8ด ให'ใส่�ต่�วกรืะที่�าน�4นลงไปในถู'าต่�วกรืะที่�าต่�วบนส่�ดในส่แต่*กเป.นเคืรื��องหมายวงเล*บเป8ด ให'ใส่�ต่�วกรืะที่�าน�4นลงไปในส่แต่*กส่แต่*ก

ถู'าต่�วกรืะที่�าม�คื�า ถู'าต่�วกรืะที่�าม�คื�า precedenceprecedence ส่)งกว�าต่�วบนส่�ดในส่แต่*ก ให'ใส่�ต่�วกรืะที่�าน�4นลงไปในส่)งกว�าต่�วบนส่�ดในส่แต่*ก ให'ใส่�ต่�วกรืะที่�าน�4นลงไปในส่แต่*กส่แต่*ก

ม"ฉะน�4นให'อ�านต่�วกรืะที่�าออกมาจากส่แต่*ก และส่�งออกไปเป.นผลล�พิธ์�ต่�วต่�อไป และที่�าม"ฉะน�4นให'อ�านต่�วกรืะที่�าออกมาจากส่แต่*ก และส่�งออกไปเป.นผลล�พิธ์�ต่�วต่�อไป และที่�าซึ่�4าในข�4นต่อนที่��ซึ่�4าในข�4นต่อนที่�� 44

ถู'าเป.นเคืรื��องหมายวงเล*บป8ด ให'อ�านต่�วกรืะที่�าออกมาจากส่แต่*ก และส่�งถู'าเป.นเคืรื��องหมายวงเล*บป8ด ให'อ�านต่�วกรืะที่�าออกมาจากส่แต่*ก และส่�งออกไปเป.นผลล�พิธ์�ต่�วต่�อไปจนกว�าจะพิบเคืรื��องหมายวงเล*บเป8ด ให'ที่"4งออกไปเป.นผลล�พิธ์�ต่�วต่�อไปจนกว�าจะพิบเคืรื��องหมายวงเล*บเป8ด ให'ที่"4งเคืรื��องหมายน�4นที่"4งไปและอ�านต่�วต่�อไปเข'ามาเคืรื��องหมายน�4นที่"4งไปและอ�านต่�วต่�อไปเข'ามา

ถู'าย�งม�ต่�วต่�อไปให'กล�บไปที่�าข�4นต่อนที่��ถู'าย�งม�ต่�วต่�อไปให'กล�บไปที่�าข�4นต่อนที่�� 11 ถู'าไม�ม�ต่�วต่�อไปแล'ว ให'อ�านต่�วกรืะที่�าออกมาจากส่แต่*ก และส่�งออกไปเป.นถู'าไม�ม�ต่�วต่�อไปแล'ว ให'อ�านต่�วกรืะที่�าออกมาจากส่แต่*ก และส่�งออกไปเป.น

ผลล�พิธ์�ต่�วต่�อไปจนหมดส่แต่*กผลล�พิธ์�ต่�วต่�อไปจนหมดส่แต่*ก

Page 50: Lecture 4

5050

การืใชื่'การืใชื่' Stack Stack ในการืแปลง ในการืแปลง infixinfix เป.นเป.น postfixpostfix

Input output stack(top on right)A + B x C + (D + E) x F empty empty + B x C + (D + E) x F A empty B x C + (D + E) x F A + x C + (D + E) x F A B + C + (D + E) x F A B + x + (D + E) x F A B C + x (D + E) x F A B C x + + D + E) x F A B C x + + ( + E) x F A B C x + D + ( E) x F A B C x + D + ( + ) x F A B C x + D E + ( + x F A B C x + D E + + F A B C x + D E + + x empty A B C x + D E + F + x empty A B C x + D E + F x + empty

Page 51: Lecture 4

5151

ก�รโอนย��ยข้�อมู�ลก�รโอนย��ยข้�อมู�ล

Page 52: Lecture 4

5252

คื�าส่��งการืโอนย'ายข'อม)ลคื�าส่��งการืโอนย'ายข'อม)ล คื�าส่��ง คื�าส่��ง MOVMOV

การืโอนย'ายข'อม)ลรืะหว�างรื�จ"ส่เต่อรื�ก�บรื�จ"ส่เต่อรื�การืโอนย'ายข'อม)ลรืะหว�างรื�จ"ส่เต่อรื�ก�บรื�จ"ส่เต่อรื� การืโอนย'ายข'อม)ลก�บหน�วยคืวามจ�าการืโอนย'ายข'อม)ลก�บหน�วยคืวามจ�า การืก�าหนดคื�าคืงที่��ให'ก�บหน�วยคืวามจ�าการืก�าหนดคื�าคืงที่��ให'ก�บหน�วยคืวามจ�า

รื)ปแบบ รื)ปแบบ MOV MOV ปล�ยท�ง ปล�ยท�ง , , ต�นท�งต�นท�ง MOVMOV reg,reg reg,reg MOVMOV reg,mem reg,mem MOVMOV mem,reg mem,reg MOVMOV reg,imm reg,imm MOVMOV mem,imm mem,imm

reg : รื�จ"ส่เต่อรื� mem : ต่�าแหน�งหน�วยคืวามจ�า imm : immediate (คื�าคืงที่��)

Page 53: Lecture 4

5353

ข'อจ�าก�ดของคื�าส่��ง ข'อจ�าก�ดของคื�าส่��ง MOVMOV โอเปอรื�แรืนด�ที่�4งส่องต่�วต่'องม�ขนาดเที่�าก�นโอเปอรื�แรืนด�ที่�4งส่องต่�วต่'องม�ขนาดเที่�าก�น ส่"�งที่��ไม�ส่ามารืถูคื�ดลอกส่"�งที่��ไม�ส่ามารืถูคื�ดลอก

ข'อม)ลจากหน�วยคืวามจ�าไปย�งหน�วยคืวามจ�าข'อม)ลจากหน�วยคืวามจ�าไปย�งหน�วยคืวามจ�าโดยต่รืงโดยต่รืง

คื�าคืงที่�� คื�าคืงที่�� (immediate) (immediate) ไปย�งเซึ่กเมนต่�รื�จ"ส่ไปย�งเซึ่กเมนต่�รื�จ"ส่เต่อรื�โดยต่รืงเต่อรื�โดยต่รืง

ในการืคื�ดลอกคื�าคืงที่��ไปย�งหน�วยคืวามจ�าต่'องในการืคื�ดลอกคื�าคืงที่��ไปย�งหน�วยคืวามจ�าต่'องรืะบ�ขนาดของหน�วยคืวามจ�าด'วยรืะบ�ขนาดของหน�วยคืวามจ�าด'วย

Page 54: Lecture 4

5454

ต่�วอย�างการืใชื่'คื�าส่��ง ต่�วอย�างการืใชื่'คื�าส่��ง MOVMOV

MOVMOV AX,100hAX,100hMOVMOV BX,AXBX,AXMOVMOV DX,BXDX,BX

MOVMOV AX,1234hAX,1234hMOVMOV DX,5678hDX,5678hMOVMOV AL,DLAL,DLMOVMOV BH,DHBH,DH

MOVMOV AX,1000hAX,1000hMOVMOV [100h],AX[100h],AXMOVMOV BX,[100h]BX,[100h]

ก�าหนดคื�า 100h ให'ก�บ AX จากน�4นคื�ดลอกไปให' BX

และ DX

ก�าหนดคื�า 1234hให'ก�บ AX และคื�า

5 6 7 8 h ให'ก�บ DXจากน�4นคื�ดลอกคื�าใน DLไปให' AL และ DH ไปให' BH ก�าหนดคื�า 1000h ให'ก�บ AX จากน�4นคื�ดลอกข'อม)ลจาก AX ไปย�งหน�วยคืวามจ�าต่�าแหน�งที่�� DS:10

0h และคื�ดลอกข'อม)ลกล�บมาย�ง BX

Page 55: Lecture 4

5555

ต่�วอย�างการืใชื่'คื�าส่��ง ต่�วอย�างการืใชื่'คื�าส่��ง MOVMOV

MOVMOV BYTE PTR [200h],10hBYTE PTR [200h],10h

MOVMOV WORD PTR [300h],10hWORD PTR [300h],10h

MOVMOV AX,2300hAX,2300h

MOVMOV DS,AXDS,AX

ก�าหนดคื�า 10h แบบไบต่�ให'ก�บหน�วยคืวามจ�าที่�� DS:200h และแบบเว"รื�ดที่�� DS:300h

ก�าหนดคื�า 2300h ให'ก�บ DS โดยผ�านที่าง AX

Page 56: Lecture 4

5656

การืโอนย'ายข'อม)ลรืะหว�างการืโอนย'ายข'อม)ลรืะหว�างรื�จ"ส่เต่อรื�รื�จ"ส่เต่อรื�

การืโอนย'ายข'อม)ลรืะหว�างรื�จ"ส่เต่อรื�ส่ามารืถูที่�าได'การืโอนย'ายข'อม)ลรืะหว�างรื�จ"ส่เต่อรื�ส่ามารืถูที่�าได'ถู'าขนาดของรื�จ"ส่เต่อรื�ที่�4งคื)�เที่�าก�นถู'าขนาดของรื�จ"ส่เต่อรื�ที่�4งคื)�เที่�าก�น

คำ��ร(จิ�สเตอร! คำ��ร(จิ�สเตอร! 16 16 บ�ต กบ บ�ต กบ 8 8 บ�ตบ�ต

MOV AX,1000h

MOV AL,3Ah

MOV AH,AL

MOV AX,234h

AX AH AL1000h 10h 00h

AX AH AL103Ah 10h 3Ah

AX AH AL3A3Ah 3Ah 3Ah

AX AH AL234h 02h 34h

Page 57: Lecture 4

5757

การืโอนย'ายข'อม)ลก�บการืโอนย'ายข'อม)ลก�บหน�วยคืวามจ�าหน�วยคืวามจ�า

การืรืะบ�ต่�าแหน�งในหน�วยคืวามจ�าการืรืะบ�ต่�าแหน�งในหน�วยคืวามจ�า โดยที่��วไป ในการืรืะบ�ต่�าแหน�งในหน�วยคืวามจ�าเรืาจะรืะบ�เฉพิาะออฟัโดยที่��วไป ในการืรืะบ�ต่�าแหน�งในหน�วยคืวามจ�าเรืาจะรืะบ�เฉพิาะออฟั

เซึ่*ต่เที่�าน�4น โดยออฟัเซึ่*ต่ที่��รืะบ�จะถู)กน�าไปปรืะกอบก�บคื�าในเซึ่*กเมนต่� รื�เซึ่*ต่เที่�าน�4น โดยออฟัเซึ่*ต่ที่��รืะบ�จะถู)กน�าไปปรืะกอบก�บคื�าในเซึ่*กเมนต่� รื�จ"ส่เต่อรื�ที่��เหมาะส่ม เชื่�นในการือ'างถู$งข'อม)ลออฟัเซึ่*ต่จะถู)กน�าไปจ"ส่เต่อรื�ที่��เหมาะส่ม เชื่�นในการือ'างถู$งข'อม)ลออฟัเซึ่*ต่จะถู)กน�าไปปรืะกอบก�บ ปรืะกอบก�บ DS DS เป.นต่'นเป.นต่'น

ตวอย��งตวอย��ง MOV AX,6789hMOV DX,1234hMOV [100h],AXMOV [102h],DXMOV [104h],AHMOV [105h],DLMOV BX,[104h]MOV CX,[103h]MOV [106h],CL

DS:100h

DS:101h

DS:102h

Page 58: Lecture 4

5858

DS:100h

DS:101h

DS:102h

MOV [102h],DX

12 34

MOV [100h],AX

8967

MOV [104h],AH

67

MOV [105h],DL

34

MOV BX,[104h] 34 67

MOV CX,[103h] 67 12

MOV AX,6789hMOV DX,1234hMOV [100h],AXMOV [102h],DXMOV [104h],AHMOV [105h],DLMOV BX,[104h]MOV CX,[103h]MOV [106h],CL

89h

67h

34h

12h

67h

34h

12h

Page 59: Lecture 4

5959

การืโอนย'ายข'อม)ลก�บการืโอนย'ายข'อม)ลก�บหน�วยคืวามจ�าหน�วยคืวามจ�า

ข'อส่�งเกต่ในการืจ�ดเรื�ยงล�าด�บไบต่�ของข'อม)ลข'อส่�งเกต่ในการืจ�ดเรื�ยงล�าด�บไบต่�ของข'อม)ล ส่�งเกต่ว�าในการืเก*บคื�าในหน�วยคืวามจ�าเม��อเรืาเก*บคื�าเป.น ส่�งเกต่ว�าในการืเก*บคื�าในหน�วยคืวามจ�าเม��อเรืาเก*บคื�าเป.น

16 16 บ"ต่ การืเรื�ยงไบต่�ในหน�วยคืวามจ�าจะเก*บคื�าในไบต่�ที่��บ"ต่ การืเรื�ยงไบต่�ในหน�วยคืวามจ�าจะเก*บคื�าในไบต่�ที่��ม�น�ยส่�าคื�ญส่)งไว'ในไบต่�ที่��ม�แอดเดรืส่ส่)งกว�า และไบต่�ที่��ม�ม�น�ยส่�าคื�ญส่)งไว'ในไบต่�ที่��ม�แอดเดรืส่ส่)งกว�า และไบต่�ที่��ม�น�ยส่�าคื�ญต่��าไว'ในแอดเดรืส่ที่��ม�แอดเดรืส่ต่��ากว�าน�ยส่�าคื�ญต่��าไว'ในแอดเดรืส่ที่��ม�แอดเดรืส่ต่��ากว�า

เรืาเรื�ยกว�าเป.นการืเรื�ยงแบบ เรืาเรื�ยกว�าเป.นการืเรื�ยงแบบ little endian little endian การืการืเรื�ยงข'อม)ลแบบน�4ใชื่'ในหน�วยปรืะมวลผลต่รืะก)ล เรื�ยงข'อม)ลแบบน�4ใชื่'ในหน�วยปรืะมวลผลต่รืะก)ล Intel Intel

ในหน�วยปรืะมวลผลต่รืะก)ลอ��นเชื่�น ในหน�วยปรืะมวลผลต่รืะก)ลอ��นเชื่�น SPARC SPARC หรื�อ หรื�อ MIPS MIPSจะเรื�ยงไบต่�กล�บก�นการืเรื�ยงอ�กแบบน�4เรืาเรื�ยกว�าการืเรื�ยงจะเรื�ยงไบต่�กล�บก�นการืเรื�ยงอ�กแบบน�4เรืาเรื�ยกว�าการืเรื�ยงแบบ แบบ big endian big endian

Page 60: Lecture 4

6060

การืโอนย'ายข'อม)ลก�บการืโอนย'ายข'อม)ลก�บหน�วยคืวามจ�าหน�วยคืวามจ�า

เรืาส่ามารืถูรืะบ�ออฟัเซึ่*ต่ของหน�วยคืวามจ�าที่างเรืาส่ามารืถูรืะบ�ออฟัเซึ่*ต่ของหน�วยคืวามจ�าที่างอ'อมได'โดยผ�านที่างรื�จ"ส่เต่อรื� อ'อมได'โดยผ�านที่างรื�จ"ส่เต่อรื� BXBX

MOV AX,102hMOV BX,100hMOV CX,4004hMOV DX,1201hMOV [BX],AXMOV [BX+2],CXMOV [BX+3],DXMOV [BX+4],BXMOV BX,[102h]MOV AX,[BX]

DS:100h

DS:101h

DS:102h

01 00AX

01 04BX

AX = ?

02h

01h

04h

40h01h

12h00h

10h

Page 61: Lecture 4

6161

การืก�าหนดคื�าให'ก�บหน�วยการืก�าหนดคื�าให'ก�บหน�วยคืวามจ�าคืวามจ�า

ลองส่�งเกต่คื�าส่��งต่�อไปน�4ลองส่�งเกต่คื�าส่��งต่�อไปน�4

การืคื�ดลอกคื�าไปย�งหน�วยคืวามจ�าจะเป.นแบบการืคื�ดลอกคื�าไปย�งหน�วยคืวามจ�าจะเป.นแบบ 16 16 บ"ต่ บ"ต่ ((คื�ดลอก คื�ดลอก 0010 0010 หรื�อหรื�อ 8 8 บ"ต่ บ"ต่ ((คื�ดลอก คื�ดลอก 10h)10h)

ในการืเข�ยนคื�าคืงที่��ลงในหน�วยคืวามจ�าเรืาจะต่'องในการืเข�ยนคื�าคืงที่��ลงในหน�วยคืวามจ�าเรืาจะต่'องรืะบ�รืะบ�ขนาดของหน�วยคืวามจ�าขนาดของหน�วยคืวามจ�าด'วยด'วย

ส่�งเกต่ว�าคืวามก�ากวมน�4ไม�เก"ดในกรืณ�ของส่�งเกต่ว�าคืวามก�ากวมน�4ไม�เก"ดในกรืณ�ของ

MOV [100h],10h

MOV WORD PTR [100h],10hMOV BYTE PTR [100h],10h

MOV [100h],AX