|
主题 : : 实验四第三小题的正确答案 [待解决] |
回复[ 45次 ]
点击[ 1443次 ] | |
|
|
|
|
|
[帖 主]
[ 发表时间:2009-05-26 15:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-26 13:49 |
实际上这是一道再简单不过的问题了,不知道为什么论坛上有许多人都对它存有疑惑。正确答案就是:
第一个空毫无疑问应该是:
mov ax,cs
关键是第二个空,应该是:
mov cx,17h
接下来我来分析一下:
cs中存储了这段代码的起始位置,而不是用什么ds。
这道题的关键是我们需要复制的字节数,可我们怎么知道是23个字节(也就是17h)呢,首先将
mov cx,___这个空用0代替(因为无论如何cx都占2个字节,以后再把0替换过来),也就是mov cx,0。
然后编译连接代码,生成.exe程序放到debug中。再-r,就可以看到cx中的取值(cx中存放的是这个.exe程序的总字节数),cx=001c,001c等于28,但是要注意应该去掉mov ax,4c00h(对应机器码B8004C)和int 21h(对应机器码CD21)两句代码所占的字节数,总共五个字节,所以应该是28-5=23,转换成十六进制就是17h。然后重新编辑源程序,把mov cx,0替换成mov cx,17h就行了。
经过我的测试,这样做是绝对正确的。 | | |
|
|
|
|
|
[第1楼]
[ 回复时间:2009-05-30 21:49 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-21 13:49 |
mov cx,___ 你用0来代替的话那就是2个字节了
但是实际上不可能是0 那么应该是3个字节
1D-5=18
mov cx,___ 就应该是mov cx,18 | | |
|
|
|
|
|
[第2楼]
[ 回复时间:2009-06-15 10:57 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-14 13:34 |
用0000或FFFF代替的话,无论理论上和实际操作上都是一样的。所以,楼主是对的。应是17H。
另,这个论坛人气有点不行啊! | | |
|
|
|
|
|
[第3楼]
[ 回复时间:2009-06-25 12:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2009-06-09 13:56 |
| 经过我的试验,楼主的答案是正确的.楼主的精神可嘉,有分享精神! | | |
|
|
|
|
|
[第4楼]
[ 回复时间:2009-07-02 10:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2009-06-27 15:52 |
cx的值怎么就是汇编指令的总字节数了?
不知道怎么回事??? | | |
|
|
|
|
|
[第5楼]
[ 回复时间:2009-07-02 10:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2009-06-27 15:52 |
| cx不是循环吗?和汇编指令的总字节数有什么关系啊? | | |
|
|
|
|
|
[第6楼]
[ 回复时间:2009-07-19 00:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:188
信誉值:4
注册日期:2009-07-05 19:26 |
回复4楼,此问题可参阅书中第91页,对图4.19的解释
程序载入内存后,CX中存放的是该程序的长度. | | |
|
|
|
|
|
[第7楼]
[ 回复时间:2009-07-21 00:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-04-14 10:18 |
不管我用什么值代替,在debug中CX的值始终是001D啊!
1D-5=18啊! | | |
|
|
|
|
|
[第8楼]
[ 回复时间:2009-07-30 02:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2009-04-08 06:33 |
这一步这样子用,不用mov ax,___
而用
sub cx,05H
因为一开始,CX中存放着程序代码的长度,而
mov ax,4c00H
int 21H
占五个字节 | | |
|
|
|
|
|
[第9楼]
[ 回复时间:2009-08-11 19:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-08-04 21:04 |
| 用 mov ax,cs cx=17h和mov ax,code cx=18h都对的。 | | |
|
|
|
|
|
[第10楼]
[ 回复时间:2009-08-13 12:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-08-08 10:04 |
我这调试mov cx,17h的结果
-d cs:0 1f
0B63:0000 B8 63 0B 8E D8 B8 20 00-8E C0 BB 00 00 B9 17 00
0B63:0010 8A 07 26 88 07 43 E2 F8-B8 00 4C CD 21 C0 22 80
-d 20:0 1f
0020:0000 B8 63 0B 8E D8 B8 20 00-8E C0 BB 00 00 B9 17 00
0020:0010 8A 07 26 88 07 43 E2 00-00 00 00 00 00 00 00 00
-u cs:0
0B63:0000 B8630B MOV AX,0B63
0B63:0003 8ED8 MOV DS,AX
0B63:0005 B82000 MOV AX,0020
0B63:0008 8EC0 MOV ES,AX
0B63:000A BB0000 MOV BX,0000
0B63:000D B91700 MOV CX,0017
0B63:0010 8A07 MOV AL,[BX]
0B63:0012 26 ES:
0B63:0013 8807 MOV [BX],AL
0B63:0015 43 INC BX
0B63:0016 E2F8 LOOP 0010
0B63:0018 B8004C MOV AX,4C00
0B63:001B CD21 INT 21
-u 20:0
0020:0000 B8630B MOV AX,0B63
0020:0003 8ED8 MOV DS,AX
0020:0005 B82000 MOV AX,0020
0020:0008 8EC0 MOV ES,AX
0020:000A BB0000 MOV BX,0000
0020:000D B91700 MOV CX,0017
0020:0010 8A07 MOV AL,[BX]
0020:0012 26 ES:
0020:0013 8807 MOV [BX],AL
0020:0015 43 INC BX
0020:0016 E200 LOOP 0018
0020:0018 0000 ADD [BX+SI],AL
0020:001A 0000 ADD [BX+SI],AL
0020:001C 0000 ADD [BX+SI],AL
0020:001E 0000 ADD [BX+SI],AL
调试mov cx,18h的结果
-d cs:0 1f
0B63:0000 B8 63 0B 8E D8 B8 20 00-8E C0 BB 00 00 B9 18 00
0B63:0010 8A 07 26 88 07 43 E2 F8-B8 00 4C CD 21 C0 22 80
-d 20:0 1f
0020:0000 B8 63 0B 8E D8 B8 20 00-8E C0 BB 00 00 B9 18 00
0020:0010 8A 07 26 88 07 43 E2 F8-00 00 00 00 00 00 00 00
-u cs:0
0B63:0000 B8630B MOV AX,0B63
0B63:0003 8ED8 MOV DS,AX
0B63:0005 B82000 MOV AX,0020
0B63:0008 8EC0 MOV ES,AX
0B63:000A BB0000 MOV BX,0000
0B63:000D B91800 MOV CX,0018
0B63:0010 8A07 MOV AL,[BX]
0B63:0012 26 ES:
0B63:0013 8807 MOV [BX],AL
0B63:0015 43 INC BX
0B63:0016 E2F8 LOOP 0010
0B63:0018 B8004C MOV AX,4C00
0B63:001B CD21 INT 21
-u 20:0
0020:0000 B8630B MOV AX,0B63
0020:0003 8ED8 MOV DS,AX
0020:0005 B82000 MOV AX,0020
0020:0008 8EC0 MOV ES,AX
0020:000A BB0000 MOV BX,0000
0020:000D B91800 MOV CX,0018
0020:0010 8A07 MOV AL,[BX]
0020:0012 26 ES:
0020:0013 8807 MOV [BX],AL
0020:0015 43 INC BX
0020:0016 E2F8 LOOP 0010
0020:0018 0000 ADD [BX+SI],AL
0020:001A 0000 ADD [BX+SI],AL
0020:001C 0000 ADD [BX+SI],AL
0020:001E 0000 ADD [BX+SI],AL
结果:18h是正确的。 | | |
|
|
|
|
|
[第11楼]
[ 回复时间:2009-08-13 13:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-08-08 10:04 |
| 要复制的字节是:cs:0~cs:17h共24个字节。 | | |
|
|
|
|
|
[第12楼]
[ 回复时间:2009-08-21 18:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:2
注册日期:2009-08-16 13:20 |
|
|
|
|
|
|
[第13楼]
[ 回复时间:2009-10-19 15:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-19 15:08 |
assume cs:code
code segment
mov ax,code
mov ds,ax
mov ax,20H
mov es,ax
mov bx,0
mov cx,17h
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end | | |
|
|
|
|
|
[第14楼]
[ 回复时间:2009-10-27 16:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:14
注册日期:2008-09-03 11:12 |
我想是因为大家写的程序不一样,所以才有的是17H有的是18H。
不同之处在这里
mov ax,cs
和
mov ax,code
第一个是2字节的,第二个是3字节的,大家自己试试看。 | | |
|
|
|
|
|
[第15楼]
[ 回复时间:2009-10-30 13:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:16
注册日期:2009-10-21 20:01 |
|
|
|
|
|
|
[第16楼]
[ 回复时间:2009-11-02 00:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:9
信誉值:0
注册日期:2009-10-18 04:41 |
呵呵,这个问题大家是不是搞得太复杂了.要是照这样算的话那程序要是有个几百行不是要一行一行去算?
大家不妨试试这样
第一个空,cs
第二个空,cx
也就是这样
mov ax,cs
mov cx,cx | | |
|
|
|
|
|
[第17楼]
[ 回复时间:2009-11-11 09:31 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-28 16:36 |
|
|
|
|
|
|
[第18楼]
[ 回复时间:2009-11-11 19:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-18 09:53 |
| 我想问一下10楼的,你的那些代码是怎么复制出来的啊? | | |
|
|
|
|
|
[第19楼]
[ 回复时间:2009-11-18 20:31 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:2
注册日期:2009-05-25 18:12 |
| 右键标题栏--->编辑--->标记--->选中代码即已复制 | | |
|
|
|
|
|
[第20楼]
[ 回复时间:2009-11-18 20:32 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:2
注册日期:2009-05-25 18:12 |
我想问一下10楼的,你的那些代码是怎么复制出来的啊?
------------------
回复:右键标题栏--->编辑--->标记--->选中代码即已复制 | | |
|
|
|
|
|
[第21楼]
[ 回复时间:2009-11-20 14:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-18 09:53 |
|
|
|
|
|
|
[第22楼]
[ 回复时间:2009-11-22 11:32 ]
[引用]
[回复]
[ top ] | |
荣誉值:6
信誉值:0
注册日期:2009-10-30 15:46 |
8楼的思路好,16楼的思路更好,用mov cx,cx是最简便的。
如果是在初始化状态下debug这个程序,连mov cx,cx也可以省略不写,只要有loop语句,cx自然自动减1。
有个疑问就是,debug这个程序:用t一步一步打到最后,复制出来的"mov ax,4c00h"的机器码为"b8004c";用g或p跳出循环,则复制出来的"mov ax,4c00h"的机器码为"cc004c"。实际上前者是正确的,为什么用后面那种方法得出的结果不一样呢? | | |
|
|
|
|
|
[第23楼]
[ 回复时间:2009-12-08 16:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-11-12 16:40 |
|
|
|
|
|
|
[第24楼]
[ 回复时间:2010-01-02 16:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51 |
实际上这是一道再简单不过的问题了,不知道为什么论坛上有许多人都对它存有疑惑。正确答案就是:
第一个空毫无疑问应该是:
mov ax,cs
关键是第二个空,应该是:
mov cx,17h
接下来我来分析一下:
cs中存储了这段代码的起始位置,而不是用什么ds。
这道题的关键是我们需要复制的字节数,可我们怎么知道是23个字节(也就是17h)呢,首先将
mov cx,___这个空用0代替(因为无论如何cx都占2个字节,以后再把0替换过来),也就是mov cx,0。
然后编译连接代码,生成.exe程序放到debug中。再-r,就可以看到cx中的取值(cx中存放的是这个.exe程序的总字节数),cx=001c,001c等于28,但是要注意应该去掉mov ax,4c00h(对应机器码B8004C)和int 21h(对应机器码CD21)两句代码所占的字节数,总共五个字节,所以应该是28-5=23,转换成十六进制就是17h。然后重新编辑源程序,把mov cx,0替换成mov cx,17h就行了。
经过我的测试,这样做是绝对正确的。
------------------
回复:感谢, 我也正发愁呢,一句话典型梦中人呀~~~ | | |
|
|
|
|
|
[第25楼]
[ 回复时间:2010-01-10 19:57 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:6
注册日期:2010-01-07 10:37 |
|
|
|
|
|
|
[第26楼]
[ 回复时间:2010-01-12 10:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-12-30 08:49 |
| 还有个问题,就是我们并不知道IP的值是否为零,如何保证复制的内容一定是指令所在位置? | | |
|
|
|
|
|
[第27楼]
[ 回复时间:2010-01-15 02:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-12-20 13:28 |
为什么要先用0代替mov cx,___这个空??
还有其他方法可以推算出结果吗?? | | |
|
|
|
|
|
[第28楼]
[ 回复时间:2010-02-02 21:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-02-02 21:36 |
|
|
|
|
|
|
[第29楼]
[ 回复时间:2010-02-03 12:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:8
注册日期:2010-01-20 13:59 |
这是 mov ax,code
C:\>debug 1.exe
-r
AX=0000 BX=0000 CX=001D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=13E3 ES=13E3 SS=13F3 CS=13F3 IP=0000 NV UP EI PL NZ NA PO NC
13F3:0000 B8F313 MOV AX,13F3
-u
13F3:0000 B8F313 MOV AX,13F3
13F3:0003 8ED8 MOV DS,AX
13F3:0005 B82000 MOV AX,0020
13F3:0008 8EC0 MOV ES,AX
13F3:000A BB0000 MOV BX,0000
13F3:000D B91000 MOV CX,0010
13F3:0010 8A07 MOV AL,[BX]
13F3:0012 26 ES:
13F3:0013 8807 MOV [BX],AL
13F3:0015 43 INC BX
13F3:0016 E2F8 LOOP 0010
13F3:0018 B8004C MOV AX,4C00
13F3:001B CD21 INT 21
13F3:001D 837F0600 CMP WORD PTR [BX+06],+00
-q
这个是 mov ax,cs
C:\>debug 1.exe
-r
AX=0000 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=13E3 ES=13E3 SS=13F3 CS=13F3 IP=0000 NV UP EI PL NZ NA PO NC
13F3:0000 8CC8 MOV AX,CS
-u
13F3:0000 8CC8 MOV AX,CS
13F3:0002 8ED8 MOV DS,AX
13F3:0004 B82000 MOV AX,0020
13F3:0007 8EC0 MOV ES,AX
13F3:0009 BB0000 MOV BX,0000
13F3:000C B91000 MOV CX,0010
13F3:000F 8A07 MOV AL,[BX]
13F3:0011 26 ES:
13F3:0012 8807 MOV [BX],AL
13F3:0014 43 INC BX
13F3:0015 E2F8 LOOP 000F
13F3:0017 B8004C MOV AX,4C00
13F3:001A CD21 INT 21
13F3:001C 26 ES:
13F3:001D 837F0600 CMP WORD PTR [BX+06],+00
-q
显然是 code 占3个字节 cs 占2个直接麻........ | | |
|
|
|
|
|
[第30楼]
[ 回复时间:2010-02-07 20:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:1
注册日期:2010-01-22 20:12 |
| 我想18h跟17h的关键就在于mov ax,cs跟mov ax,code | | |
|
|
|
|
|
[第31楼]
[ 回复时间:2010-02-20 14:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-02-13 10:13 |
| mov cx,cx会出现问题,因为题目要求将mov ax,4c00h之前的指令复制到内存中,mov cx,cx全部都复制了 | | |
|
|
|
|
|
[第32楼]
[ 回复时间:2010-03-13 23:01 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-03-04 22:11 |
| 为什么我用DEBUG -R看的时候我的CX里是0019, | | |
|
|
|
|
|
[第33楼]
[ 回复时间:2010-03-17 19:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-03-07 18:18 |
| mov cx,22 和mov cx,23最后的实验结果都是一样的 | | |
|
|
|
|
|
[第34楼]
[ 回复时间:2010-03-28 13:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-03-27 09:11 |
| 可以直接用mov cx,cx-0005h 就好了。 | | |
|
|
|
|
|
[第35楼]
[ 回复时间:2010-04-03 16:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-11-25 23:56 |
回复:[第34楼]
------------------
不能那样写吧…… | | |
|
|
|
|
|
[第36楼]
[ 回复时间:2010-04-03 16:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-11-25 23:56 |
回复:[第1楼]
------------------
14D9:000C B90000 MOV CX,0000
用0 代替是这个样子的,用其他的数字代替应该也是一样的吧,都是四位十六进制,2字节么 | | |
|
|
|
|
|
[第37楼]
[ 回复时间:2010-04-28 16:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-03-11 12:36 |
回复:[第32楼]
------------------
因为你多写了一个 MOV ES,AX | | |
|
|
|
|
|
[第38楼]
[ 回复时间:2010-07-09 19:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:16
信誉值:0
注册日期:2010-07-09 09:48 |
| mov ax,cs mov cx,cx正确,复制以后没有出现mov ax,4c00h和int 21h这两个指令。你们说的17H 18H都是上机调试出来的结果,如果不调试 根本不可能知道代码的长度。 | | |
|
|
|
|
|
[第39楼]
[ 回复时间:2010-08-09 09:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:6
注册日期:2010-07-31 15:39 |
|
|
|
|
|
|
[第40楼]
[ 回复时间:2010-08-28 10:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-13 11:06 |
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
这些好像都不能被COPY到0:200 | | |
|
|
|
|
|
[第41楼]
[ 回复时间:2010-09-03 17:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-03-01 23:27 |
| 想到一个思路:mov cx,___随便添个数,把源程序编译连接后debug,取cx的值;删除要复制的代码,再编译连接,取cx的值,两个cx值之差不就是代码的字节数了么 | | |
|
|
|
|
|
[第42楼]
[ 回复时间:2010-09-04 18:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41 |
总感觉别扭。
书上说:Debug 加载入内存后,cx 中存放的是整个程序的长度。此时的 cx 是对 Debug 负责。
现在, mov cx,_____ 这里的cx是程序中关于后面 s 的循环次数。
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
这两者代表着不同的内容和含义。两者平台不一样。
就像有的学长讲的:填什么都不影响 Debug 的 cx 。既然这样,那么在不知道 S 的真实循环次数时,只有填 CX 。因为——你说啥就是啥。赞同16楼。 | | |
|
|
|
|
|
[第43楼]
[ 回复时间:2010-09-05 00:07 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41 |
如果从符合上下题意来讲的话,我认为应该填 code 和 64 。复制的是 标号code代码段的数据(字节大小为3Fh)。从内存dS:0000(原ss:sp栈段里的)到es:0000(新es=20h)。我是傻子硬数出来的。详见下面:
-r
AX=0000 BX=0000 CX=001D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C57 ES=0C57 SS=0C67 CS=0C67 IP=0000 NV UP EI PL NZ NA PO NC
0C67:0000 B8670C MOV AX,0C67
--d ss:0
0C67:0000 B8 67 0C 8E D8 B8 20 00-8E C0 BB 00 00 B9 40 00 .g.... .......@.
0C67:0010 8A 07 26 88 07 43 E2 F8-B8 00 4C CD 21 E9 99 C6 ..&..C....L.!...
0C67:0020 06 E8 99 FF 3C 3F 75 03-80 CF 02 3C 2A 75 30 80 ....<?u....<*u0.
0C67:0030 CF 02 80 3E 22 9A 00 75-04 EB 24 EB 78 B4 07 80 ...>"..u..$.x...
-d 0:200
0000:0200 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0220 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-u
0C67:0000 B8670C MOV AX,0C67
0C67:0003 8ED8 MOV DS,AX
0C67:0005 B82000 MOV AX,0020
0C67:0008 8EC0 MOV ES,AX
0C67:000A BB0000 MOV BX,0000
0C67:000D B94000 MOV CX,0040
0C67:0010 8A07 MOV AL,[BX]
0C67:0012 26 ES:
0C67:0013 8807 MOV [BX],AL
0C67:0015 43 INC BX
0C67:0016 E2F8 LOOP 0010
0C67:0018 B8004C MOV AX,4C00
0C67:001B CD21 INT 21
.............
-t
AX=0020 BX=0000 CX=001D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C67 ES=0020 SS=0C67 CS=0C67 IP=000D NV UP EI PL NZ NA PO NC
0C67:000D B94000 MOV CX,0040 注意:下面cx 改变了。
-t
AX=0020 BX=0000 CX=0040 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C67 ES=0020 SS=0C67 CS=0C67 IP=0010 NV UP EI PL NZ NA PO NC
0C67:0010 8A07 MOV AL,[BX] DS:0000=B8
.............
-t
0C67:0013 8807 MOV [BX],AL ES:0000=00
-t
AX=00B8 BX=0000 CX=0040 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C67 ES=0020 SS=0C67 CS=0C67 IP=0015 NV UP EI PL NZ NA PO NC
0C67:0015 43 INC BX
-d 0:200
0000:0200 B8 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0220 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-........
-t
AX=00B8 BX=0001 CX=003F DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C67 ES=0020 SS=0C67 CS=0C67 IP=0010 NV UP EI PL NZ NA PO NC
0C67:0010 8A07 MOV AL,[BX] DS:0001=67
-d 0:200
0000:0200 B8 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0220 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-t
AX=0067 BX=0001 CX=003F DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C67 ES=0020 SS=0C67 CS=0C67 IP=0012 NV UP EI PL NZ NA PO NC
0C67:0012 26 ES:
0C67:0013 8807 MOV [BX],AL ES:0001=00
-t
AX=0067 BX=0001 CX=003F DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C67 ES=0020 SS=0C67 CS=0C67 IP=0015 NV UP EI PL NZ NA PO NC
0C67:0015 43 INC BX
-d 0:200
0000:0200 B8 67 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .g..............
0000:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0220 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
.........
-g 0018
AX=0080 BX=0040 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C67 ES=0020 SS=0C67 CS=0C67 IP=0018 NV UP EI PL NZ AC PO NC
0C67:0018 B8004C MOV AX,4C00
-d ss:0
0C67:0000 B8 67 0C 8E D8 B8 20 00-8E C0 BB 00 00 B9 40 00 .g.... .......@.
0C67:0010 8A 07 26 88 07 43 E2 F8-B8 00 4C CD 21 E9 99 C6 ..&..C....L.!...
0C67:0020 06 E8 99 FF 3C 3F 75 03-80 CF 02 3C 2A 75 30 80 ....<?u....<*u0.
0C67:0030 CF 02 80 3E 22 9A 00 75-04 EB 24 EB 78 B4 07 80 ...>"..u..$.x...
-d 0:200
0000:0200 B8 67 0C 8E D8 B8 20 00-8E C0 BB 00 00 B9 40 00 .g.... .......@.
0000:0210 8A 07 26 88 07 43 E2 F8-CC 00 4C CD 21 E9 99 C6 ..&..C....L.!...
0000:0220 06 E8 99 FF 3C 3F 75 03-80 CF 02 3C 2A 75 30 80 ....<?u....<*u0.
0000:0230 CF 02 80 3E 22 9A 00 75-04 EB 24 EB 78 B4 07 80 ...>"..u..$.x...
0000:0240 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0250 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
--u 0:200
0000:0200 B8670C MOV AX,0C67
0000:0203 8ED8 MOV DS,AX
0000:0205 B82000 MOV AX,0020
0000:0208 8EC0 MOV ES,AX
0000:020A BB0000 MOV BX,0000
0000:020D B94000 MOV CX,0040
0000:0210 8A07 MOV AL,[BX]
0000:0212 26 ES:
0000:0213 8807 MOV [BX],AL
0000:0215 43 INC BX
0000:0216 E2F8 LOOP 0210
真辛苦。
请问各位学长,有好办法吗? | | |
|
|
|
|
|
[第44楼]
[ 回复时间:2010-09-05 01:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41 |
感觉还是有问题。没想明白。数据好像少了。
请问各位学长,有好办法吗? | | |
|
|
|
|
|
[第45楼]
[ 回复时间:2010-09-05 05:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41 |
| 不好意思。傻子半夜脑昏眼花,没有看清题目。让大家见笑了。 | | |