什么网站做污水处理药剂的好,用户界面设计软件,如何保存个人网站,网页设计与制作(第2版)课件指令包括#xff1a;MOVS#xff0c;LODS#xff0c;STOS#xff0c;CMPS#xff0c;SCAS#xff0c;REP 串的概念#xff1a;串是连续存放再内存中的字节块或字块。每个串有一个起始地址和长度#xff0c; 待操作的数据串称为源串#xff0c;目的地址称为目标串
目录…指令包括MOVSLODSSTOSCMPSSCASREP 串的概念串是连续存放再内存中的字节块或字块。每个串有一个起始地址和长度 待操作的数据串称为源串目的地址称为目标串
目录
串传送指令MOVS 串存储指令STOS 串读取指令LODS 串比较指令CMPS 串扫描指令SCAS 重复前缀指令REP
串指令操作的特点 1.源操作数用寄存器SI寻址默认的数据段DS 中但允许段超越DS:[SI] 2.目的操作数用寄存器DI寻址默认在附加段 ES中不允许段超越ES:[DI] 3.每执行一次串操作指令SI和DI将自动修 改±1对于字节串或±2对于字串 执行指令CLD后DF0地址指针增加1或2 执行指令STD后DF1地址指针减1或2 4.数据块长度值有CX指定
串传送指令MOVS 作用把字节/子操作数从主存的源地址传送至目的地址 ;使用格式指令包括MOVSBMOVSW
movsb ;字节串传送 ES:[DI]-DS:[SI];DF0 ,SI-SI1,DI-DI1,;DF1 ,SI-SI-1,DI-DI-1
movsw ;字串传送 ES:[DI]-DS:[SI];DF0 ,SI-SI2,DI-DI2;DF1 ,SI-SI-2,DI-DI-2egl.
mov si,offset source ;获取源偏移地址mov di,offset destination ;获取目的偏移地址mov cx,100 ;cx-传送次数cld ;置DC0地址增加
againmovsb ;传送一个字节dec cx ;传送次数减1jnz again ;判断传送次数cx是否为0不为0则到again位置执行指令否则结束在使用串操作指令前需要提前将DSESSIDI, CX, DF设置好
串存储指令STOS 作用把AL或AX的数据传送至目的地址 ;使用格式指令包括 STOSBSTOSW
STOSB ;字节串存储ES:[DI]-AL;DI-DI1
STOSW ;字串存储: ES:[DI]-AX;DI-DI2egl.
mov ax,0mov di,0 mov cx,8000h ;cx-传送次数80x1024 cld DF0,地址增加
again: stosw ;传送一个字
dec cx ;传送次数减1
jnz again ; 传送次数cx是否为0串读取指令LODS 作用将字节/字从数据段中读取出来保存在AL或者AX中 ;使用格式指令包括LODSBLODSW
LODSB ;字节串存储AL-DS:[SI]
;SI-SI-1
LODSW ;字串存储AX-DS:[SI]
;SI-SI-2串比较指令CMPS 作用 将主存中的源操作数减去目的操作数以便设置标志进而比较两操作数之间的关系 ;使用格式指令包括 CMPSBCMPSW
CMPSB ;字节串比较DS:[SI]-ES:[DI];SI-SI-1,DI-DI-1
CMPSW ;字串比较 DS:[SI]-ES:[DI];SI-SI-2,DI-DI-2串扫描指令SCAS
;使用格式指令包括SCASBSCASW
SCASB ;字节串比较 AL-ES:[DI];DI-DI-1
SCASW ;字串比较 AX-ES:[DI];DI-DI-2egl.
mov di,offset stringmov al,20h ;空格对应的ASCII码为20mov cx,count cld
again scasb ;搜索jz found ;为0ZF1),发现空格dec cx ;不是空格jnz again ;搜索下一个字符
found: .... ;不含空格则继续执行重复前缀指令REP
重复前缀REP可以加到串传送操作指令。REP前缀是每次执行串指令后CX-1CX-1后重复执行串指令知道CX值为0时指令才终止。
;使用示例 REP,REPZ,REPNZ,REPE,REPNE
rep movsx ;无条件重复直到cx0
repz cmpsx ;无条件重复直到cx0 / ZF0
repnz cmpsx ;无条件重复直到cx0 /zf1
repe cmpsx ;不断比较直到cx0 / zf0
repne cmpsx ;不断比较直到cx0 / zf1egl.
mov si,offset source
mov di,offset destination
mov cx,100 ;cx-传送次数
cld
rep movsb
;____________$$$_____________
mov si,offset string1
mov di,offset string2
mov cx,count
cld
repz cmpsb ;重复比较前两个字符
jnz unmat ;字符串不等转移到unmat
mov al,0 ;字符串相等设置00h
jmp output ;跳转到outputunamt: mov al,0ffh ;设置ffh被jnz跳转到
output: mov result,al ;输出结果标记被jmp跳转到