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
758,5 KB
Nội dung
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 ộ b g n o tr II C S ặc A o h n â h p ị h n g n d Dị tìm trị ly b m e s s A g n ằ b h n rì t g n t ch ế i v p ậ t n ệ y u l ợ r Hỗ t 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 03/28/21 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ố 03/28/21 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 03/28/21 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ỏ 5514:0100 MOV AH, vào 5514:0102 MOV DL, 41 5514:0104 INT 21H SEGMENT 03/28/21 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 03/28/21 So sánh 101 bytesChuong 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 03/28/21 Chuong Debug Lệnh F (Fill) Cú pháp : F Công dụng : lấp đầy trị vào vùng nhớ địa Trị nhập vào byte mong muốn 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 03/28/21 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 03/28/21 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 03/28/21 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 Lệ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 03/28/21 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ỉ] 03/28/21 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 03/28/21 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ớ 03/28/21 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 03/28/21 Chuong Debug 20 Lệnh T (Trace)và P cú pháp : - T [= ] [số Mục đíchlần] : dùng để chạy hay nhiều lần lệnh nhớ Ex : - T = 3000:1000 Ex : - T = 3000:1000 03/28/21 Chuong Debug 21 Lệnh L (Load) nạp tập tin nạp sector luận lý từ đóa vào nhớ Cú pháp : - L [ ] Dạng : có địa dùng để nạp tập tin Tên tập tin phải gán trước lệnh N Dạngtin : có đầược đủ thông số ,chỉ dùng để đọc Tập gán địa offset sector luận lý đóa vào nhớ 100h Đóa : = ổ đóa A, =1 ổ đóa B, =2 ổ đóa C … 03/28/21 Chuong Debug 22 Lệnh H (Hex Arithmethic) thực phép cộng trừ hệ Cú pháp : - H16 Kết : tổng hiệu trị trị 03/28/21 Chuong Debug 23 Lệnh S (Search) Công dụng : tìm kiếm trị vùng nhớ Cú pháp : - S Giải thích : tìm kiếm trị có diện vùng nhớ định hay không? Nếu có Debug địa đầu nơi có chứa danh sách Ex : - S 100 L 1000 ‘DOS’ 18AF : 0154 18AF : 0823 Ex2 : - S 2000 2200 13,15,8A, 03/28/21 Chuong Debug 24 Lệnh M (Move) Công dụng : chép nội dung vùng nhớ đến địa khác Cú pháp : - M Ex : - M 100 105 200 Chép bytes từ DS:100 đến DS:200 Ex2 : - M CS:100 L 50 ES:300 Cheùp 50 bytes từ CS:100 đến ES:300 03/28/21 Chuong Debug 25 Lệnh I (Input) Công dụng : nhập byte từ cổng xuất nhập hình Cú pháp : - I địa cổng số hệ 16 tối đa chữ số Ex : - I 37E EC 03/28/21 Chuong Debug 26 Leänh O (Output) Công dụng : xuất byte cổng xuất nhập Cú pháp :- O địa cổng số hệ 16 tối đa chữ số Ex : - O 378 03/28/21 5E Chuong Debug 27 Summary Dùng lệnh D để xem nội dung vùng nhớ địa ROM BIOS F000:0000 Tương tự xem nội dung vùng nhớ RAM hình địa B800:0000; bảng vector ngắt quãng 0000:0000 Gỏ vào máy lệnh A, đoạn chương trình sau địa 2000:0100 03/28/21 Chuong Debug 28 Summary 2000:0100MOV AL,32 2000:0102 MOV AH, 4F 2000:0104 MOV CX, [200] 2000:0108 MOV WORD PTR [1800], 2000:010EMOV BYTE PTR [1800], 2000:0113 Xem lại đoạn chương trình vừa đánh lệnh U Chú ý quan sát phần mã máy Tìm xem toán hạng tức thời địa xuất đâu phần mã máy lệnh Phần mã máy câu lệnh cuối có khác nhaukhi dùng toán tử WORD PTR BYTE PTR 03/28/21 Chuong Debug 29 Summary Dùng lệnh E nhập vào đoạn văn sau vào nhớ địa DS:0100 8086/8088/80286 Assembly language Copyright 1988, 1886 by Brady Books, a division of Simon, Inc All right reserved, including the of reproduction in whole or in part, in any form (chú ý ký tự đầu dòng xuống dòng có mã ASCCI laø 0D vaø 0A) 03/28/21 Chuong Debug 30 ... [1800], 2000:0113 Xem lại đoạn chương trình vừa đánh lệnh U Chú ý quan sát phần mã máy Tìm xem toán hạng tức thời địa xuất đâu phần mã máy lệnh Phần mã máy câu lệnh cuối có khác nhaukhi dùng toán tử... 0000 CX = 1E Dùng lệnh W 2000:100 để ghi liệu nhập vào tập tin địa nhớ 2000:100 03/28/21 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... Chuong Debug 27 Summary Dùng lệnh D để xem nội dung vùng nhớ địa ROM BIOS F000:0000 Tương tự xem nội dung vùng nhớ RAM hình địa B800:0000; bảng vector ngắt quãng 0000:0000 Gỏ vào máy lệnh A, đoạn chương