Tham khảo tài liệu 'giới thiệu hợp ngữ assembler very good phần 9', 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ả | i J REP MOVSR . . .J Ví dụ Viết cậc lệnh chép chuỗi STRỊNG1 trong phần trước vào chuỗi STRING2 theo thứ tự ngược lại Lời giải Ý tưởng ỏ đây là cho SI trỏ đến cu ÔI chuỗi STRING 1 và DI trỏ đến đầu chuỗi í STRING2 sau đó chuyển các kỷ tự trong khi SI di chuyển dọc theo chuỗi STRING1 từ trái qua phải. LEA SI STRINGĨ 4 SI trỏ đến cuối chuỗi STRING1 LEA DI STRING2 DI trỏ đến đầu chuồi STRING2 STD xử lý từ -phải qua trái Ị MOV cx 5 . . MOVE . . . MOVSB . Chuyển tùng byte. ADD DI 2 . LOOP .MOVE Ở trên chúng ta phải cộng thêm 2 vào DI sau mỗi lệnh MOVSB bởi vì khi DF 1 thì sau mỗi lệnh MOVSB SI và DI tự động giảm đi 1 trong khi chúng ta lại muốn táng DI. LệrilMOVSW Có dạng word cho lệnh MOVSB đó là MOVSW chuyển một chuỗi các word Lệnh MOVSW chuyển từng word từ chuỗi nguồn đến chuỗi đích. Giống như lệnh MOVSB nó yêu cầu DS SI trỏ đến chuỗi nguồn và ES DI trỏ đến chuỗi đích. Sau khi một word của chuỗi được chuyển cả SI và DI cùng tăng lên 2 đơn vị nếu DF - 0 hoặc cùng giảm đi 2-nếu DF 1. MOVSB và MOVSW đều không làm ảnh hương tới cờ Ví dụ Cho mảng sau đây ARRDW .10 20 50 60 Hãy viết các. lệnh để chèn. 30 vào giữa 20 và 40 giả thiết rằng. DS và ES đã chứa địa chỉ đoạn dữ liệu . 274 Lời giải Chúng ta sẽ chuyển 40 50 và 60 dịch lên một vị trí trong mảng rồi chèn 30 vào. L STD Xử lý từ phải qua trái LEA SI ARR 8h SI trỏ đến 60 LEA DI ẠRR Ah DI trỏ đến MOV cx 3- Chuyển 3 phẩn tử REP MOVSW. Chuyển 4 0 50 60 . MOV WORD DL 30 Chẻn 3 0 Ệ . Chú ý toần tử PTR đã trình bày trong phần Lệnh lưu chuỗi J . . . . . .lị Lệnh STOSB STOSB Lưu chuỗi các byte J i Có tác dụng chuyển nội dung của thanh ghi AL đến byte được định địa chỉ 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. Tương tự như vậy STOSW Lưu chuỗi các word Chuyển nội dung của thanh ghi AX vào word được đính địa chỉ bởi ES DI và tầng hay gảm DI 2 đơn vị tuỳ theo trạng thái cơ DF. Các lệnh STOSB và ST0SW không ảnh hưởng tới cờ. Để làm ví dụ về lệnh STOSB .