SO SÁNH HAI CHUỖI OLDPASS VÀ NEWPASS

3.1. So sánh hai chuỗi oldpass và newpass. Nếu hai chuỗi này giống nhau thì kết luận

giống nhau và ngược lại.

Soạn thảo như đoạn chương trình trên và lưu với tên là BAI_6A.ASM.

-

Biên dịch và cho chạy file BAI_6A.ASM để kiểm tra và xem kết quả.

-

Trong macro writeln, các lệnh nào có chức năng xuống dòng sau khi in xong chuỗi

ký tự.

-

Mục đích của việc khai báo LOCAL bien1 trong macro là gì?

-

Hãy cho biết địa chỉ của DS và ES có giống nhau hay không? Điều này được thể

hiện qua các câu lệnh nào trong đoạn chương trình mẫu? Tại sao người ta không

khai báo DS và ES trên các phân đoạn khác nhau ?

-

Tiền tố REPE trong đoạn chương trình mẫu trên có ý nghĩa như thế nào?

-

Ta có thể thay đổi lệnh REPE CMPSB thành một nhóm lệnh khác được không?

Nếu được hãy thay đổi nó, biên dịch và chạy chương trình để kiểm chứng.

-

Thử thay đổi nội dung ở oldpass và newpass sao cho chúng giống nhau. Biên dịch

và chạy chương trình xem kết quả, sau đó hãy giải thích cơ chế làm việc của đoạn

lệnh từ lệnh CLD cho đến lệnh REPE CMPSB.

-

Giả sử, người ta muốn thay thế lệnh cmpsb thành lệnh cmpsw, các bạn có cần sửa

đổi các lệnh nào trong chương trình hay không ? Tại sao ?. Biên dịch và chạy

chương trình để kiểm chứng.

-

Lệnh jmp thoat trong đoạn chương trình trên có nhiệm vụ gì ?. Thử bỏ lệnh jmp

thoat sau đó biên dịch và chạy chương trình xem kết quả.

-

Hãy sửa

đổi file BAI_6A.ASM và lưu với tên BAI_6A1.ASM để có thể thực hiện

được nhiệm vụ sau: nhập vào một chuỗi ký tự có tối đa 10 ký tự, trong lúc nhập chỉ

hiện thị ra ký tự “*”. Khi đã nhập đủ 10 ký tự hoặc khi gặp phím ESC thì sẽ in ra

các ký tự đã nhập ra màn hình. Gợi ý: dùng hàm 08h, 02h hoặc 09h của int 21h,

lệnh loop, cmp, … Cần phải khai báo dùng đệm để lưu các ký tự đã nhập.

Ths. Nguyễn Hứa Duy Khang, Ks. Trần Hữu Danh

28