8086彙編 Loop 指令

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章