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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 11 โปรแกรมย่อยขั้นต้น
Advertisements

เกตทางตรรกและพีชคณิตแบบบูล
การแทนค่าข้อมูล และ Primary Storage (Memory)
CS Assembly Language Programming
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)
Number Representations
Control Transfer Instructions
Addressing Modes Assembly Programming.
BIT & STRING OPERATIONS
บทที่ 3 ตัวดำเนินการ และ นิพจน์
CS Assembly Language Programming
CS Assembly Language Programming Period 7.
CS Assembly Language Programming
CS Assembly Language Programming Period 30.
CS Assembly Language Programming Period 21.
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 โปรแกรมย่อยและแสต็ก
บทที่ 10 โครงสร้างควบคุม
ธนาวินท์ รักธรรมานนท์
ธนาวินท์ รักธรรมานนท์
ธนาวินท์ รักธรรมานนท์
โปรแกรมภาษาแอสเซมบลี้ (2)
ภาควิชาวิทยาศาสตร์ประยุกต์ คณะวิทยาศาสตร์เทคโนโลยีและการเกษตร
Computer Coding & Number Systems
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 12 กรกฎาคม 2550 HTML (HyperText Markup Language)
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
pyramid มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
เซกเมนต์ (Segment) โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
อินเทอร์รัพท์ (Interrupt)
อาร์เรย์ หรือแถวลำดับ (Array)
Page: 1 ความรู้เบื้องต้นเกี่ยวกับคำสั่ง DOS DOS Command มหาวิทยาลัยเนชั่น จังหวัดลำปาง ผศ. บุรินทร์
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 กรกฎาคม 2550 แฟ้มข้อความ (Text File) #1 มหาวิทยาลัยโยนก.
Page: 1 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ Debug #1 มหาวิทยาลัยเนชั่น จังหวัดลำปาง ผศ. บุรินทร์
ระบบเลขฐาน (Radix Number)
input from keyboard มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 กรกฎาคม 2550 PHP Structure Programming มหาวิทยาลัยโยนก.
แอพเพล็ตเบื้องต้น (Applet)
Algorithm มหาวิทยาลัยเนชั่น Java Pre-Test 49 (Series 1, 2 )
GW-Basic Language มหาวิทยาลัยเนชั่น หลักการภาษาชุดคำสั่ง
Operating System โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 28 มิถุนายน 2550 Get, Post, Session, Cookies มหาวิทยาลัยโยนก.
Page: 1 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ ผศ. บุรินทร์ รุจจน พันธุ์.. ปรับปรุง 19 ตุลาคม 2555 Introduction to Batch.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 7 มิถุนายน 2556 Text File Processing มหาวิทยาลัยเนชั่น.
Computer Components โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 23 มิถุนายน 2550 Data Selecting by ASP มหาวิทยาลัยโยนก.
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 กรกฎาคม 2550 File Uploading & Shell มหาวิทยาลัยโยนก.
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 23 มิถุนายน 2550 ASP Structure Programming มหาวิทยาลัยโยนก.
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 23 มิถุนายน 2550 echo และ print มหาวิทยาลัยโยนก จังหวัด.
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 23 มิถุนายน 2550 Data Updating by ASP มหาวิทยาลัยโยนก.
Page: 1 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ inkey.com มหาวิทยาลัยเนชั่น จังหวัดลำปาง ผศ. บุรินทร์
Copy by Batch File โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 กรกฎาคม 2550 แฟ้มข้อความ (Text File) #2 มหาวิทยาลัยโยนก.
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 กรกฎาคม 2550 Cookie & Session มหาวิทยาลัยโยนก จังหวัด.
เกท (Gate) AND Gate OR Gate NOT Gate NAND Gate NOR Gate XNOR Gate
แผนผังคาร์โนห์ Kanaugh Map
ค21201 คณิตศาสตร์เพิ่มเติม 1
CS Assembly Language Programming
การกระโดดและการวนรอบ
ระบบเลขในคอมพิวเตอร์
ใบสำเนางานนำเสนอ:

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

แสดงค่า Register ด้วย r ในโปรแกรม Debug C:\>debug -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=119B ES=119B SS=119B CS=119B IP=0100 NV UP EI PL NZ NA PO NC 119B:0100 00C4 ADD AH,AL -r ax -r ax หมายถึง เปลี่ยนค่าของ Register AX

แสดงการกำหนด register และเรียกใช้ interrupt C:\>debug -r ax :0200 -r dx :0041 -a 100 int 21 int 20 -g A Program terminated normally -

สร้าง exitpro.com (1/4) DOS> debug -n exitpro.com -a mov ah,4c int 21h -rcx :0004 -w -q

สร้าง exitpro.com (2/4) DOS> debug -n exitpro.com -e 0100 B4 4C CD 21 -rcx :0004 -w -q

สร้าง exitpro.com (3/4) DOS> copy con exitpro.scr n exitpro.com e 0100 B4 4C CD 21 rcx 0004 w q ^Z DOS> debug < exitpro.scr DOS> exitpro.com

สร้าง exitpro.com (4/4) DOS> debug exitpro.com -u 106F:0100 mov ah,4c 106F:0102 int 21 -a 100 106F:0100 mov ax,4c00 -w -q DOS>

แสดงตัวอักษรจากบริการ AH 02 DOS> copy con x.scr n x.com a mov ah,02 mov dl,41 int 21h mov dl,61 mov dl,62 int 20 rcx 0014 w q DOS> debug < x.scr DOS> x.com

เขียนภาษา Assembly ใน Debug C:\>debug -a 106F:0100 mov ah,02 106F:0102 mov dl,41 106F:0104 int 21 106F:0106 int 20 106F:0108 -g A Program terminated normally - n x.com - rcx : 8 - w - q C:\>x

ส่งข้อมูลออกทาง Printer Port (1/3) c:\>debug -a mov al,48 ; 0100-1000 8-bit in al mov dx,378 ; parallel port is 378h out dx,al ; write it mov ax,4C00 ; return to DOS int 21h -g -q c:\> ข้อมูลจาก http://www.thaiall.com/printer/indexo.html

ส่งข้อมูลออกทาง Printer Port (2/3) c:\>debug -n on.com -a mov al,ff ; 1111-1111 mov dx,378 out dx,al mov ax,4C00 int 21h -rcx b -w -q c:\>on

ส่งข้อมูลออกทาง Printer Port (3/3) :loop on.com pause off.com goto loop

Bit Operation (1/6) เลื่อนไปทางซ้าย เลื่อนไปทางขวา shl (Shift Left) ทำหน้าที่ เลื่อนไปทางซ้าย shr (Shift Right) ทำหน้าที่ เลื่อนไปทางขวา rol (Rotate Left) ทำหน้าที่ เลื่อนบิทไปทางซ้าย ไม่เก็บ Carry Flag เช่น 01110111 => 11101110 ror (Rotate Right) ทำหน้าที่ เลื่อนบิทไปทางขวา ไม่เก็บ Carry Flag เช่น 01110111 => 10111011 rcl (Rotate through Carry Left) ทำหน้าที่ เลื่อนบิทไปทางซ้าย และเก็บ Carry Flag เป็นตัวที่ 9 (มีตัวทด) rcr (Rotate through Carry Right) ทำหน้าที่ เลื่อนบิทไปทางขวา และเก็บ Carry Flag เป็นตัวที่ 9 (มีตัวทด)

Bit Operation (2/6) เลื่อนไปทางซ้ายแบบคิดเครื่องหมาย sal (Shift Arithmetic Left) ทำหน้าที่ เลื่อนไปทางซ้ายแบบคิดเครื่องหมาย sar (Shift Arithmetic Right) ทำหน้าที่ เลื่อนไปทางขวาแบบคิดเครื่องหมาย add ทำหน้าที่ เพิ่มค่า แต่อ้างอิงกับเลขฐาน 10 (41 add 2 = 43) and ทำหน้าที่ เป็นจริงเมื่อเป็นจริงทั้งคู่ (0100 0001 and 0100 0010 = 0100 0000) or ทำหน้าที่ เป็นจริงเมื่อตัวใดตัวหนึ่งเป็นจริง (0100 0001 or 0100 0010 = 0100 0011) xor ทำหน้าที่ เป็นจริงเมื่อต่างกัน เหมือนกันเป็นเท็จ (0100 0011 or 0000 0010 = 0100 0001) not ทำหน้าที่ เปลี่ยนจริงเป็นเท็จ และเท็จเป็นจริง (not 0100 0011 = 1011 1100)

Bit Operation (3/6) -a 100 0B24:0100 mov dx,dffd 0B24:0103 shl dx,1 C:\>debug -a 100 0B24:0100 mov dx,dffd 0B24:0103 shl dx,1 0B24:0105 -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=01B8 DS=0B24 ES=0B24 SS=0B24 CS=0B24 IP=0103 OV UP EI PL NZ NA PE CY 0B24:0103 D1E2 SHL DX,1 -t =cs:100 2 AX=0000 BX=0000 CX=0000 DX=DFFD SP=FFEE BP=0000 SI=0000 DI=01B8 AX=0000 BX=0000 CX=0000 DX=BFFA SP=FFEE BP=0000 SI=0000 DI=01B8 DS=0B24 ES=0B24 SS=0B24 CS=0B24 IP=0105 NV UP EI NG NZ NA PE CY 0B24:0105 D1E2 SHL DX,1 -

Bit Operation (4/6) 0100 0001 or 0100 0010 = 0100 0011 C:\>debug 0AE8:0100 mov ah,02 0AE8:0102 mov dl,41 0AE8:0104 int 21 0AE8:0106 int 20 -g A Program terminated normally -a 106 0AE8:0106 or dl,42 0AE8:0109 int 21 0AE8:010B int 20 0AE8:010D AC -

Bit Operation (5/6) C:\>debug -n x.com -a 0AE8:0100 mov ah,02 0AE8:0102 mov dl,41 0AE8:0104 int 21 0AE8:0106 add dl,2 0AE8:0109 int 21 0AE8:010B int 20 0AE8:010D -rcx CX 0000 :d -w Writing 0000D bytes -q C:\>x AC C:\>

Bit Operation (6/6) คำสั่ง rcr ย้าย bit ไปทางขวา แต่มีตัวทด(Carry Flag) มารับ 106 : before 01110001=71=q, after 00111000=38=8, cf=1 10A : before 00111000=38=8, after 10011100=9C=?, cf=0 10C : before 10011100=9C=?, after 01001110=4E=N, cf=0 -u 100 0AE8:0100 B271 MOV DL,71 0AE8:0102 B402 MOV AH,02 0AE8:0104 CD21 INT 21 0AE8:0106 D0DA RCR DL,1 0AE8:0108 CD21 INT 21 0AE8:010A D0DA RCR DL,1 0AE8:010C D0DA RCR DL,1 0AE8:010E CD21 INT 21 0AE8:0110 CD20 INT 20 -g q8N Program terminated normally -