80X86汇编提供的字符串操作指令,每次只能处理一个字或字节,所以需要提供一个循环。而8086提供了一个“重复前缀”REP,
REP重复执行后面的串操作指令,每一次执行,都先判断CX是否为0,如果CX为0,则结束重复;否则CX 减一,重复其后的串操作指令。
REP主要用在串操移动指令MOVS 和串存储指令STOS
CLD
MOV CX,50
REP STOSW
例子:提示输入一个字符,用输入的字符填充缓冲区
;FILLB
;测试用指定的字符填充指定的缓冲区
DSEG SEGMENT
MESS1 DB 'Please input:',0
BUFFER DB 10 DUP (0)
LEN_BUFF EQU $ - BUFFER
DSEG ENDS
CSEG SEGMENT
ASSUME DS:DSEG,CS:CSEG
START: MOV AX,DSEG
MOV DS,AX
;
MOV SI,OFFSET MESS1 ;显示提示信息
CALL DMESS
MOV AH,1 ;接收一个字符
INT 21H
;
MOV BX,SEG BUFFER
MOV ES,BX
MOV DI,OFFSET BUFFER
MOV CX,LEN_BUFF
CALL FILLB
;
CALL NEWLINE
MOV CX,LEN_BUFF
MOV SI,OFFSET BUFFER
NEXT: MOV AL,[SI]
CALL PUTCH
INC SI
DEC CX
JNZ NEXT
EXIT: