Bài thực hành số 5: Làm việc với xâu kí tự - Pdf 70

Bài thực hành số 5
Làm việc với xâu kí tự
Mục đích
 Biết sử dụng các phép toán trên chuỗi
 Biết làm một số thao tác với xâu kí tự (tìm kiếm, đếm từ, chuyển hoa / thường …. )
Tóm tắt lý thuyết
 Cờ hướng DF (Direction Flag) : xác định hướng xử lí chuỗi. Khi DF = 0 (dùng lệnh CLD)
chuỗi được xử lí tăng dần, ngược lại DF = 1 (lệnh STD) chuỗi được xử lí giảm dần.
 Con trỏ chuỗi: DS:SI – địa chỉ nguồn và ES:DI – địa chỉ đích
 Các lệnh trên chuỗi :
1. MOVSB (MOVSW) : chuyển nội dung của byte (word) được định bởi DS:SI đến
byte (word) được chỉ bởi ES: DI. Sau đó SI và DI tự động tăng lên 1 (hoặc 2) nếu cờ
DF = 0 hay giảm 1 (hoặc 2) nếu DF = 1
Ví dụ: giả sử cần chép nội dung chuỗi thứ nhất : ‘HELLO’ vào chuỗi
thứ hai theo thứ tự ngược lại ta làm như sau :
.DATA
STR1 DB ‘HELLO’
STR2 DB 5 DUP(‘?’)
.CODE
MOV AX, @DATA
MOV DS, AX
MOV ES, AX
LEA SI, STR1+4 ; cuối STR1
LEA DI, STR2 ; đầu STR2
STD ; định hướng xử lí giảm
MOV CX, 5
move :
MOVSB
ADD DI,2 ; + 2 do DI bị giảm
; 1 sau lệnh MOVSB
LOOP move

5. SCASB (SCASW): tìm nội dung chứa trong AL (hoặc AX) có trong chuỗi
định bởi ES:DI hay không. Nếu tìm thấy thì cờ ZF sẽ được bật. Sau mỗi
lần thực hiện con trỏ DI sẽ tăng hoặc giảm 1 (hoặc 2) đơn vị.
6. CMPSB (CMPSW) : so sánh byte tại DS:SI và byte tại ES:DI, sau đó tăng
(hoặc giảm) SI và DI 1 (hoặc 2) đơn vị.
Bài tập
1. VCT nhập một chuỗi kí tự và in ra chuỗi theo thứ tự ngược lại. In chiều dài chuỗi.
Ví dụ : Nhập chuỗi : abcd Chuỗi kết quả: dcba Chiều dài chuỗi: 4
2. VCT nhập họ tên .Sau đó biến tất cả thành chữ hoa rồi in ra. Biến tất cả thành chữ thường rồi in
ra.
Ví dụ: Nhập vào chuỗi : Thanh cHi khanG Chuỗi Hoa : THANH CHI KHANG
Chuỗi kết quả thường: thanh chi khang
3. Nhập một chuỗi kí tự tính tần số xuất hiện của các nguyên âm.
Ví dụ : Nhập chuỗi : Thanh Chi Khang Số lần xuất hiện của các nguyên âm là: 3
4. VCT nhập hai chuỗi, liệt kê các kí tự có mặt trong hai chuỗi.
Ví dụ: Nhập chuỗi: computer và chuỗi : informatic
Các kí tự có mặt trong hai chuỗi : o, m, t, r
5. Nhập vào hai chuỗi kí tự, so sánh hai chuỗi (= > < ).
Ví dụ: Chuỗi thứ nhất: forn Chuỗi thứ hai : form
Kết quả : Chuỗi thứ nhất > chuỗi thứ hai.
6. Nhập vào hai chuỗi kí tự, kiểm tra chuỗi thứ nhất là chuỗi con chuỗi tthứ hai không, không phân
biệt hoa thường.
Ví dụ: Chuỗi thứ nhất : form Chuỗi thứ hai: inFoRMatic
Kết quả : Chuỗi thứ nhất là con chuỗi thư hai


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status