1 / 14

โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้

โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้. เซกเมนต์ ( Segment). ผศ.บุรินทร์ รุจจนพันธุ์ . ปรับปรุง 1 9 ตุลาคม 2555. มหาวิทยาลัยเนชั่น จังหวัดลำปาง http://www. nation.ac.th. 4 Segments (1/2). 1. เซกเมนต์ข้อมูล (Data Segment) 2. เซกเมนต์คำสั่ง (Code Segment)

khanh
Download Presentation

โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ เซกเมนต์ (Segment) ผศ.บุรินทร์ รุจจนพันธุ์ . ปรับปรุง 19 ตุลาคม 2555 มหาวิทยาลัยเนชั่น จังหวัดลำปาง http://www.nation.ac.th

  2. 4 Segments (1/2) 1. เซกเมนต์ข้อมูล (Data Segment) 2. เซกเมนต์คำสั่ง (Code Segment) 3. เซกเมนต์สแตก (Stack Segment) 4. เซกเมนต์พิเศษ (Extra Segment) Interrupt บางตัวใช้ใน Debug ไม่ได้ ต้องเขียนเป็นชุดคำสั่งให้ Compiler แปล

  3. 4 Segment (2/2) 1. เซกเมนต์ข้อมูล (Data Segment) .data เป็นเซกเมนต์ที่เก็บข้อมูลของโปรแกรม มักถูกอ้างอิงด้วยรีจิสเตอร์ DS 2. เซกเมนต์คำสั่ง (Code Segment) .code เป็นเซกเมนต์ที่เก็บคำสั่งโปรแกรมทั้งหมด มักทำงานร่วมกับรีจิสเตอร์ชี้คำสั่ง IP ซึ่งเป็นออฟเซตในการชี้ตำแหน่งคำสั่ง 3. เซกเมนต์สแตก (Stack Segment) .stack เป็นเซกเมนต์ที่เป็นหน่วยความจำแสตก การใช้หน่วยความจำส่วนนี้เป็นแบบ Last in first out (LIFO) ใช้ร่วมกับรีจิสเตอร์ SP หรือตัวชี้แสตก 4. เซกเมนต์พิเศษ (Extra Segment) เป็นเซกเมนต์ที่เป็นหน่วยความจำพิเศษ ใช้ร่วมกับรีจิสเตอร์ DI

  4. เซกเมนต์แบบเก่า (1/4) cseg segment main proc mov ah,4ch int 21h main endp cseg ends end main

  5. เซกเมนต์แบบเก่า (2/4) cseg segment main proc mov ah,2h mov dl,62h int 21h mov ah,4ch int 21h main endp cseg ends end main

  6. เซกเมนต์แบบเก่า (3/4) dseg segment a db 63h dseg ends cseg segment main proc far assume cs:cseg,ds:dseg mov ax,dseg mov ds,ax mov ah,2 mov dl,a int 21h mov ah,4ch int 21h main endp cseg ends end main

  7. เซกเมนต์แบบเก่า (4/4) dseg segment a db 'abc $' dseg ends cseg segment main proc far assume cs:cseg,ds:dseg mov ax,dseg mov ds,ax mov ah,9h lea dx,a int 21h mov ah,4ch int 21h main endp cseg ends end main

  8. เซกเมนต์แบบใหม่ สั้นสุด 1 (1/4) .model small .data .code pmain proc near push ds mov ax,0 push ax mov ax,@data mov ds,ax ret pmain endp end pmain

  9. เซกเมนต์แบบใหม่ สั้นสุด 2 (2/4) .model small .data .code main proc mov ax,@data mov ds,ax mov ah,4ch int 21h main endp end main

  10. เซกเมนต์แบบใหม่ (3/4) .model small .stack 64h .data data1 db ‘abc $’ .code main proc mov ax,@data mov ds,ax mov ah,9h lea dx,data1 int 21h mov ah,4ch int 21h main endp end main

  11. เซกเมนต์แบบใหม่มีโมดูล (4/4) setproc macro push ds mov ax,0 push ax mov ax,@data mov ds,ax endm prtout macro mov ah,9 lea dx,msg int 21h endm .model small .data msg db 'abc $' .code pmain proc far setproc prtout ret pmain endp .stack 200h ; not required end pmain

  12. วิธีติดตั้ง Macro Assembly 1. Download ตัวแปรภาษา เช่น masm611.zip 4.7 MB 2. คลาย zip ลงในเครื่อง 3. สั่ง run โปรแกรม setup.exe 4. กด Enter ประมาณ 20 ครั้ง - เมื่อ enter ที่ 12 ควรเปลี่ยน binr เป็น bin 5. ถ้าพบ Setup Successfully กด Ctrl-C ได้ 6. โปรแกรมทั้งหมดอยู่ในห้อง c:\masm611 7. พบตัวแปลภาษาใน c:\masm611\bin\ 8. ถ้าขณะ install ถ้าไม่เปลี่ยน bin เป็น binr - ต้อง cd c:\masm611\binr - ต้อง copy *.* c:\masm611\bin - จึงจะแปลโปรแกรมได้สำเร็จ ตามตัวอย่าง

  13. วิธีแปล และประมวลผล 1. เขียนโปรแกรมเก็บไว้ในแฟ้มที่มีนามสกุล .asm เช่น x.asm 2. การแปลโปรแกรมเป็น Object โปรแกรม DOS> masm x.asm 3. การลิงค์เชื่อมกับแฟ้มต่าง ๆ เพื่อให้ได้ .exe DOS> link x,,,,, Object Modules [.obj] Run File [.exe] List File [.map] Libraries [.lib] Definitions File [.def] 4. ประมวลผล DOS> x

  14. แบทไฟล์ช่วยแปลโปรแกรมแบทไฟล์ช่วยแปลโปรแกรม DOS>a.bat x masm %1.asm link %1,,,,, %1

More Related