Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
10,86 MB
Nội dung
7/31/2011 7/31/2011 Chuong 3 Debug Chuong 3 Debug 1 1 CH CH Ư Ư ƠNG TRÌNH GỢ RO ƠNG TRÌNH GỢ RO Á Á I DEBUG I DEBUG Dòch Dòch đư đư ơ ơ ï ï c 1 ch c 1 ch ư ư ơng tr ơng tr ì ì nh nga nh nga é é n n Mục tiêu Xem ca Xem ca ù ù c thanh ghi va c thanh ghi va ø ø cơ cơ ø ø cu cu û û a CPU a CPU Xem s Xem s ự ự thay thay đ đ o o å å i no i no ä ä i dung cu i dung cu û û a ca a ca ù ù c bie c bie á á n n Do Do ø ø t t ì ì m trò ơ m trò ơ û û da da ï ï ng nhò phân hoa ng nhò phân hoa ë ë c ASCII trong bo c ASCII trong bo ä ä nhơ nhơ ù ù Hỗ Hỗ trơ ï luye ä n ta ä p vie á t ch ư ơng tr ì nh ba è ng Assembly 7/31/2011 7/31/2011 Chuong 3 Debug Chuong 3 Debug 2 2 Da Da ï ï ng le ng le ä ä nh cu nh cu û û a Debug a Debug <mã le <mã le ä ä nh > <thông so nh > <thông so á á > > Trong đó mã lệnh là 1 trong các chữ A,B,C,D,E, còn thông số thì thay đổi tùy theo lệnh. Các thông số có thể là : Đòa chỉ : là 1 bộ đòa chỉ đầy đủ segment : offset hay chỉ cần offset là đủ. Segment có thể dùng tên thanh ghi. Ex : F000:0100 DS: 200 0AF5 7/31/2011 7/31/2011 Chuong 3 Debug Chuong 3 Debug 3 3 Da Da ï ï ng ng le le ä ä nh cu nh cu û û a Debug a Debug Tập tin : là 1 tham khảo tên tập tin đầy đủ, ít nhất phải có tên tập tin. Danh sách : Là 1 hay nhiều trò byte hoặc chuổi cách nhau bằng dấu phẩy. Khoảng : là 1 tham khảo đến vùng bộ nhớ Trò : là 1 số hệ 16 có tối đa có 4 chữ số 7/31/2011 7/31/2011 Chuong 3 Debug Chuong 3 Debug 4 4 Ta Ta ọ ọ p le p le ọ ọ nh cu nh cu ỷ ỷ a Debug a Debug A <Assemble> : A <Assemble> : cho phe cho phe ự ự p vie p vie ỏ ỏ t t t t ửứ ửứ ba ba ứ ứ n ph n ph ớ ớ m ca m ca ự ự c le c le ọ ọ nh maừ ma nh maừ ma ự ự y y d d ử ử ụ ụ ự ự i da i da ù ù ng gụ ng gụ ù ù i nhụ i nhụ ự ự . . A [ < A [ < ủ ủ ũa ch ũa ch ổ ổ >] >] Ex : Ex : - - A 100 dũch ụ A 100 dũch ụ ỷ ỷ ủ ủ ũa ch ũa ch ổ ổ CS:100h CS:100h - - A A dũch ụ dũch ụ ỷ ỷ ủ ủ ũa ch ũa ch ổ ổ hie hie ọ ọ n ta n ta ù ù i i (Debug la (Debug la ỏ ỏ y y ủ ủ ũa ch ũa ch ổ ổ ủ ủ oa oa ù ù n CS) n CS) - - A DS:2000h A DS:2000h dũch ụ dũch ụ ỷ ỷ ủ ủ ũa ch ũa ch ổ ổ DS:2000h DS:2000h 7/31/2011 7/31/2011 Chuong 3 Debug Chuong 3 Debug 5 5 T T h h ớ ớ du du ù ù minh ho minh ho ù ù a le a le ọ ọ nh A nh A Pha Pha ỷ ỷ i nha i nha ọ ọ p le p le ọ ọ nh va nh va ứ ứ o theo t o theo t ửứ ửứ ng do ng do ứ ứ ng mo ng mo ọ ọ t va t va ứ ứ ke ke ỏ ỏ t thu t thu ự ự c ba c ba ố ố ng Enter. ng Enter. Ke Ke ỏ ỏ t thu t thu ự ự c nha c nha ọ ọ p nha p nha ỏ ỏ n Enter ụ n Enter ụ ỷ ỷ do do ứ ứ ng tro ng tro ỏ ỏ ng. ng. Ex : Ex : - - A 100 A 100 5514:0100 MOV AH, 2 5514:0100 MOV AH, 2 5514:0102 MOV DL, 41 5514:0102 MOV DL, 41 5514:0104 INT 21H 5514:0104 INT 21H SEGMENT OFFSET User goỷ vaứo 7/31/2011 7/31/2011 Chuong 3 Debug Chuong 3 Debug 6 6 C (Compare) C (Compare) So sa So sa ù ù nh 2 vu nh 2 vu ø ø ng bo ng bo ä ä nhơ nhơ ù ù va va ø ø lie lie ä ä t kê ca t kê ca ù ù c ô nhơ c ô nhơ ù ù co co ù ù no no ä ä i dung kha i dung kha ù ù c nhau. c nhau. Cú pháp : C <khoảng> , < đòa chỉ> Ex : - C 100, 200, 3000 : 1000 So sánh ô nhớ DS:100h với ô nhớ 3000:1000h, ô nhớ DS:101h với ô nhớ 3000:1001h… Cho đến ô nhớ DS :200h với ô nhớ 3000:1100h. So sánh 101 bytes 7/31/2011 7/31/2011 Chuong 3 Debug Chuong 3 Debug 7 7 D (Dump) D (Dump) Hie Hie ọ ọ n no n no ọ ọ i dung bo i dung bo ọ ọ nhụ nhụ ự ự theo da theo da ù ù ng he ng he ọ ọ 16 va 16 va ứ ứ ASCII ASCII . . Caựch goùi : D <khoaỷng> Ex : - D F000 : 0 - D ES : 100 - D 100 7/31/2011 7/31/2011 Chuong 3 Debug Chuong 3 Debug 8 8 Le Le ä ä nh F ( nh F ( Fill) Fill) Cu Cu ù ù pha pha ù ù p : F <khoa p : F <khoa û û ng> <danh sa ng> <danh sa ù ù ch> ch> Công du Công du ï ï ng : la ng : la á á p p đ đ a a à à y trò va y trò va ø ø o vu o vu ø ø ng nhơ ng nhơ ù ù ngay ngay ta ta ï ï i i đ đ òa ch òa ch ỉ ỉ mong muo mong muo á á n. n. Trò nhập vào từng byte một theo hệ 16 Dấu trừ (-) dùng để lùi lại 1 đòa chỉ. SPACE BAR dùng để tới 1 đòa chỉ. ENTER để kết thúc. 7/31/2011 7/31/2011 Chuong 3 Debug Chuong 3 Debug 9 9 Minh ho Minh ho ï ï a le a le ä ä nh nh F F La La é é p p ñ ñ a a à à y vu y vu ø ø ng nhô ng nhô ù ù ta ta ï ï i i ñ ñ òa ch òa ch æ æ offset 100h offset 100h chuo chuo å å i i “ “ Toi dua em sang song Toi dua em sang song ” ” . . F 100 “TOI DUA EM SANG SONG” OFFSET 100H 7/31/2011 7/31/2011 Chuong 3 Debug Chuong 3 Debug 10 10 KE KE Á Á T QUA T QUA Û Û -F 100 "TOI DUA EM SANG SONG" -D 100 0ADD:0100 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 TOI DUA EM SANG 0ADD:0110 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 SONGTOI DUA EM S 0ADD:0120 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 ANG SONGTOI DUA 0ADD:0130 45 4D 20 53 41 4E 47 20-53 4F 4E 47 54 4F 49 20 EM SANG SONGTOI 0ADD:0140 44 55 41 20 45 4D 20 53-41 4E 47 20 53 4F 4E 47 DUA EM SANG SONG 0ADD:0150 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 TOI DUA EM SANG 0ADD:0160 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 SONGTOI DUA EM S 0ADD:0170 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 ANG SONGTOI DUA [...]... F000:100 - D F000:100 L10 7 /31 /2011 Chuong 3 Debug 11 Thí dụ minh họa lệnh D nh đánh vào lệnh D để xem nội dung vùng nhớ nh nh ng của 30 h bytes bộ nhớ từ đòa chỉ 0000:0040 đến 0000:006F - D 0000:0040 006F Đòa chỉ bắt đầu - D 0000:0040 L 30 Số bytes 7 /31 /2011 Chuong 3 Debug 12 E (ENTER) Dùng để đưa dữ liệu byte vào bộ nhớ ngay ng tại đòa chỉ mong muốn n Cách gọi : - E Trò nhập vào theo... 18AF : 08 23 Ex2 : - S 2000 2200 13, 15,8A, 8 7 /31 /2011 Chuong 3 Debug 24 Lệnh M (Move) nh Công dụng : chép nội dung vùng nhớ đến 1 ng ng đòa chỉ khác c Cú pháp : - M ng> Ex : - M 100 105 200 Chép 5 bytes từ DS:100 đến DS:200 Ex2 : - M CS:100 L 50 ES :30 0 Chép 50 bytes từ CS:100 đến ES :30 0 7 /31 /2011 Chuong 3 Debug 25 Lệnh I (Input) nh Công dụng : nhập 1 byte từ cổng xuất nhập ng ng và hiện ra... thanh ghi BX và CX (BX chứa 16 bit cao, CX chứa 16 bit thấp) đây số byte cần ghi là 1Eh Bước 5 : dùng lệnh W để ghi câu trên đã nhập vào vùng nhớ có đòa chỉ bắt đầu là 100 7 /31 /2011 Chuong 3 Debug 20 Lệnh T (Trace )và P nh cú pháp : - T [= ][số lần] n] Mục đích : dùng để chạy 1 hay nhiều lần các lệnh trong bộ nhớ Ex : - T = 30 00:1000 Ex : - T = 30 00:1000 7 /31 /2011 Chuong 3 Debug 21... quãng 0000:0000 ng Gỏ vào máy bằng lệnh A, đoạn chương trình sau ở đòa ng nh chỉ 2000:0100 7 /31 /2011 Chuong 3 Debug 28 Summary 2000:0100 MOV AL ,32 2000:0102 MOV AH, 4F 2000:0104 MOV CX, [200] 2000:0108 MOV WORD PTR [1800], 1 2000:010E MOV BYTE PTR [1800], 1 2000:01 13 Xem lại đoạn chương trình vừa đánh trên bằng lệnh U Chú ý quan nh ng nh sát phần mã máy Tìm xem các toán hạng tức thời và các đòa y ng chỉ... từ cổng xuất nhập ng ng và hiện ra màn hình Cú pháp : - I ng> đòa chỉ cổng là số hệ 16 tối đa 4 chữ số ng Ex : - I 37 E EC 7 /31 /2011 Chuong 3 Debug 26 Lệnh O (Output) nh Công dụng : xuất 1 byte ra cổng xuất nhập ng ng p Cú pháp :- O ng> đòa chỉ cổng là số hệ 16 tối đa 4 chữ số ng Ex : - O 37 8 5E 7 /31 /2011 Chuong 3 Debug 27 Summary Dùng lệnh D để xem nội dung vùng nhớ... (Unassemble) công dụng : in ra 32 bytes mã máy của ng chương trình trong bộ nhớ ra màn hình dưới lệnh gợi nhớ nh cú pháp : U [address] U [range] Ex : U 100 119 In ra ma øn h ì n h c a ùc chỉ CS:1 lệnh mã máy tư 00 đến C ø đòa S:119 7 /31 /2011 Chuong 3 Debug 15 Lệnh R (Register) nh Công dụng : xem và sửa nội dung thanh ghi ng Cú pháp : - R enter (xem tất cả thanh ghi) xem thanh ghi AX : - R AX xem thanh ghi cờ... cộng và trừ hệ 16 ng Cú pháp : - H Kết quả : hiện ra tổng và hiệu của trò 1 và trò 2 7 /31 /2011 Chuong 3 Debug 23 Lệnh S (Search) nh Công dụng : tìm kiếm trò trong 1 vùng bộ nhớ ng ng Cú pháp : - S ng> ch> Giải thích : tìm kiếm trò có hiện diện trong vùng bộ ng nhớ đã chỉ đònh hay không? Nếu có Debug hiện các đòa chỉ đầu của những nơi có chứa danh sách ch Ex : - S... số 16 từng byte một Dấu - dùng để lùi lại 1 đòa chỉ Space Bar dùng để tới 1 đòa chỉ Enter dùng để kết thúc 7 /31 /2011 Chuong 3 Debug 13 Minh họa lệnh E nh Mục dích : thay đổi nội dung bộ nhớ Cú pháp : - E [address] [ list] Ex : thay đổi 6 bytes bắt đầu ở đòa chỉ 100 thành “ABCDE” - E 100 “ABCDE” Debug lấy đoạn chỉ b ởi DS Nếu ta kh ông qui đò nh đòa chỉ đoạn 7 /31 /2011 Chuong 3 Debug 14 Lệnh U (Unassemble)... Tìm xem các toán hạng tức thời và các đòa y ng chỉ xuất hiện ở đâu trong phần mã máy của lệnh nh Phần mã máy của 2 câu lệnh cuối có gì khác nhaukhi dùng các nh ng toán tử WORD PTR và BYTE PTR 7 /31 /2011 Chuong 3 Debug 29 Summary Dùng lệnh E nhập vào đoạn văn bản sau vào bộ nhớ tại đòa chỉ ng nh DS:0100 8086/8088/80286 Assembly language Copyright 1988, 1886 by Brady Books, a division of Simon, Inc All... tất cả thanh ghi) xem thanh ghi AX : - R AX xem thanh ghi cờ : R F Ex : muốn bật thanh ghi cờ CF và ZF ta nhập CY và ZR 7 /31 /2011 Chuong 3 Debug 16 Lệnh N (Name) nh Công dụng : tạo tập tin cần đọc hay ghi trước ng khi dùng lệnh L hay W ng nh Cú pháp : - N [ thông số] L [đòa chỉ] 7 /31 /2011 Chuong 3 Debug 17 Thí dụ minh họa lệnh N nh Ex : tạo tập tin Love.txt Dùng lệnh R để xác đònh vùng đòa . SANG 0ADD:0110 53 4F 4E 47 54 4F 49 2 0-4 4 55 41 20 45 4D 20 53 SONGTOI DUA EM S 0ADD:0120 41 4E 47 20 53 4F 4E 4 7-5 4 4F 49 20 44 55 41 20 ANG SONGTOI DUA 0ADD:0 130 45 4D 20 53 41 4E 47 2 0-5 3 4F 4E 47. SONG” OFFSET 100H 7 /31 /2011 7 /31 /2011 Chuong 3 Debug Chuong 3 Debug 10 10 KE KE Á Á T QUA T QUA Û Û -F 100 "TOI DUA EM SANG SONG" -D 100 0ADD:0100 54 4F 49 20 44 55 41 2 0-4 5 4D 20 53 41 4E 47. 45 4D 20 5 3- 4 1 4E 47 20 53 4F 4E 47 DUA EM SANG SONG 0ADD:0150 54 4F 49 20 44 55 41 2 0-4 5 4D 20 53 41 4E 47 20 TOI DUA EM SANG 0ADD:0160 53 4F 4E 47 54 4F 49 2 0-4 4 55 41 20 45 4D 20 53 SONGTOI