8086匯編 Loop 指令
功能:實現循環(計數型循環)
- 指令的格式
- loop 標號
CPU 執行loop指令時要進行的操作:
- (cx)=(cx)-1;
- 判斷cx中的值不為零則轉至標號處執行程序如果為零則向下執行。
用cx和loop 指令相配合實現循環功能的三個要點:
(1)在cx中存放循環次數;
(2)用標號指定循環開始的位置;
(3)在標號和loop 指令的中間,寫上要循環執行的程序段(循環體)
如果(cx)≠0,(IP)=(IP)+8位位移
- 8位位移=“標號”處的地址-loop指令后的第一個字節的地址
- 8位位移的范圍為-128~127,用補碼表示
- 8位位移由編譯程序在編譯時算出
案例
循環說明
- 1)賦值 ax = 2、cx = 11
- 2)相加 ax = 4
- 3)loop s 中 cx 值會 -1 由 11 變為 10
- 4)轉到 s 偏移地址(IP寄存器返回s偏移地址 ) 標記的 add ax ,ax
- 5)ax = 8 -> 16 -> 32 -> ...
- 6)知道 ax 為 0 結束循環
;10op指令示例程序 assume cs: code code segment mov ax,. 2 mov Cx. 11 s: add ax, ax loop s mov ax, 4c00h int 21h code ends end