📄 asslandat96b.dat
字号:
说明: 1. REP与MOVS或STOS串操作指令相结合使用,完成一组字符的传送或建立一组相同数据的字符串.
----
2. REPZ/REPE常用与CMPS串操作指令结合使用, 可以完成两组字符串的比较.当串未结束(CX)<>0且当对应串元 素相同(ZF=1)时,继续重复执行字符串指令.它可用来判定两字符串是否相同.
3. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中搜索一个关键字.只要当字符串未结束(CX<>0)且 当关键字与元素相同(ZF=1)时,继续重复执行串搜索指令,用于在字符串中查找与关键字不相同的数据的位置
4. REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1)且当对应串元素不相同(ZF=0)时,继续重复执行串 比较指令.它可在两字符串中查找相同数据的位置.
5. REPNZ/REPNE与SCAS指令结合使用,表示串未结束(CX=1)且当关键字与串元素不相同(ZF=0)时,继续重复执行 串搜索指令.它可用来在字符串中查找关键字相同的的数据位置.
6. 重复前缀应用的程序举例如下:
例1 对两个字符串STR1与STR2进行比较
MOV SI,OFFSET STR1
MOV DI,OFFSET STR2
MOV CX,COUNT ;COUNT为串长度
CLD
REPZ CMPSB
JNZ NEQU ;串不相同,送0FFH标志
MOV AL,0 ;串相同,送0FFH标志
JMP OVR
NEQU:MOV AL,0FFH
OVR:MOV RESULT,AL ;将比较结果送RESULT
HLT
例2 字符串中搜索关键字,记下搜索的次数和关键字在串中的位置
CLD
MOV DI,OFFSET BLOCK;DI为目的串指针
MOV CX,COUNT ;CX为串长度
MOV AL,CHAR ;AL中为搜索的关键字
REPNE SCASB ;重复搜索关键字
JZ FOUN D ;找到,转FOUND
MOV DI,0 ;未找到,退出程序
JMP DONE
FOUND:DEC DI ;DI为关键字的位置
MOV POINTER,DI ;保存关键字的位置
MOV BX,OFFSET BLOCK
SUB DI,BX ;DI中为查找的次数
MOV POINTER+2,DI ;保存搜索次数
DONE:HLT
注意: 若找到该关键字, 由于DI是自增的,这时DI已经指向关键字的下一个字符,故DI减1才是真正关键字在字 符串的位置.当前关键字的位置减去串首址,即得到搜索的次数.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -