🌀Loop

JMP instruction có thể được sử dụng để thực hiện các vòng lặp. Ví dụ: đoạn mã sau đây có thể được sử dụng để thực thi phần thân vòng lặp 10 lần.

MOV	CL, 10
L1:
<LOOP-BODY>
DEC	CL
JNZ	L1

Tuy nhiên, tập lệnh bộ xử lý bao gồm một tập các loop instruction để thực hiện lặp lại. Lệnh LOOP cơ bản có cú pháp sau:

LOOP 	label

Trong đó, labeltarget label xác định hướng chương trình như trong jmup instructions. Lệnh LOOP giả định rằng thanh ghi ECX chứa số vòng lặp. Khi lệnh loop được thực thi, thanh ghi ECX được giảm và điều khiển nhảy đến target label, cho đến khi giá trị thanh ghi ECX (tức là bộ đếm) đạt đến giá trị bằng không.

Đoạn code ở trên có thể được viết như:

mov ECX,10
l1:
<loop body>
loop l1

Nếu bạn chưa hiểu lắm thì bạn có thể làm bài này cho nhớ :>>

Bài tập

Hãy làm theo bức ảnh sau: (bởi vì có thể bạn sẽ cần 1 vài câu lệnh khác mà tôi chưa đề cập trước đó để làm bài này nên bạn có thể vừa làm vửa tham khảo source page.

Last updated