Danh mục

Chương 4 - Các chỉ thị chuỗi, dữ liệu nhị phân và ÁC II

Số trang: 18      Loại file: pdf      Dung lượng: 735.96 KB      Lượt xem: 13      Lượt tải: 0    
Thư viện của tui

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu chương 4 - các chỉ thị chuỗi, dữ liệu nhị phân và ác ii, công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Chương 4 - Các chỉ thị chuỗi, dữ liệu nhị phân và ÁC II Chöông 4: Caùc chæ thò chuoãi, döõ lieäu nhò phaân vaø ASCIICác đặc trưng của chỉ thị chuỗi Một chỉ thị chuỗi có thể xử lý trên một byte, một từ hay từ kép- Các chỉ thị chuỗi sử dụng các thanh ghi DS:SI hoặc ES:DI, trong đó SI và- DI chứa địa chỉ offset 5 chỉ thị chuỗi thường sử dụng:- di chuyển 1 byte, từ hoặc từ kép từ vi trí này đến vị trí khác trong bộ MOVS nhớ nạp từ bộ nhớ 1 byte vào AL, một từ vào AX, hoặc từ kép vào EAX LODS cất nội dung các thanh ghi AL,AX hoặc EAX vào bộ nhớ STOS So sánh các vùng nhớ trong bộ nhớ theo byte, từ hay từ kép CMPS So sánh nội dung của các thanh ghi AL,AX,EAX với nội dung của SCAS một vùng nhớ Chöông 4: Caùc chæ thò chuoãi, döõ lieäu nhò phaân vaø ASCIIChỉ thị MOVS* Chức năng: Di chuyển chuỗi (sao chép nội dung chuỗi) Giá trị Điều kiện Thao tác Thanh ghi Địa chỉ vùng dữ liệu đích ES:DI Vào DI Địa chỉ vùng dữ liệu nguồn DS:SI SI Số ký tự cần di chuyển CX * Ví dụ: Chép nội dung của chuỗi N1 vào N2 (với N2 là chuỗi rỗng) .MODEL SMALL .CODE .DATA MOV AX,@DATA N1 DB Assembler$ MOV DS,AX N2 DB 10 DUP( ) MOV ES,AX MSG5 DB 0Ah,0Dh,Chuoi thu nhat=$ CALL DICHUYEN MSG6 DB 0Ah,0Dh,Chuoi thu hai=$ CALL INKETQUA MOV AH,1 INT 21h MOV AH,4Ch INT 21h Chöông 4: Caùc chæ thò chuoãi, döõ lieäu nhò phaân vaø ASCIIChỉ thị MOVS INKETQUA PROC NEAR DICHUYEN PROC NEAR MOV AH,9 MOV CX,10 LEA DI,N2 LEA DX,MSg5 LEA SI,N1 INT 21h REP MOVSB LEA DX,N1 RET INT 21h DICHUYEN ENDP LEA DX,MSG6 INT 21h LEA DX,N2 INT 21h RET INKETQUA ENDP Demo Chöông 4: Caùc chæ thò chuoãi, döõ lieäu nhò phaân vaø ASCIICác chỉ thị thay đổi cờ hướng DF Cờ hướng DF xác định hướng mà chỉ thị chuỗi được lặp lại (0: trái sang- phải, 1=phải sang trái) Các chỉ thị thiết lập cờ hướng:- * Chỉ thị CLD: Xóa DF về 0 * Chỉ thị STD: Thiết lập cờ DF lên 1V í dụ : ;Thiết lập DF=1 STD MOV CX,20 LEA DI,S2 LEA SI,S1 REP MOVSB Chöông 4: Caùc chæ thò chuoãi, döõ lieäu nhò phaân vaø ASCIITiền tố lặp lại - REP Cho phép lặp lại việc thực thi chỉ thị dựa trên giá trị CX - Sau mỗi lần lặp, CX giảm đi 1 cho đến khi CX=0 - Cờ hướng DF xác định hướng mà chuỗi lặp lại: - * Xử lý từ trái sang phải: dùng chỉ thị CLD xóa cờ DF về 0 * Xử lý từ phải sang trái: dùng chỉ thị STD để thiết lập cờ DF về 1 V í dụ : CLD MOV CX,20 LEA DI,STRING2 LEA SI,STRING1  REP MOVSB JCXZ LABEL2 LABEL1: MOV AL,[SI] MOV [DI],AL INC DI INC SI LOOP LABEL1 LABEL2:...... - Các lệnh khác: REPE/REPZ – REPNE/REPNZ ( Điều kiện bởi Cờ ZF) Chöông 4: Caùc chæ thò chuoãi, döõ lieäu nhò phaân vaø ASCIIChỉ thị LODS* Chức năng: Nạp chuỗi- Nạp từ bộ nhớ vào AL (byte), vào AX (từ)- Địa chỉ vùng dữ liệu được nạp vào DS:SI- Giảm/tăng nội dung SI bởi 1 (nạp byte), bởi 2 (nạp từ) với cờ DF Giá trị Điều kiện Thao tác Thanh ghi Địa chỉ vùng dữ liệu đích ES:DI Vào DI Địa chỉ vùng dữ liệu nguồn DS:SI SI Số ký tự cần nạp ...

Tài liệu được xem nhiều:

Gợi ý tài liệu liên quan: