2
1) Viết ra màn hình ngày tháng của BIOS trong bộ nhớ RAM: PROMPT> DEBUG[enter] -D FFFF:0006 L 8[enter] (Hiện FFFFh, offset 6h, độ dài 8 byte) In my case, the result reported was "1/10/96." -Q[enter] (Thoát khỏi debug) 2) Tìm dòng chữ “COM” trong file nhị phân command.com trong bộ nhớ RAM: PROMPT> DEBUG C:\Win95\Command.com[enter] -S 0 L FFFF "COM"[enter](Tìm từ “COM” từ địa chỉ 0 với độ dài tìm kiếm FFFFh) -Q[enter] (Thoát khỏi debug) (Chú ý: Việc tìm kiếm này là phân biệt hoa thường!) 3) Thử phép toán số học cho số cơ số 16: PROMPT> DEBUG[enter] -H 9 1[enter] (Thực hiện cộng và trừ hai số dưới dạng cơ số 16, 9h+1h=Ah và 9h- 1h=8h) Kết quả trả về: 000A 0008 -Q[enter] (Thoát khỏi debug) 4) Xem các thanh ghi của x86: PROMPT> DEBUG[enter] -R[enter] (Liệt kê các thanh ghi và giá trị của các cờ) -Q[enter] (Thoát khỏi debug) Ý nghĩa của các thanh ghi: AX Thanh ghi tổng BX Thanh ghi cơ sở CX Thanh ghi đếm DX Thanh ghi dữ liệu DS Thanh ghi đoạn dữ liệu ES Thanh ghi đoạn bổ sung (Extra) SS Thanh ghi đoạn công cụ (Battery) CS Thanh ghi đoạn mã lệnh BP Thanh ghi con trỏ cơ sở SI Thanh ghi chỉ mục nguồn DI Thanh ghi chỉ mục đích SP Thanh ghi con trỏ công cụ (Battery) IP Thanh ghi con trỏ của chỉ thị tiếp theo F Thanh ghi cờ 5) Viết chương trình bằng ngôn ngữ máy In một ký tự: PROMPT> DEBUG[enter] -E 100[enter] (Nhập một chương trình mới bắt đầu từ địa chỉ 100h – có cùng giá trị với thanh ghi IP) B4[space]02[space] (Gán giá trị 02 thanh ghi AH ) B2[space]41[space] (Gán giá trị 41h ( ký tự A) vào thanh ghi DL) CD[space]21[space] (Gọi ngắt 21 DOS để in ký tự đặt trong DL) CD[space]20[enter] (Chấm dứt chương trình bằng ngắt 20)

AssemblyHJHJH

  • Upload
    vocuc

  • View
    213

  • Download
    1

Embed Size (px)

DESCRIPTION

JHJHJHJHJHJHJ

Citation preview

1) Viết ra màn hình ngày tháng của BIOS trong bộ nhớ RAM:

PROMPT> DEBUG[enter] -D FFFF:0006 L 8[enter] (Hiện FFFFh, offset 6h, độ dài 8 byte)In my case, the result reported was "1/10/96."-Q[enter] (Thoát khỏi debug)

2) Tìm dòng chữ “COM” trong file nhị phân command.com trong bộ nhớ RAM:

PROMPT> DEBUG C:\Win95\Command.com[enter]-S 0 L FFFF "COM"[enter](Tìm từ “COM” từ địa chỉ 0 với độ dài tìm kiếm FFFFh)-Q[enter] (Thoát khỏi debug)(Chú ý: Việc tìm kiếm này là phân biệt hoa thường!)

3) Thử phép toán số học cho số cơ số 16:

PROMPT> DEBUG[enter]-H 9 1[enter] (Thực hiện cộng và trừ hai số dưới dạng cơ số 16, 9h+1h=Ah và 9h-1h=8h)Kết quả trả về: 000A 0008-Q[enter] (Thoát khỏi debug)4) Xem các thanh ghi của x86:

PROMPT> DEBUG[enter]-R[enter] (Liệt kê các thanh ghi và giá trị của các cờ)-Q[enter] (Thoát khỏi debug)

Ý nghĩa của các thanh ghi:AX Thanh ghi tổngBX Thanh ghi cơ sởCX Thanh ghi đếmDX Thanh ghi dữ liệuDS Thanh ghi đoạn dữ liệuES Thanh ghi đoạn bổ sung (Extra)SS Thanh ghi đoạn công cụ (Battery)CS Thanh ghi đoạn mã lệnhBP Thanh ghi con trỏ cơ sởSI Thanh ghi chỉ mục nguồn DI Thanh ghi chỉ mục đíchSP Thanh ghi con trỏ công cụ (Battery)IP Thanh ghi con trỏ của chỉ thị tiếp theo F Thanh ghi cờ

5) Viết chương trình bằng ngôn ngữ máy In một ký tự:

PROMPT> DEBUG[enter]-E 100[enter] (Nhập một chương trình mới bắt đầu từ địa chỉ 100h – có cùng giá trị với thanh ghi IP)B4[space]02[space] (Gán giá trị 02 thanh ghi AH )B2[space]41[space] (Gán giá trị 41h ( ký tự A) vào thanh ghi DL)CD[space]21[space] (Gọi ngắt 21 DOS để in ký tự đặt trong DL)CD[space]20[enter] (Chấm dứt chương trình bằng ngắt 20)-G[enter] (Thực hiện chương trình in ký tự “A” ra màn hình)Sau đó, bạn sẽ thấy "Program terminated normally".-U 100[enter] (Xem chỉ thị lệnh dưới dạng gợi nhớ):0100 B402 MOV AH,02:0102 B241 MOV DL,41:0104 CD21 INT 21 :0106 CD20 INT 20)

bắt đầu ở vị trí 100h)-D 200[enter] (Lưu ý rằng vị trí của ký hiệu $ của dữ liệu là 020Bh)

-H 20B 100[enter] (Lấy giá trị 20Bh-100h=10Bh; độ dài chương trình là 267-byte)-R BX[enter] (Truy nhập giá trị của thanh ghi BX):0000[enter] (Đặt 0000h vào BX vì độ dài chương trình là BX*65526+CX)-R CX[enter] (Truy nhập giá trị thanh ghi CX, với độ dài chương trình là 010Bh byte):010B[enter] (Bây giờ bạn có thể lưu 0000:010Bh byte, tức 267 byte vào 1 file)-N printhw.com[enter] (Tên của file được lưu vào đĩa) -W[enter] (Viết 10Bh byte này vào file)-Q[enter] (Thoát khỏi Debug)

PROMPT> DIR printhw.com[enter]Kích cỡ của fìle sẽ phải là 267 byte (10Bh byte).

PROMPT> printhw.com[enter] Chạy chương trình – Nó sẽ in xâu "Hello,World" ra màn hình:

Bài 1.Sử dụng Debug để in ra màn hình chuỗi ký tự 'abc', và ghi file nhị phân vừa soạn ra tệp có tên abc.com

Bài 2.Soạn thảo một file văn bản có tên hello.txt. Sử dụng Debug để tìm xem số lần xuất hiện từ "hello" trong file văn bản hello.txt.

Bài 3.Sử dụng màn hình debug để chuyển màn hình từ chế độ văn bản thành chế độ đồ hoạ 320x200x8.(Gợi ý: Đặt thanh ghi AX=13h, gọi ngắt 10h)