Addressing Modes std@kmitnb.ac.th 270231 Assembly Programming.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Datadictionary Prakan Sringam.
Advertisements

โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
วิธีการสมัครสมาชิก UNOVUS
ชนิดของข้อมูลในโปรแกรม Interactive C
วิธีการตั้งค่าและทดสอบ เครื่องคอมพิวเตอร์ก่อนใช้งาน
บทที่ 11 โปรแกรมย่อยขั้นต้น
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
2.2.3 การแก้ไขแอดเดรส โดยการใช้อินเด็กรีจิสเตอร์
Introduction to C Programming
การรับค่าและแสดงผล.
สถาปัตยกรรมแบบ stack และ การผลิตโค๊ด
Data Type part.III.
CS Assembly Language Programming
CS Assembly Language Programming
CS Assembly Language Programming
CS Assembly Language Programming
CS Assembly Language Programming
CS Assembly Language Programming Period 16.
การจัดเก็บข้อมูลตามตัวบ่งชี้ สกอ. และ สมศ.
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
NUMBER SYSTEM เลขฐานสิบ (Decimal Number) เลขฐานสอง (Binary Number)
ขั้นตอนการแปลงไฟล์.
กลุ่มสาระการเรียนรู้ คณิตศาสตร์ โรงเรียนบ้านหนองกุง อำเภอนาเชือก
C Programming Lecture no. 9 Structure.
SCC : Suthida Chaichomchuen
SCC : Suthida Chaichomchuen
การจัดการข้อมูลด้วยคอมพิวเตอร์
Control Transfer Instructions
BIT & STRING OPERATIONS
1 Structures & Records SCC : Suthida Chaichomchuen
Arithmetic Instruction
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 3 ตัวดำเนินการ และ นิพจน์
การแปลงภาพสีเทาให้เป็นภาพขาวดำ
CS Assembly Language Programming
CS Assembly Language Programming
CS Assembly Language Programming Period 30.
บทที่ 11 การเขียนโปรแกรมภาษาซี
ดีบักเป็นเครื่องมืออันหนึ่งที่ให้ผู้ใช้ ตรวจสอบ และแก้ไขค่าใน หน่วยความจำ โหลด เก็บ ตรวจสอบค่าในเรจิสเตอร์ และสามารถ เขียนโปรแกรมแอสเซมบลีได้อย่าง สะดวก.
ASSIGN3-4. InstructionResult Z-FlagC-FlagP-FlagS-FlagO-Flag MOV AL,9Eh 9Eh H ????? ADDAL,9Eh 3C ADD AL,1Eh 5A
แบบฝึกหัด 24/12/09. เมื่อคอมพ์ทำคำสั่งต่อไปนี้ จงแสดง ผลลัพธ์และ ค่าแฟลกต่างๆ InstructionResult Z-FlagC-FlagP- Flag S- Flag O- Flag MOV AL,3h Inc AL Mov.
อาร์เรย์และข้อความสตริง
บทที่ 15 โปรแกรมย่อยและแสต็ก
ธนาวินท์ รักธรรมานนท์
ธนาวินท์ รักธรรมานนท์
โปรแกรมภาษาแอสเซมบลี้ (2)
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
ภาควิชาวิทยาศาสตร์ประยุกต์ คณะวิทยาศาสตร์เทคโนโลยีและการเกษตร
Debug #2 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
เซกเมนต์ (Segment) โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
อินเทอร์รัพท์ (Interrupt)
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
โครงสร้างข้อมูลแบบคิว
บทที่ 3 การวิเคราะห์ Analysis.
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
การดำเนินการทดสอบทางการศึกษาแห่งชาติ (O-NET)
CS Assembly Language Programming
การกระโดดและการวนรอบ
PHP for Web Programming
ค21201 คณิตศาสตร์เพิ่มเติม 1
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
ภาษาอังกฤษเพื่อการสื่อสาร อ32204
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
Addressing Modes ธนวัฒน์ แซ่เอียบ.
Chapter 11 Instruction Sets: Addressing Modes
ค่าความจริงของประโยคที่มีตัวบ่งปริมาณ 2 ตัว
สื่อการสอนด้วยโปรมแกรม “Microsoft Multipoint”
ตัวแปร และชนิดข้อมูล.
โครงสร้างข้อมูลแบบ สแตก (stack)
ใบสำเนางานนำเสนอ:

Addressing Modes std@kmitnb.ac.th 270231 Assembly Programming

Addressing การแอดเดรสซิ่ง เป็นวิธีการที่จะเข้าถึงข้อมูลในที่ต่าง ๆ ซึ่งการแอดเดรสที่ต่างกันจะทำให้การเขียนโปรแกรมมี ความยากง่ายต่างกันออกไป 270231 Assembly Programming

โครงสร้างคำสั่งทั่วไป คำสั่ง โอเปอร์แลนด์ โอเปอร์แลนด์ ปลายทาง ต้นทาง Instruction Destination Source MOV AX, BX ADD AND OR

Addressing Modes 1.Immediate addressing 2.Register addressing 3.Direct addressing 4.Register indirect addressing 5.Base relative addressing 6.Indexed addressing 7.Base relative indexed addressing

การแอดเดรสซิ่งแบบไม่ติดต่อหน่วยความจำ Immediate addressing Register addressing

การแอดเดรสซิ่งแบบติดต่อหน่วยความจำ Direct addressing Register indirect addressing Base relative addressing Indexed addressing Base relative indexed addressing

1.Immediate Addressing Mode เป็นการติดต่อข้อมูลแบบค่าคงที่ขนาด 8 บิตหรือ 16 บิต ค่าคงที่จะตามหลังรหัสคำสั่ง (Opcode) มักใช้ในการกำหนดค่าให้กับรีจิสเตอร์ หรือหน่วยความจำ ไม่สามารถใช้เป็นโอเปอร์แรนด์ปลายทางได้

Immediate... ค่าของเลข 16 บิต แบบคิดเครื่องหมายจะมีค่าอยู่ระหว่าง -32768 (8000H) ถึง 32767 (7FFFH) แบบไม่คิดเครื่องหมายจะมีค่าอยู่ระหว่าง 0-65535 (0FFFFH)

Immediate... ค่าของเลข 8 บิต แบบคิดเครื่องหมายจะมีค่าอยู่ระหว่าง -128 (80H) ถึง 127 (7FH) แบบไม่คิดเครื่องหมายจะมีค่าอยู่ระหว่าง 0-255 (0FFH)

Immediate... ตัวอย่าง MOV AL, 44 MOV AX, 44H MOV DI, 0 MOV BX, ”AB” MOV CL, 11100000B MOV Byte ptr[1234H], 12

2.Register Addressing Mode เป็นการติดต่อข้อมูลในรีจิสเตอร์ 8 บิต AH, AL, BH, BL, CH, CL, DH, DL หรือรีจิสเตอร์ 16 บิต AX, BX, CX, DX, SI, DI, SP, BP, CS, DS, ES, SS

Register... สามารถใช้รีจิสเตอร์เป็นโอเปอร์แรนด์ต้นทางหรือปลายทางได้ ยกเว้นในกรณีที่ใช้ CS, DS, SS, ES เป็นโอเปอร์แรนด์ปลายทาง ต้องกำหนดให้ AX เป็นโอเปอร์แรนด์ต้นทางเท่านั้น

Register... ตัวอย่าง MOV AL, BL MOV AX, BX MOV SP, BP MOV DS, AX MOV BX, DS

3.Direct Addressing Mode เป็นการติดต่อข้อมูลไปที่หน่วยความจำโดยระบุตำแหน่งที่จะติดต่อลงไปในเครื่องหมาย [ ] โดยตรง

Direct... ตัวอย่าง MOV AL, NUMB MOV BX, SHOW MOV NAME, BL MOV BP, DATA1 MOV AX, [1234H]

4.Register Indirect Addressing Mode เป็นการติดต่อข้อมูลในหน่วยความจำโดยใช้การกำหนดตำแหน่งของข้อมูลที่จะติดต่อลงในรีจิสเตอร์ BX, BP, SI หรือ DI แทนการกำหนดค่าตรง ๆ ในวงเล็บ ใช้ในการโปรแกรมเพื่อจัดการกับข้อมูลเป็นกลุ่ม

Register Indirect... ตัวอย่าง MOV AX, [BX] MOV BL, [BP] MOV [SI], DX MOV [DI], DL MOV Byte ptr[BX], 5

5.Base Relative Addressing Mode เป็นการติดต่อข้อมูลในหน่วยความจำโดยใช้การกำหนดตำแหน่งของ รีจิสเตอร์เบส (BX,BP) บวกกับ ค่าสัมพัทธ์ (Relative) ค่าสัมพัทธ์เป็นได้ทั้งค่าบวกและลบ มีขนาดได้ทั้ง 8 บิต และ 16 บิต

Base Relative... BX,BP : ใช้ในการเก็บจุดเริ่มต้นของตาราง ค่าสัมพัทธ์ (Relation) : ชี้ข้อมูลในตาราง

Base Relative... เมื่อใช้ BX เป็นตัวอ้างอิงจะเป็นการติดต่อไปยัง Data Segment ต้องใช้ DS หา Physical address เมื่อใช้ BP เป็นตัวอ้างอิงจะเป็นการติดต่อไปยัง Stack Segment ต้องใช้ SS หา Physical address

Base Relative... MOV AX,[BX+2] MOV [BP-100],AX Physical add = DS x 10H + BX + 2 MOV [BP-100],AX Physical add = SS x 10H + BP - 100

Base Relative... ตัวอย่าง MOV AX, [BX+100H] MOV BL, ARRY[SI] MOV [BX+2], DX MOV TABLE[BP], DL

6.Indexed Addressing Mode เป็นการติดต่อข้อมูลในหน่วยความจำโดยการอ้างอิงผ่าน รีจิสเตอร์อินเด็กซ์ (SI,DI) รวมกับ ค่าขจัด (Displacement) SI,DI : เก็บดัชนีในการชี้ข้อมูลในตาราง ค่าขจัด : ชี้จุดเริ่มต้นตาราง

Indexed... MOV AL,1000[SI] MOV BL,TABLE[DI] Physical add = DS x 10H + 1000 + SI MOV BL,TABLE[DI] Physical add = DS x 10H + TABLE + DI

Indexed... ตัวอย่าง MOV AX, [1000+DI] MOV BL, 1000[SI] MOV [TABLE+SI], DX MOV TABLE[DI], DL

7.Base Relative Indexed Addressing Mode เป็นการติดต่อข้อมูลในหน่วยความจำโดยการอ้างอิงผ่าน รีจิสเตอร์อินเด็กซ์ (SI,DI) รีจิสเตอร์เบส (BX,BP) และค่าสัมพัทธ์ (Relative)

Base Relative Indexed... MOV AL,1000[BX+SI] MOV BL,TABLE[BP+DI] Physical add = DSx10H+1000+BX+SI MOV BL,TABLE[BP+DI] Physical add = SSx10H+TABLE+BP+DI

Base Relative Indexed... ตัวอย่าง MOV AX, [BX+DI+20H] MOV BL, HOME[BP+SI] MOV NAME[BX+SI+2], DX MOV LIST[BP+DI], DL