GIÁO TRÌNH CẤU TRÚC MÁY TÍNH LẬP TRÌNH HỢP NGỮ_CHƯƠNG 13
lượt xem 12
download
Tham khảo tài liệu 'giáo trình cấu trúc máy tính lập trình hợp ngữ_chương 13', công nghệ thông tin, phần cứng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: GIÁO TRÌNH CẤU TRÚC MÁY TÍNH LẬP TRÌNH HỢP NGỮ_CHƯƠNG 13
- Chương 13 :LẬP TRÌNH XỬ LÝ MẢNG & CHUỔI • GiỚI THIỆU • CỜ HƯỚNG DF • CÁC LỆNH THIẾT LẬP VÀ XÓA CỜ HƯỚNG • CÁC LỆNH THAO TÁC TRÊN CHUỔI • MỘT SỐ THÍ DỤ MINH HỌA •THƯ ViỆN LIÊN QUAN ĐẾN CHUỔI Chương 14 Lập trình XL Chuỗi 1
- GiỚI THIỆU CHUỖI Trong ASM 8086 khái niệm chuỗi bộ nhớ hay chuỗi là 1 mảng các byte hay word. Các lệnh thao tác với chuỗi cũng được thiết kế cho các thao tác với mảng. Chương 14 Lập trình XL Chuỗi 2
- Cờ hướng DF Cờ định hướng (Direction Flag) : xác định hướng cho các thao tác chuỗi. DF=0 chuỗi được xử lý theo chiều tăng tức địa chỉ vùng nhớ chứa chuỗi tăng dần. (chuỗi được xử lý từ trái qua phải). DF=1 chuỗi được xử lý theo chiều tăng tức địa chỉ vùng nhớ chứa chuỗi giảm dần. (chuỗi được xử lý từ phải qua trái). Trong DEBUG DF=0 ký hiệu là UP DF=1 ký hiệu là DN Chương 14 Lập trình XL Chuỗi 3
- LỆNH LIÊN QUAN ĐẾN CỜ HƯỚNG CLD (CLEAR DIRECTION FLAG) XÓA CỜ HƯỚNG DF =0 STD (SET DIRECTION FLAG) THIẾT LẬP CỜ HƯỚNG DF=1 Chương 14 Lập trình XL Chuỗi 4
- Chương 14 Lập trình XL Chuỗi 5
- Trước khi sử dụng các lệnh xử lý chuỗi, ta phải xác định hướng xử lý chuỗi bằng cách set hay clear cờ hướng. Lệnh đặt cờ hướng : CLD : xóa cờ hướng, chuổi được xử lý từ trái phải STD : đặt cờ hướng, chuổi được xử lý từ phải trái CON TRỎ CHUỖI Chứa địa chỉ chuỗi nguồn DS:SI ES:DI Chứa địa chỉ chuỗi đích Chương 14 Lập trình XL Chuỗi 6
- CÁC THAO TÁC XỬ LÝ CHUỖI NHẬP CHUỔI Input : AH = 0AH, ngắt 21H DS:DX = địa chỉ của buffer, trong đó buffer[0] là kích thước tối đa của chuỗi, buffer[1] sẽ là kích thước dữ liệu nhập. Output : Chuỗi buffer chứa nội dung nhập vào từ buffer[2] trở đi Yêu cầu xem thêm các chức năng AH = 3FH và AH = 40H của ngắt 21H. Chương 14 Lập trình XL Chuỗi 7
- Chương 14 Lập trình XL Chuỗi 8
- NHẬP CHUỖI Chương 14 Lập trình XL Chuỗi 9
- NHẬP CHUỔI Ta cũng có thễ dùng hàm 1 INT 21h đọc 1 ký tự từ bàn phím để nhập 1 chuỗi bằng cách dùng vòng lặp và lưu chuổi bằng lệnh STOSB. STOSB (STORE STRING BYTE) CHUYỂN NỘI DUNG AL ĐẾN BYTE ĐƯỢC TRỎ LƯU CHUỖI CÁC BYTES BỞI ES:DI. SAU KHI LỆNH ĐƯỢC THỰC HiỆN DI TĂNG 1 NẾU DF=0 HoẶC GiẢM 1 NẾU DF =1 Chương 14 Lập trình XL Chuỗi 10
- NHẬP CHUỔI Ta cũng có thễ dùng hàm 1 Int 21h đọc 1 ký tự từ bàn phím để nhập 1 chuỗi bằng cách dùng vòng lặp và lưu chuổi bằng lệnh STOSW. STOSW (STORE STRING WORD) CHUYỂN NỘI DUNG AX ĐẾN WORD ĐƯỢC TRỎ LƯU CHUỖI CÁC WORD BỞI ES:DI. SAU KHI LỆNH ĐƯỢC THỰC HiỆN DI TĂNG HAY GiẢM 2 TÙY VÀO DF. Chương 14 Lập trình XL Chuỗi 11
- THÍ DỤ .MODEL SMALL .STACK 100H .DATA STRING1 DB 'HELLO' .CODE MAIN PROC MOV AX,@DATA MOV ES,AX LEA DI, STRING1 ; khởi tạo ES CLD ; xử lý từ trái phải MOV AL,'A' STOSB ; AL chứa ký tự cần lưu STOSB ; lưu ký tự ‘A’ MOV AH,4CH ; lưu ký tự thứ 2 INT 21H MAIN ENDP END MAIN Chương 14 Lập trình XL Chuỗi 12
- THÍ DỤ . READSTR PROC ELSE1 : Giải thích : STOSB DI chứa offset của chuỗi PUSH AX INC BX BX chứa số ký tự nhập PUSH DI READ : 8H mã ASCII của Backspace CLD INT 21H không lưu nó vào chuỗi XOR BX,BX JMP LAP tăng số ký tự lên 1 MOV AH,1 ENDLAP : Đúng lùi con trỏ DI INT 21H POP DI giảm số ký tự nhập được LAP: POP AX RET CMP AL,0DH READSTR ENDP JE ENDLAP CMP AL,8H JNE ELSE1 DEC DI DEC BX JMP READ Chương 14 Lập trình XL Chuỗi 13
- NHẬP XUẤT CHUỖI HiỂN THỊ CHUỖI AH = 09, ngắt 21H Vào : DX = địa chỉ offset của chuỗi. Chuỗi phải kết thúc bằng kí tự ‘$’. Chú ý : thay vì dùng lệnh MOV OFFSET ta có thể dùng lệnh LEA. Chương 14 Lập trình XL Chuỗi 14
- CÁC THAO TÁC XỬ LÝ CHUỔI For counter Do Nạp chuổi cần hiển thị HiỂN THỊ CHUỖI vào AL Chuyển vào DL Hiển thị ký tự EndFor Nạp 1 chuổi Chương 14 Lập trình XL Chuỗi 15
- LODSB (LOAD STRING BYTE) NẠP 1 CHUỖI CÁC BYTES CHUYỂN BYTE TẠI ĐỊA CHỈ DS:SI AL SI TĂNG 1 NẾU DF=0 SI GiẢM 1 NẾU DF =1 Chương 14 Lập trình XL Chuỗi 16
- THÍ DỤ STRING1 DB ‘ABC’ MOV AX,@DATA MOV DS,AX LEA SI, STRING1 CLD LODSB NẠP BYTE THỨ 1 VÀ THỨ 2 AL LODSB ……. Chương 14 Lập trình XL Chuỗi 17
- LODSW (LOAD STRING WORD) NẠP 1 CHUỖI CÁC WORD CHUYỂN WORD TẠI ĐỊA CHỈ DS:SI AX SI TĂNG HAY GiẢM TÙY TRẠNG THÁI DF Chương 14 Lập trình XL Chuỗi 18
- THÍ DỤ Hiển thị chuỗi nhập DISPSTR PROC PUSH AX PUSH BX PUSH CX EXIT : PUSH DX POP SI PUSH SI POP DX MOV CX, BX POP CX JCXZ EXIT POP BX CLD POP AX MOV AH,2 RET LAP : DISPSTR ENDP LODSB MOV DL, AL INT 21H LOOP LAP Chương 14 Lập trình XL Chuỗi 19
- CHƯƠNG TRÌNH HÒAN CHỈNH Viết chương trình nhập 1 chuỗi ký tự tối đa 80 ký tự, hiển thị 15 ký tự của chuỗi đã nhập ở dòng kế. .MODEL SMALL .STACK 100H .DATA LEA SI, STRING1 STRING1 DB 80 DUP(0) MOV BX, 15 XDONG DB 0DH,0AH,’$’ CALL DISPSTR .CODE MOV AX,4C00H MAIN PROC INT 21H MOV AX,@DATA MAIN ENDP MOV DS,AX ; READSTR PROC …………… MOV ES,AX ; DISPSTR PROC LEA DI, STRING1 ……………… CALL READSTR END MAIN LEA DX,XDONG MOV AH,9 INT 21H Chương 14 Lập trình XL Chuỗi 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Cấu trúc máy tính toàn tập
130 p | 576 | 236
-
Giáo trình Cấu trúc máy tính - Nguyễn Hữu Lộc
126 p | 296 | 85
-
Giáo trình Cấu trúc máy tính: Phần 2 - Tống Văn On (chủ biên)
282 p | 212 | 63
-
Giáo trình Cấu trúc máy tính (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Trình độ: Trung cấp) - Trường Cao đẳng nghề Cần Thơ
78 p | 23 | 13
-
Giáo trình Cấu trúc máy tính (Nghề: Sửa chữa và lắp ráp máy tính - Cao đẳng): Phần 1 - Trường Cao đẳng Cơ điện Xây dựng Việt Xô
67 p | 36 | 13
-
Giáo trình Cấu trúc máy tính (Nghề: Công nghệ thông tin - Cao đẳng) - Trường Cao đẳng nghề Đồng Tháp
108 p | 33 | 11
-
Giáo trình Cấu trúc máy tính - CĐ Nghề Công Nghiệp Hà Nội
124 p | 64 | 11
-
Giáo trình Cấu trúc máy tính - CĐN Công nghiệp Hà Nội
124 p | 52 | 10
-
Giáo trình Cấu trúc máy tính (Nghề: Quản trị mạng máy tính - Cao đẳng) - Trường Cao đẳng Cộng đồng Đồng Tháp
108 p | 27 | 10
-
Giáo trình Cấu trúc máy tính (Nghề: Ứng dụng phần mềm - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Cần Thơ
78 p | 14 | 10
-
Giáo trình Cấu trúc máy tính (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 2 - Trường Cao đẳng Cơ điện Xây dựng Việt Xô
62 p | 25 | 9
-
Giáo trình Cấu trúc máy tính (Nghề: Kỹ thuật sửa chữa và lắp ráp máy tính - Trình độ: Trung cấp/Cao đẳng) - CĐ Kỹ thuật Công nghệ Quy Nhơn
42 p | 14 | 7
-
Giáo trình Cấu trúc máy tính (Nghề: Tin học văn phòng - Trung cấp): Phần 1 - Trường Cao đẳng Cơ điện Xây dựng Việt Xô
66 p | 24 | 6
-
Giáo trình Cấu trúc máy tính (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 1 - Trường Cao đẳng Cơ điện Xây dựng Việt Xô
66 p | 21 | 6
-
Giáo trình Cấu trúc máy tính (Nghề: Tin học văn phòng - Cao đẳng): Phần 1 - Trường Cao đẳng Cơ điện Xây dựng Việt Xô
66 p | 25 | 6
-
Giáo trình Cấu trúc máy tính (Ngành: Công nghệ thông tin - Cao đẳng) - Trường Cao đẳng Xây dựng số 1
44 p | 9 | 5
-
Giáo trình Cấu trúc máy tính (Ngành: Quản trị mạng máy tính - Trình độ Cao đẳng) - Trường Cao đẳng Hòa Bình Xuân Lộc
101 p | 0 | 0
-
Giáo trình Cấu trúc máy tính (Ngành: Quản trị mạng máy tính – Trình độ Trung cấp) - Trường Cao đẳng Hòa Bình Xuân Lộc
98 p | 1 | 0
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn