intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Asfaf AfaFaf | Ngày: | Loại File: PDF | Số trang:5

61
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: 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

  1. 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.
  2. 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
  3. - 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
  4. 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
  5. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2