Quá trình hình thành giáo trình hướng dẫn sử dụng các hàm có sẵn trong win p4 docx

5 413 0
Quá trình hình thành giáo trình hướng dẫn sử dụng các hàm có sẵn trong win p4 docx

Đang tải... (xem toàn văn)

Thông tin tài liệu

ret Chu_hoa Endp ; Chu_thuong Proc mov al,[si] cmp al,"A" jb Boqua cmp al,"Z" ja Boqua add byte ptr [si],32 Boqua: ret Chu_thuong Endp ; Code Ends End Start a.Chuyển một chuỗi  MOVSB (MOVe String Byte-by - Byte) Mô tả: MOVSB copy từng byte một từ một địa chỉ nguồn tới địa chỉ đích. Nguồn được trỏ bởi DS:SI đích được trỏ bởi ES:DI. Sau khi copy một byte, SI và DI được tự động tăng/giảm 1 tuỳ thuộc cờ DF là UP/DN. Lệnh MOVSB thường được sử dụng với lệnh REP để copy một dãy CX bytes. Ví dụ: REP MOVSB ;lặp lại lệnh MOVSB CX lần b.Lưu chuỗi Lệnh STOSB (STOre Byte in AL at String) ;lưu chuỗi các byte Lệnh này là lệnh copy nội dung của AL vào địa chỉ nhớ do ES:DI trỏ tới, sau đó DI tăng/giảm 1 tuỳ theo cờ DF bằng UP/DN. c.Lệnh Duyệt chuỗi (Scan String) Lệnh : SCASB ;Duyệt một chuỗi các byte Lệnh SCASB lấy AL trừ đi toán hạng đích là byte được trỏ bởi ES:DI. Kết quả của phép trừ không được giữ lại, chỉ có các cờ được thiết lập. Sau đó DI được giảm/Tăng 1 tuỳ theo cờ DF bằng UP/DN. Lệnh SCASB thường được sử dụng cùng REPE/REPNZ/REPZ để lặp lại lệnh SCASB CX lần hoặc lặp tới khi nó phát hiện thấy 2 toán hạng là bằng/khác. Tường tự với lệnh SCASB là SCASW, khác là thao tác với toán hạng word Sau đây ta xét một ví dụ về Chuẩn hoá xâu: Các việc cần làm là: - Xử lý các dấu cách, nếu dấu có nhiều dấu thì chỉ lấy lấy một dấu cách - Ký tự đầu của xâu thì viết hoa - Sau dấu cách thì viết hoa, các khác thì viết thường. Chuan_hoa.asm ;Chuan hoa xau Code segment assume cs:Code,ds:Code org 100h Start: Jmp Begin nguon db "Nhap xau vao :$" xuongd db 0ah,0dh,"$" ktao db 254,0,254 dup(0) inxau db 254 dup(0) kq db "Ket qua sau chuan hoa la= $" Begin: Call CLRSCR mov ah,09h mov dx,offset nguon int 21h mov ah,0ah mov dx,offset ktao int 21h mov ah,09 mov dx,offset xuongd int 21h mov si,offset ktao+2 mov di,offset inxau xor cx,cx mov cl,[si] For: mov al,[si] cmp al,13 je bang_Enter_thi_in_ra cmp al,' ' jne khac_dau_cach mov al,[si+1] cmp al,' ' je Dau_cach_tiep movsb jmp For Dau_cach_tiep: inc si jmp For khac_dau_cach: mov al,[si-1] cmp al,' ' je Dau_cach mov al,[si+1] jmp Tiep Dau_cach: mov al,[si+1] call Chu_hoa movsb jmp For Tiep: call Chu_thuong movsb jmp For bang_Enter_thi_in_ra: mov byte ptr[di],'$' mov si,offset inxau mov al,[si] cmp al,' ' jne Nhay inc si Nhay: call Chu_hoa mov ah,09 mov dx,offset kq int 21h mov ah,09 mov dx,si int 21h . Chuẩn hoá xâu: Các việc cần làm là: - Xử lý các dấu cách, nếu dấu có nhiều dấu thì chỉ lấy lấy một dấu cách - Ký tự đầu của xâu thì viết hoa - Sau dấu cách thì viết hoa, các khác thì viết. Lệnh : SCASB ;Duyệt một chuỗi các byte Lệnh SCASB lấy AL trừ đi toán hạng đích là byte được trỏ bởi ES:DI. Kết quả của phép trừ không được giữ lại, chỉ có các cờ được thiết lập. Sau đó DI. MOVSB thường được sử dụng với lệnh REP để copy một dãy CX bytes. Ví dụ: REP MOVSB ;lặp lại lệnh MOVSB CX lần b.Lưu chuỗi Lệnh STOSB (STOre Byte in AL at String) ;lưu chuỗi các byte Lệnh

Ngày đăng: 29/07/2014, 13:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan