概述
串处理指令
串处理指令分类情况如下:
指令类型 | ||
---|---|---|
MOVS | move string | 传传送 |
CMPS | compare string | 串比较 |
SCAS | scan string | 串扫描 |
LODS | load from string | 从串取 |
STOS | store in to string | 存入串 |
INS | input from port to string | 串输入 |
OUTS | output string to port | 串输出 |
REP | repeat | 重复 |
REPE/REPZ | repeat while equal/zero | 相等/为零则重复 |
REPNE/REPNZ | repeat while not equal/zero | 不相等/不为零则重复 |
1.MOVS
格式:
MOVS DST,SRC
MOVSB (字节)
MOVSW (字)
MOVSD (双字)(386及其后继机型可用)
用法:
指令可以把SI指向的数据段中的一个字节、字或双字(DS:SI)传递到由DI指向的附加段中的一个字节、字或双字(ES:DI)中去,不影响条件标志位,并根据DF以及数据格式对SI和DI进行修改。
2.CMPS
格式:
CMPS SRC,DST
CMPSB (字节)
CMPSW (字)
CMPSD (双字)(386及其后继机型可用)
用法:
指令把DS:SI指向的存储单元中的数据与ES:SI指向的存储单元中的数据相减,不保存结果但影响条件标志位,并根据DF的值对SI和DI进行修改。
3.SCAS
格式:
SCAS DST
SCASB (字节)
SCASW (字)
SCASD (双字)(386及其后继机型可用)
用法:
指令把AL、AX或EAX中的数据与ES:DI指向的存储单元中的数据相减,不保存结果但影响条件标志位,并根据DF的值对SI和DI进行修改。
4.LODS
格式:
LODS SRC
LODSB (字节)
LODSW (字)
LODSD (双字)(386及其后继机型可用)
用法:
指令把DS:SI指向的存储单元中的数据送到AL、AX或EAX中,并根据条件标志位DF的值和数据类型来修改SI。
5.STOS
格式:
STOS DST
STOSB (字节)
STOSW (字)
STOSD (双字)(386及其后继机型可用)
用法:
指令把AL、AX和EAX中的内容存入由DS:SI指向的存储单元,并根据DF的值及数据类型修改SI。
6.INS
格式:
INS DST,DX
INSB (字节)
INSW (字)
INSD (双字)(386及其后继机型可用)
用法:
指令把端口在DX寄存器中的I/O空间的数据送到由ES:DI指向的存储单元,并根据DF的值和数据类型修改DI。
7.OUTS
格式:
OUTS DX,SRC
OUTSB (字节)
OUTSW (字)
OUTSD (双字)(386及其后继机型可用)
用法:
指令把由DS:SI指向的存储单元中的数据送到端口号在DX寄存器中的I/O端口中,并根据DF的值和数据类型改变SI。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持靠谱客。
最后
以上就是任性翅膀为你收集整理的汇编语言指令集之串处理指令讲解的全部内容,希望文章能够帮你解决汇编语言指令集之串处理指令讲解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复