汇编debug中repnz用法例子
1个回答
展开全部
不等重复前缀指令的一般格式:
REPNE/REPNZ
SCAS/SCASB/SCASW/SCASD
REPNE/REPNZ
CMPS/CMPSB/CMPSW/CMPSD
该重复前缀指令的执行步骤如下:
(1)、判断条件:CX≠0
且
ZF=0;
(2)、如果条件不成立,则结束重复操作,执行程序中的下一条指令;
(3)、否则,CX=CX-1(不影响有关标志位),并执行其后的字符串操作指令,在该指令执行完后,再转到步骤(1)。
如上所述,此重复前缀与字符串扫描指令SCAS或字符串比较指令CMPS一起使用,有三个隐含条件:
1、源字符串地址在DS:SI中,目标字符串地址在ES:DI中
2、扫描或比较的次数在CX中
3、要扫描的字节或字在AL或AX中
举例,有一字符串“ABCDEFG”,要看看这个字符串中是否有字符“E”。在debug中:
-E110
'ABCDEFG'
-A
0AF1:0100
MOV
DI,110
0AF1:0103
MOV
AL,45
0AF1:0105
MOV
CX,7
0AF1:0108
REPNZ
SCASB
0AF1:010A
JCXZ
10D
0AF1:010C
DEC
DI
0AF1:010D
-G10D
AX=0045
BX=0000
CX=0002
DX=0000
SP=FFEE
BP=0000
SI=0000
DI=0114
DS=0AF1
ES=0AF1
SS=0AF1
CS=0AF1
IP=010D
NV
UP
EI
PL
NZ
NA
PE
NC
0AF1:010D
6A
DB
6A
-
REPNE/REPNZ
SCAS/SCASB/SCASW/SCASD
REPNE/REPNZ
CMPS/CMPSB/CMPSW/CMPSD
该重复前缀指令的执行步骤如下:
(1)、判断条件:CX≠0
且
ZF=0;
(2)、如果条件不成立,则结束重复操作,执行程序中的下一条指令;
(3)、否则,CX=CX-1(不影响有关标志位),并执行其后的字符串操作指令,在该指令执行完后,再转到步骤(1)。
如上所述,此重复前缀与字符串扫描指令SCAS或字符串比较指令CMPS一起使用,有三个隐含条件:
1、源字符串地址在DS:SI中,目标字符串地址在ES:DI中
2、扫描或比较的次数在CX中
3、要扫描的字节或字在AL或AX中
举例,有一字符串“ABCDEFG”,要看看这个字符串中是否有字符“E”。在debug中:
-E110
'ABCDEFG'
-A
0AF1:0100
MOV
DI,110
0AF1:0103
MOV
AL,45
0AF1:0105
MOV
CX,7
0AF1:0108
REPNZ
SCASB
0AF1:010A
JCXZ
10D
0AF1:010C
DEC
DI
0AF1:010D
-G10D
AX=0045
BX=0000
CX=0002
DX=0000
SP=FFEE
BP=0000
SI=0000
DI=0114
DS=0AF1
ES=0AF1
SS=0AF1
CS=0AF1
IP=010D
NV
UP
EI
PL
NZ
NA
PE
NC
0AF1:010D
6A
DB
6A
-
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询