此时零标志为ZR,即ZF=1,即表示比较结果相等,说明比较结果是正确的。现在可用t令再执行一条指令以观察指令的转向。
-t
AX=14DF BX=0000 CX=0019 DX=0000 SP=FFFC BP=0000 SI=0001 DI=001A DS=14DF ES=14DF SS=14DF CS=14E4 IP=001C NV UP EI PL ZR NA PE NC
14E4:001C 8D163B00 LEA DX,[003B] DS:003B=6F4E 图1-7
为查到003B单元的内容,可查数据区如下: -d0
14DF:0000 4D 6F 76 65 20 74 68 65-20 63 75 72 73 6F 72 20 Move the cursor 14DF:0010 62 61 63 6B 77 61 72 64-2E 4D 6F 76 65 20 74 68 backward.Move th 14DF:0020 65 20 63 75 72 73 6F 72-20 62 61 63 6B 77 61 72 e cursor backwar 14DF:0030 64 2E 4D 61 74 63 68 2E-0D 0A 24 4E 6F 20 4D 61 d.Match...$No Ma 14DF:0040 74 63 68 2E 0D 0A 24 00-00 00 00 00 00 00 00 00 tch...$......... 14DF:0050 1E B8 00 00 50 B8 DF 14-8E D8 8E C0 8D 36 00 00 ....P........6.. 14DF:0060 8D 3E 19 00 FC B9 19 00-F3 A6 75 06 8D 16 3B 00 .>........u...;. 14DF:0070 EB 04 8D 16 32 00 B4 09-CD 21 CB EB 78 80 3E A4 ....2....!..x.>. 图1-8
可见003B单元的内容为4E,即N的ASCII码,后面跟的是No match!,这说明jnz指令使用错误,应改为JZ MATCH.可用a命令修改,并用u命令检查修改结果。运行结果说明程序修改正确。
-a19
14E4:0019 jz 0022 14E4:001B -u0
14E4:0000 1E PUSH DS
14E4:0001 B80000 MOV AX,0000 14E4:0004 50 PUSH AX
14E4:0005 B8DF14 MOV AX,14DF 14E4:0008 8ED8 MOV DS,AX 14E4:000A 8EC0 MOV ES,AX 14E4:000C 8D360000 LEA SI,[0000] 14E4:0010 8D3E1900 LEA DI,[0019] 14E4:0014 FC CLD
14E4:0015 B91900 MOV CX,0019 14E4:0018 F3 REPZ
14E4:0019 7407 JZ 0022 14E4:001B 06 PUSH ES
14E4:001C 8D163B00 LEA DX,[003B] -rip IP 001C :0 -g
Match.
图1-9
9
在这里应该注意,在使用a命令修改数据区时,必须给出数据段的地址,而在修改程序区时,由于a命令的缺省段为代码段,所以直接给出偏移地址就可以了。
在调试过程中,也可以用t命令逐条跟踪程序的执行。下面列出断点停在0b后,用f命令修改数据区中字符串的内容,然后用t命令逐条执行指令的情况。
首先用u命令查看数据段的段地址。 -u
14E4:0000 1E PUSH DS
14E4:0001 B80000 MOV AX,0000 14E4:0004 50 PUSH AX 段地址 14E4:0005 B8DF14 MOV AX,14DF 14E4:0008 8ED8 MOV DS,AX 14E4:000A 8EC0 MOV ES,AX 14E4:000C 8D360000 LEA SI,[0000] 14E4:0010 8D3E1900 LEA DI,[0019] 14E4:0014 FC CLD
14E4:0015 B91900 MOV CX,0019 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB
14E4:001A 7506 JNZ 0022
14E4:001C 8D163B00 LEA DX,[003B] 图1-10
用f命令修改数据区中字符串的内容。其中14df:29为字符串的起始地址,l(字母L) 9表示需要修改的长度为9个字节。
-f14df:29 l 9 'forward.'20 查看修改后的内容: -d14df:0
14DF:0000 4D 6F 76 65 20 74 68 65-20 63 75 72 73 6F 72 20 Move the cursor 14DF:0010 62 61 63 6B 77 61 72 64-2E 4D 6F 76 65 20 74 68 backward.Move th 14DF:0020 65 20 63 75 72 73 6F 72-20 66 6F 72 77 61 72 64 e cursor forward 14DF:0030 2E 20 4D 61 74 63 68 2E-0D 0A 24 4E 6F 20 4D 61 . Match...$No Ma 14DF:0040 74 63 68 2E 0D 0A 24 00-00 00 00 00 00 00 00 00 tch...$......... 14DF:0050 1E B8 00 00 50 B8 DF 14-8E D8 8E C0 8D 36 00 00 ....P........6.. 用t命令逐条跟踪程序的执行。 --t
AX=0000 BX=0000 CX=007B DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=14CF ES=14CF SS=14DF CS=14E4 IP=0001 NV UP EI PL NZ NA PO NC 14E4:0001 B80000 MOV AX,0000 -t
AX=0000 BX=0000 CX=007B DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=14CF ES=14CF SS=14DF CS=14E4 IP=0004 NV UP EI PL NZ NA PO NC 14E4:0004 50 PUSH AX -t
AX=0000 BX=0000 CX=007B DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=14CF ES=14CF SS=14DF CS=14E4 IP=0005 NV UP EI PL NZ NA PO NC
10
14E4:0005 B8DF14 MOV AX,14DF -t
AX=14DF BX=0000 CX=007B DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=14CF ES=14CF SS=14DF CS=14E4 IP=0008 NV UP EI PL NZ NA PO NC 14E4:0008 8ED8 MOV DS,AX -t
AX=14DF BX=0000 CX=007B DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=14DF ES=14CF SS=14DF CS=14E4 IP=000A NV UP EI PL NZ NA PO NC 14E4:000A 8EC0 MOV ES,AX -t
AX=14DF BX=0000 CX=007B DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=14DF ES=14DF SS=14DF CS=14E4 IP=000C NV UP EI PL NZ NA PO NC
14E4:000C 8D360000 LEA SI,[0000] DS:0000=6F4D -t
AX=14DF BX=0000 CX=007B DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0010 NV UP EI PL NZ NA PO NC
14E4:0010 8D3E1900 LEA DI,[0019] DS:0019=6F4D -t
AX=14DF BX=0000 CX=007B DX=0000 SP=FFFC BP=0000 SI=0000 DI=0019 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0014 NV UP EI PL NZ NA PO NC 14E4:0014 FC CLD -t
AX=14DF BX=0000 CX=007B DX=0000 SP=FFFC BP=0000 SI=0000 DI=0019 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0015 NV UP EI PL NZ NA PO NC 14E4:0015 B91900 MOV CX,0019 -t
AX=14DF BX=0000 CX=0019 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0019 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0018 DX=0000 SP=FFFC BP=0000 SI=0001 DI=001A DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0017 DX=0000 SP=FFFC BP=0000 SI=0002 DI=001B DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0016 DX=0000 SP=FFFC BP=0000 SI=0003 DI=001C DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ
11
14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0015 DX=0000 SP=FFFC BP=0000 SI=0004 DI=001D DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0014 DX=0000 SP=FFFC BP=0000 SI=0005 DI=001E DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0013 DX=0000 SP=FFFC BP=0000 SI=0006 DI=001F DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0012 DX=0000 SP=FFFC BP=0000 SI=0007 DI=0020 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0011 DX=0000 SP=FFFC BP=0000 SI=0008 DI=0021 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0010 DX=0000 SP=FFFC BP=0000 SI=0009 DI=0022 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=000F DX=0000 SP=FFFC BP=0000 SI=000A DI=0023 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=000E DX=0000 SP=FFFC BP=0000 SI=000B DI=0024 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=000D DX=0000 SP=FFFC BP=0000 SI=000C DI=0025 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC
12
14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=000C DX=0000 SP=FFFC BP=0000 SI=000D DI=0026 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=000B DX=0000 SP=FFFC BP=0000 SI=000E DI=0027 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=000A DX=0000 SP=FFFC BP=0000 SI=000F DI=0028 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0009 DX=0000 SP=FFFC BP=0000 SI=0010 DI=0029 DS=14DF ES=14DF SS=14DF CS=14E4 IP=0018 NV UP EI PL NZ NA PO NC 14E4:0018 F3 REPZ 14E4:0019 A6 CMPSB -t
AX=14DF BX=0000 CX=0008 DX=0000 SP=FFFC BP=0000 SI=0011 DI=002A DS=14DF ES=14DF SS=14DF CS=14E4 IP=001A NV UP EI NG NZ AC PE CY 14E4:001A 7506 JNZ 0022 -t
AX=14DF BX=0000 CX=0008 DX=0000 SP=FFFC BP=0000 SI=0011 DI=002A DS=14DF ES=14DF SS=14DF CS=14E4 IP=0022 NV UP EI NG NZ AC PE CY
14E4:0022 8D163200 LEA DX,[0032] DS:0032=614D -t
AX=14DF BX=0000 CX=0008 DX=0032 SP=FFFC BP=0000 SI=0011 DI=002A DS=14DF ES=14DF SS=14DF CS=14E4 IP=0026 NV UP EI NG NZ AC PE CY 14E4:0026 B409 MOV AH,09 -t
AX=09DF BX=0000 CX=0008 DX=0032 SP=FFFC BP=0000 SI=0011 DI=002A DS=14DF ES=14DF SS=14DF CS=14E4 IP=0028 NV UP EI NG NZ AC PE CY 14E4:0028 CD21 INT 21 -g Match.
Program terminated normally -q
图1-11
从这一过程可以清楚地看出每次比较的结果,一旦比较不相等,则立即从串指令退出,执行下
13
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库微机实验作业(3)在线全文阅读。
相关推荐: