循环控制指令
80x86指令系统中,有三条专门的循环控制指令:
属于程序转移类指令,也是相对转移。
相对位移量是8位以补码表示的二进制带符号整数。
隐含使用寄存器CX作循环次数计数器。在进入循环前,把循环次数送入CX。执行循环控制指令时,对CX进行减1计数
LOOP指令:
格式:LOOP 目标地址
功能:CX <==(CX)-1;
若(CX)≠0,转移到目标地址,继续循环;
否则( CX)=0 )退出循环顺序执行。
实例1
把字符串中大写改成小写
DATA SEGMENT ;设置数据段
STRING DB 41H,42H,0H
BX DW ?
DATA ENDS
STACK1 SEGMENT PARA STACK ;设置堆栈
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT ;设置代码段
ASSUME CS: CODE, DS: DATA, SS: STACK1
AGAIN: MOV AX, DATA ;置段基指于DS
MOV DS,AX
MOV BX,OFFSET STRING
MOV AL,[BX] ;取一个字符
OR AL,AL ;是否为结尾符0
JZ DONE ;是,退出循环
CMP AL,'A' ;是否为大写A~Z
JB NEX