1. Trang chủ
  2. » Công Nghệ Thông Tin

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 415 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 274 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ret Chu_hoa Endp ;--- Chu_thuong Proc 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 Stri

Trang 1

ret

Chu_hoa Endp

; -

Chu_thuong Proc

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

Trang 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

Trang 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 dx,offset nguon

int 21h

mov ah,0ah

mov dx,offset ktao

int 21h

mov ah,09

mov dx,offset xuongd

Trang 4

int 21h

mov si,offset ktao+2 mov di,offset inxau xor cx,cx

mov cl,[si]

For:

cmp al,13

je bang_Enter_thi_in_ra

cmp al,' '

jne khac_dau_cach

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]

Trang 5

Dau_cach:

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

cmp al,' '

jne Nhay

inc si

Nhay:

call Chu_hoa

mov dx,offset kq int 21h

mov ah,09

mov dx,si

int 21h

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w