CX LOOP, LOOPE, LOOPNE
7. Tập lệnh hợp ngữ
7.4. Nhĩm lệnh xử lý chuỗ
Bao gồm các lệnh sau:
- Lệnh MOVS: chuyển dữ liệu từ vùng nhớ này sang vùng nhớ khác.
+ MOVSB: chuyển 1 byte từ vị trí chỉđến bởi SI đến vị trí chỉ bởi DI. Nếu DF = 0 thì SI ← SI + 1, DI ← DI + 1 cịn nếu DF = 1 thì SI ← SI - 1, DI ← DI - 1.
+ MOVSW: chuyển 1 word từ vị trí chỉ đến bởi SI đến vị trí chỉ bởi DI. Nếu DF = 0 thì SI ← SI + 2, DI ← DI + 2 cịn nếu DF ← 1 thì SI ← SI - 2, DI ← DI - 2. - Lệnh CMPS: so sánh nội dung 2 vùng nhớ + CMPSB: so sánh 1 byte tại vị trí chỉ đến bởi SI và tại vị trí chỉ bởi DI. Nếu DF = 0 thì SI ← SI + 1, DI ← DI + 1 cịn nếu DF ← 1 thì SI ← SI - 1, DI ← DI - 1. + CMPSW: so sánh 1 word tại vị trí chỉđến bởi SI và tại vị trí chỉ bởi DI. Nếu DF = 0 thì SI ← SI + 2, DI ← DI + 2 cịn nếu DF = 1 thì SI ← SI - 2, DI ← DI - 2. - Lệnh SCAS: tìm một phần tử trong vùng nhớ, địa chỉ vùng nhớ xác định bằng cặp thanh ghi ES:DI, giá trị cần tìm đặt trong thanh ghi AL, nếu tìm thấy thì ZF = 1. Giá trị của DI và SI thay đổi giống như trên.
- Lệnh LODS: đưa một byte hay word cĩ địa chỉ xác định bởi cặp thanh ghi DS:SI vào thanh ghi AL hay AX. Giá trị của DI và SI thay đổi giống như trên.
- Lệnh STOS: chuyển nội dung của AL hay AX vào vùng nhớ xác định bởi cặp thanh ghi ES:DI. Giá trị của DI và SI thay đổi giống như trên.