- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.1.14 串操作指令
字符串传送指令 字符串比较指令 字符串检索指令 取字符串指令 存字符串指令
1.字符串传送指令 字符串传送指令 MOVSB/MOVSW
MOVSB用于字节传送 MOVSW用于字传送。
特点:指令前面常加重复前缀REP 如:
MOV SI,1000H ;源地址为1000H
MOV DI,2000H ;目的地址为2000H
MOV CX,100 ;字符串长100个字节
CLD ;方向标志清0,使指针 ;按增量方向修改
REP MOVSB ;将源地址开始的100个 ;字节传送到目的地址
MOVSB指令注意点:① 源地址用SI寄存器指出 目的地址用DI寄存器指出
② CX中为字节数或字数。③ 若DF为0,则用MOVSB时,每传送一次,SI和DI自动增1;用MOVSW时,每传送一次,SI和DI自动增2。DF=1,则SI,DI变化方向?
2. 字符串比较指令
字符串比较指令 CMPSB/CMPSW
功能:把DS段由SI所指的字节或者字和ES段由DI所指的字节或者字相比较。设置标志位
CMPSB/CMPSW指令注意点:
① 预先将:源字符串的首址设置到DS段和SI中 目的字符串的首址设置到ES段和DI中
比较的字节数或字数设置到CX中 设置方向标志
② 在DF为0或为1,影响比较SI和DI的修改方向。
③ CMPSB/CMPSW指令通常加前缀 REPNZ/REPNE REPZ/REPE
3. 字符串检索指令
SCASB或者SCASW 功能:
将AL中的字节或者AX中的字与位于ES段由DI寄存器所指的内存单元的字节或字相比较。
4. 取字符串指令
LODSB/LODSW 功能:将位于DS段由SI所指的存储单元的内容取到AL或AX中。
LODSW取字,DF=1时地址作减量修改 DF=0时地址作增量修改
5. 存字符串指令
STOSB/STOSW 功能:把AL或AX中的数据存到ES段DI寄存器所指的内存单元。
3.1.15 控制转移指令
控制转移指令中包括5类指令,即
子程序调用和返回指令 无条件转移和条件转移指令 循环控制指令 中断指令 处理器控制指令
关于转移指令和调用指令的寻址
段内直接转移;段内间接转移;段间直接转移;段间间接转移
1 子程序调用和返回指令
子程序调用指令:
段内直接调用指令
段内间接调用指令
段间直接调用指令
段间间接调用指令。
例:CALL 1000H ;段内调用地址在指令中给出
CALL AX ;段内间接调用地址由AX给出
CALL 2500H:3600H ;段间直接调用,段地址 ;和偏移量由指令给出
CALL DWORD PTR 〔DI〕;段间间接调用,调用;地址在DI、DI+1、;DI+2、DI+3所指单元
RET
功能:返回高一层的程序。
特点:可带参数
RET n n为0~FFFFH范围中的偶数。
2 无条件转移指令和条件转移指令
(1) 无条件转移指令有四种形式
如:JMP 1000H
JMP CX
JMP 2000H:0100H
JMP DWORD PTR 〔ST〕
条件转移指令特点:都是相对转移形式的 根据比较结果决定是否转移 大部分转移指令有两种不同的助记符
(2) 条件转移指令的形式:
JE/JZ ;结果为0,则转移
JNE/JNZ ;结果不为0,则转移
JG/JNLE ;大于不小于且不等于则转移
JNG/JLE ;不大于即小于或等于则转移
JL/JNGE ;小于,即不大于且不等于则转移
JNL/JGE ;不小于,即大于或者等于则转移
JB/JNAE ;低于,即不高于且不等于则转移
JNB/JAE ;不低于,即高于或者等于则转移
JA/JNBE ;高于,即不低于且不等于则转移
JNA/JBE ;不高于,即低于或者等于则转移
JS ;符号标志SF为1则转移
JNS ;符号标志SF为0则转移
JO ;溢出标志OF为1则转移
JNO ;溢出标志OF为0则转移
JP ;奇偶标志PF为1则转移
JNP ;奇偶标志PF为0则转移
3 循环控制指令
(1) LOOP指令
功能:将CX的内容减1,CX如不为0,则继续循环,为0,则退出循环。
如: MOV CX,0100H ;设置循环次数
KKK: LOOP KKK ;CX减1,如不为0则循环
(2) LOOPZ/LOOPE
功能:将CX减1,如CX为0或者ZF为0则退出循环,在ZF=1且CX≠0时继续循环。
注意:CX中的值为0时,并不会影响标志位ZF。
(3) LOOPNZ/LOOPNE
文档评论(0)