Bài giảng cấu trúc máy tính Debug
09/19/1209/19/12Chuong 3 DebugChuong 3 Debug11CHƯƠNG TRÌNH GỢ RỐI DEBUGCHƯƠNG TRÌNH GỢ RỐI DEBUG Dòch được 1 chương trình ngắnDòch được 1 chương trình ngắnMục tiêu Xem các thanh ghi và cờ của CPU Xem sự thay đổi nội dung của các biến Dò tìm trò ở dạng nhò phân hoặc ASCII trong bộ nhớ HỗHỗ trợ luyện tập viết chương trình bằng Assembly 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug22Dạng lệnh của DebugDạng lệnh của Debug <mã lệnh > <thông số><mã lệnh > <thông số>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 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug33DạngDạng lệnh của Debug lệnh của DebugTậ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ố 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug44Tập lệnh của DebugTập lệnh của DebugA <Assemble> :A <Assemble> :cho phép viết từ bàn phím các lệnh mã máy cho phép viết từ bàn phím các lệnh mã máy dưới dạng gợi nhớ.dưới dạng gợi nhớ.A [ <đòa chỉ>]A [ <đòa chỉ>]Ex : - A 100 dòch ở đòa chỉ CS:100hEx : - A 100 dòch ở đòa chỉ CS:100h - A - A dòch ở đòa chỉ hiện tại dòch ở đòa chỉ hiện tại (Debug lấy đòa chỉ đoạn CS)(Debug lấy đòa chỉ đoạn CS) - A DS:2000h - A DS:2000h dòch ở đòa chỉ dòch ở đòa chỉ :DS 2000h:DS 2000h 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug55TThí dụ minh họa lệnh Ahí dụ minh họa lệnh APhải nhập lệnh vào theo từng dòng một và Phải nhập lệnh vào theo từng dòng một và kết thúc bằng Enter.kết thúc bằng Enter.Kết thúc nhập nhấn Enter ở dòng trống.Kết thúc nhập nhấn Enter ở dòng trống. : -Ex A 100 : -Ex 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 21HSEGMENT OFFSETUser gỏ vào 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug66C (Compare)C (Compare)So sánh 2 vùng bộ nhớ và liệt kê các ô nhớ có So sánh 2 vùng bộ nhớ và liệt kê các ô nhớ có nội dung khác nhau.nội dung khác nhau.Cú pháp : C <khoảng> , < đòa chỉ>Ex : - C 100, 200, 3000 : 1000So 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 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug77D (Dump)D (Dump)Hiện nội dung bộ nhớ theo dạng hệ 16 và Hiện nội dung bộ nhớ theo dạng hệ 16 và ASCIIASCII Cách gọi : D <khoảng>Ex : - D F000 : 0 - D ES : 100 - D 100 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug88Lệnh F (Lệnh F ()Fill)FillCú pháp : F <khoảng> <danh sách>Cú pháp : F <khoảng> <danh sách>Công dụng : lấp đầy trò vào vùng nhớ ngay Công dụng : lấp đầy trò vào vùng nhớ ngay tại đòa chỉ mong muốn.tại đòa chỉ mong muốn.Trò nhập vào từng byte một theo hệ 16Dấ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. 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug99Minh họa lệnhMinh họa lệnh F FLắp đầy vùng nhớ tại đòa chỉ offset 100h Lắp đầy vùng nhớ tại đòa chỉ offset 100h chuổi “ Toi dua em sang song”.chuổi “ Toi dua em sang song”.F 100 “TOI DUA EM SANG SONG”OFFSET 100H 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug1010KEÁT QUAÛKEÁT QUAÛ-F 100 "TOI DUA EM SANG SONG"-D 1000ADD:0100 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 TOI DUA EM SANG0ADD:0110 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 SONGTOI DUA EM S0ADD:0120 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 ANG SONGTOI DUA0ADD:0130 45 4D 20 53 41 4E 47 20-53 4F 4E 47 54 4F 49 20 EM SANG SONGTOI0ADD:0140 44 55 41 20 45 4D 20 53-41 4E 47 20 53 4F 4E 47 DUA EM SANG SONG0ADD:0150 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 TOI DUA EM SANG0ADD:0160 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 SONGTOI DUA EM S0ADD:0170 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 ANG SONGTOI DUA [...]... đị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. địa chỉ đầu của những nơi có chứa danh sách. Ex : - S 100 L 1000 ‘DOS’ Ex : - S 100 L 1000 ‘DOS’ 18AF : 0154 18AF : 0154 18AF : 0823 18AF : 0823 Ex2 : - S 2000 2200 13,15,8A, 8 Ex2 : - S 2000 2200 13,15,8A, 8 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 4 4 Tập lệnh của Debug Tập lệnh của Debug A <Assemble>... trình sau ở địa Gỏ vào máy bằng lệnh A, đoạn chương trình sau ở địa chỉ 2000:0100 chỉ 2000:0100 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 7 7 D (Dump) D (Dump) Hiện nội dung bộ nhớ theo dạng hệ 16 và Hiện nội dung bộ nhớ theo dạng hệ 16 và ASCII ASCII . . Cách gọi : D <khoaûng> Ex : - D F000 : 0 - D ES : 100 - D 100 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 6 6 C (Compare) C... 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 12 12 Thí dụ minh họa lệnh Thí dụ minh họa lệnh D D đánh vào lệnh D để xem nội dung vùng nhớ đánh vào lệnh D để xem nội dung vùng nhớ của 30h bytes bộ nhớ từ địa chỉ 0000:0040 của 30h bytes bộ nhớ từ địa chỉ 0000:0040 đến 0000:006F đến 0000:006F - D 0000:0040 006F Địa chỉ bắt đầu - D 0000:0040 L 30 Số bytes 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 2 2 Dạng... <Assemble> : cho phép viết từ bàn phím các lệnh mã máy cho phép viết từ bàn phím các lệnh mã máy dưới dạng gợi nhớ. dưới dạng gợi nhớ. A [ <địa chỉ>] A [ <địa chỉ>] Ex : - A 100 dịch ở địa chỉ CS:100h Ex : - A 100 dịch ở địa chỉ CS:100h - A - A dịch ở địa chỉ hiện tại dịch ở địa chỉ hiện tại (Debug lấy địa chỉ đoạn CS) (Debug lấy địa chỉ đoạn CS) - A DS:2000h - A DS:2000h... 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 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 15 15 ( )Leä nh U Una ssemble ( )Lệ nh U Una ssemble công dụng : in ra 32 bytes mã máy của công dụng : in ra 32 bytes mã máy của chương trình trong bộ nhớ ra màn hình dưới chương trình trong bộ nhớ ra màn hình dưới lệnh gợi nhớ. lệnh gợi nhớ. ... của Debug Dạng lệnh của Debug <mã lệnh > <thông số> <mã lệnh > <thông số> 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 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 26 26 Lệ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 saùnh 101 bytes 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 1 1 CHƯƠNG TRÌNH GỢ RỐI DEBUG CHƯƠNG TRÌNH GỢ RỐI DEBUG Dịch được 1 chương trình ngắn Dịch được 1 chương trình ngắn Mục tiêu Xem các thanh ghi và cờ của CPU Xem sự thay đổi nội dung của các biến D o ø ... ZF ta nhập CY và ZR. CY và ZR. 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 23 23 Leänh H (Hex Arithmethic) Leänh H (Hex Arithmethic) thực hiện phép cộng và trừ hệ 16 thực hiện phép cộng và trừ hệ 16 Cú pháp : - H <trị 1> <trị 2> Kết quả : hiện ra tổng và hiệu của trị 1 và trị 2 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 21 21 Lệnh T (Trace)và P Lệnh T (Trace)và P cú pháp... 09/19/12 09/19/12 Chuong 3 Debug Chuong 3 Debug 24 24 Lệnh S (Search) Lệnh S (Search) Công dụng : tìm kiếm trị trong 1 vùng bộ nhớ. Công dụng : tìm kiếm trị trong 1 vùng bộ nhớ. Cú pháp : - S <khoảng> <danh sách> Cú pháp : - S <khoảng> <danh sách> Giải thích : tìm kiếm trị có hiện diện trong vùng bộ Giải thích : tìm kiếm trị có hiện diện trong vùng bộ nhớ đã chỉ định hay không? Nếu có Debug hiện... 3 Debug Chuong 3 Debug 14 14 Minh họa lệnh E Minh họa lệnh E Mục dích : thay đổi nội dung bộ 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” D e b u g l a á y đ o a ï n c h ỉ b ơ ûi D S N e á u t a k h o ân g q u i đ ị n h đ ị a c h ỉ đ o a ïn 09/19/12 09/19/12 Chuong 3 Debug Chuong . số 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug4 4Tập lệnh của DebugTập lệnh của DebugA <Assemble> :A <Assemble> :cho phép viết từ bàn phím các lệnh mã máy cho. chương trình bằng Assembly 09/19/1209/19/12Chuong 3 DebugChuong 3 Debug2 2Dạng lệnh của DebugDạng lệnh của Debug <mã lệnh > <thông số><mã lệnh