CHÖÔNG TRÌNH GÔÕ ROÁI DEBUG CHÖÔNG TRÌNH GÔÕ ROÁI DEBUG Dòch ñöôïc 1 chöông trình ngaén Muïc tieâu Xem caùc thanh ghi vaø côø cuûa CPU Xem söï thay ñoåi noäi dung cuûa caùc bieán Doø tìm trò ôû daïng[.]
CHƯƠNG TRÌNH GỢ RỐI DEBUG Mục tiêu Dịch chương trình ngắn Xem ghi cờ CPU Xem thay đổi nội dung biến ù h n ä o b g n o tr I I C S ëc A a o h n â a h p ò h n g n ï a d û Dò tìm trị ly b m e s s A èng a b h n ì r t g n ö h c t ie v p ä a t n ä e Hỗ trợ luy 07/10/23 Chuong Debug Dạng lệnh Debug Trong mã lệnh chữ A,B,C,D,E, thông số thay đổi tùy theo lệnh Các thông số : Địa : địa đầy đủ segment : offset hay cần offset đủ Segment dùng tên ghi Ex : F000:0100 DS: 200 07/10/23 0AF5 Chuong Debug Dạng lệnh Debug Tập tin : tham khảo tên tập tin đầy đủ, phải có tên tập tin Danh sách : Là hay nhiều trị byte chuổi cách dấu phẩy Khoảng : tham khảo đến vùng nhớ Trị : số hệ 16 có tối đa có chữ số 07/10/23 Chuong Debug Tập lệnh Debug A : cho phép viết từ bàn phím lệnh mã máy dạng gợi nhớ A [ ] Ex : - A 100 dịch địa CS:100h - A dịch địa (Debug lấy địa đoạn CS) - A DS:2000h dịch địa DS:2000h 07/10/23 Chuong Debug Thí dụ minh họa lệnh A Phải nhập lệnh vào theo dòng kết thúc Enter Kết thúc nhập nhấn Enter dòng trống Ex : - A 100 User gỏ vào 5514:0100 MOV AH, 5514:0102 MOV DL, 41 5514:0104 INT 21H SEGMENT 07/10/23 OFFSET Chuong Debug C (Compare) So sánh vùng nhớ liệt kê ô nhớ có nội dung khác Cú pháp : C , < đị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 saùnh 101 bytes 07/10/23 Chuong Debug D (Dump) Hiện nội dung nhớ theo dạng hệ 16 ASCII Cách gọi : D Ex : - D F000 : - D ES : 100 - D 100 07/10/23 Chuong Debug Leänh F (Fill) Cú pháp : F Công dụng : lấp đầy trị vào vùng nhớ địa mong muốn Trị nhập vào byte theo hệ 16 Dấu trừ (-) dùng để lùi lại địa SPACE BAR dùng để tới địa ENTER để kết thúc 07/10/23 Chuong Debug Minh họa lệnh F Lắp đầy vùng nhớ địa offset 100h chuổi “ Toi dua em sang song” F 100 “TOI DUA EM SANG SONG” OFFSET 100H 07/10/23 Chuong Debug KẾT QUẢ -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 0ADD:0110 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 0ADD:0120 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 0ADD:0130 45 4D 20 53 41 4E 47 20-53 4F 4E 47 54 4F 49 20 0ADD:0140 44 55 41 20 45 4D 20 53-41 4E 47 20 53 4F 4E 47 0ADD:0150 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 0ADD:0160 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 0ADD:0170 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 07/10/23 Chuong Debug TOI DUA EM SANG SONGTOI DUA EM S ANG SONGTOI DUA EM SANG SONGTOI DUA EM SANG SONG TOI DUA EM SANG SONGTOI DUA EM S ANG SONGTOI DUA 10 Leänh R (Register) Công dụng : xem sửa nội dung ghi Cú pháp : - R enter (xem tất ghi) xem ghi AX : - R AX xem ghi cờ : R F Ex : muốn bật ghi cờ CF ZF ta nhập CY ZR 07/10/23 Chuong Debug 16 Lệnh N (Name) Công dụng : tạo tập tin cần đọc hay ghi trước dùng lệnh L hay W Cú pháp : - N [ thông số] L [địa chỉ] 07/10/23 Chuong Debug 17 Thí dụ minh họa lệnh N Ex : tạo tập tin Love.txt Dùng lệnh R để xác định vùng địa dành cho User Dùng lệnh để đưa câu thông báo “ I love you more than I can say’ địa 2000:100 Dùng lệnh D để kiểm tra vùng nhớ địa 2000:100 Dùng lệnh N để đặt tên tập tin đóa - N Love.txt Dùng lệnh R để định số byte cần thiết ghi lên đóa ghi BX CX Cụ thể trường hợp số byte cần ghi 1Eh byte BX = 0000 CX = 1E Dùng lệnh W 2000:100 để ghi liệu nhập vào tập tin địa nhớ 2000:100 07/10/23 Chuong Debug 18 Thoát khỏi Debug gọi lại tập tin theo cách sau : C :\> Debug Love.txt tìm xem Debug nạp tập tin Love.txt vào chỗ nhớ 07/10/23 Chuong Debug 19 Lệnh W (Write) Cú pháp : W [address] Thường sử dụng chung với lệnh N Ex : tạo tập tin có tên Love.txt Bước : dùng lệnh E để đưa câu ‘I love you more than I can say” vào ô nhớ địa 100 Bước : dùng lệnh D để kiểm tra lại địa 100 Bước : dùng lệnh N để đặt tên tập tin : - N Love.txt Bước : dùng lệnh R để định số byte cần ghi lên đóa ghi BX CX (BX chứa 16 bit cao, CX chứa 16 bit thấp) số byte cần ghi 1Eh Bước : dùng lệnh W để ghi câu nhập vào vùng nhớ có địa bắt đầu 100 07/10/23 Chuong Debug 20