. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->[bx]和loop指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验四第三小题的正确答案  [待解决] 回复[ 45次 ]   点击[ 1443次 ]  
linyuqiufeng
[帖 主]   [ 发表时间: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就行了。

经过我的测试,这样做是绝对正确的。
bozar
[第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
wsay369
[第2楼]   [ 回复时间:2009-06-15 10:57 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-06-14 13:34
用0000或FFFF代替的话,无论理论上和实际操作上都是一样的。所以,楼主是对的。应是17H。
另,这个论坛人气有点不行啊!
microzyyz
[第3楼]   [ 回复时间:2009-06-25 12:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-06-09 13:56
经过我的试验,楼主的答案是正确的.楼主的精神可嘉,有分享精神!
xiaoquan09
[第4楼]   [ 回复时间:2009-07-02 10:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-06-27 15:52
cx的值怎么就是汇编指令的总字节数了?
不知道怎么回事???
xiaoquan09
[第5楼]   [ 回复时间:2009-07-02 10:44 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-06-27 15:52
cx不是循环吗?和汇编指令的总字节数有什么关系啊?
tinyparticle
[第6楼]   [ 回复时间:2009-07-19 00:24 ]   [引用]   [回复]   [ top ] 
荣誉值:188
信誉值:4
注册日期:2009-07-05 19:26
回复4楼,此问题可参阅书中第91页,对图4.19的解释
程序载入内存后,CX中存放的是该程序的长度.
dong_xiao_long
[第7楼]   [ 回复时间:2009-07-21 00:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-14 10:18
不管我用什么值代替,在debug中CX的值始终是001D啊!
1D-5=18啊!
891204dh
[第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
占五个字节
love.asm
[第9楼]   [ 回复时间:2009-08-11 19:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-08-04 21:04
用 mov ax,cs cx=17h和mov ax,code cx=18h都对的。
amu
[第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是正确的。
amu
[第11楼]   [ 回复时间:2009-08-13 13:18 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-08-08 10:04
要复制的字节是:cs:0~cs:17h共24个字节。
njutyangxiao
[第12楼]   [ 回复时间:2009-08-21 18:20 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:2
注册日期:2009-08-16 13:20
8楼好思路
chenxiaofan91
[第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
breakan
[第14楼]   [ 回复时间:2009-10-27 16:46 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:14
注册日期:2008-09-03 11:12
我想是因为大家写的程序不一样,所以才有的是17H有的是18H。
不同之处在这里
mov ax,cs 

mov ax,code
第一个是2字节的,第二个是3字节的,大家自己试试看。
heiok.com
[第15楼]   [ 回复时间:2009-10-30 13:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:16
注册日期:2009-10-21 20:01
CS与CODE的区别。。。。。
yiyn
[第16楼]   [ 回复时间:2009-11-02 00:21 ]   [引用]   [回复]   [ top ] 
荣誉值:9
信誉值:0
注册日期:2009-10-18 04:41
呵呵,这个问题大家是不是搞得太复杂了.要是照这样算的话那程序要是有个几百行不是要一行一行去算?
大家不妨试试这样
第一个空,cs
第二个空,cx
也就是这样
mov ax,cs
mov cx,cx
grimmjow
[第17楼]   [ 回复时间:2009-11-11 09:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-28 16:36
请问cs与code为什么会有区别?
yingxiaoxue
[第18楼]   [ 回复时间:2009-11-11 19:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-18 09:53
我想问一下10楼的,你的那些代码是怎么复制出来的啊?
kamjia
[第19楼]   [ 回复时间:2009-11-18 20:31 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:2
注册日期:2009-05-25 18:12
右键标题栏--->编辑--->标记--->选中代码即已复制
kamjia
[第20楼]   [ 回复时间:2009-11-18 20:32 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:2
注册日期:2009-05-25 18:12
我想问一下10楼的,你的那些代码是怎么复制出来的啊?
------------------
回复:右键标题栏--->编辑--->标记--->选中代码即已复制
yingxiaoxue
[第21楼]   [ 回复时间:2009-11-20 14:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-18 09:53
知道了谢谢十楼的,呵呵……
hjq
[第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"。实际上前者是正确的,为什么用后面那种方法得出的结果不一样呢?
hyaline
[第23楼]   [ 回复时间:2009-12-08 16:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-12 16:40
楼主辛苦啦,讲的很详细,一看就懂了。谢谢
regex
[第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就行了。

经过我的测试,这样做是绝对正确的。
------------------
回复:感谢, 我也正发愁呢,一句话典型梦中人呀~~~
qiangzi
[第25楼]   [ 回复时间:2010-01-10 19:57 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:6
注册日期:2010-01-07 10:37
呵呵,终于找到答案了~~~
goodbye
[第26楼]   [ 回复时间:2010-01-12 10:36 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-12-30 08:49
还有个问题,就是我们并不知道IP的值是否为零,如何保证复制的内容一定是指令所在位置?
o3pengk
[第27楼]   [ 回复时间:2010-01-15 02:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-12-20 13:28
为什么要先用0代替mov cx,___这个空??
   还有其他方法可以推算出结果吗??
tteyes
[第28楼]   [ 回复时间:2010-02-02 21:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-02-02 21:36
我就不知道怎么算字节,忘了,所以填的FF
cainiuniao
[第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个直接麻........
tangdandang
[第30楼]   [ 回复时间:2010-02-07 20:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2010-01-22 20:12
我想18h跟17h的关键就在于mov ax,cs跟mov ax,code
superyangyw
[第31楼]   [ 回复时间:2010-02-20 14:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-02-13 10:13
mov cx,cx会出现问题,因为题目要求将mov ax,4c00h之前的指令复制到内存中,mov cx,cx全部都复制了
iced
[第32楼]   [ 回复时间:2010-03-13 23:01 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-03-04 22:11
为什么我用DEBUG -R看的时候我的CX里是0019,
lovezkd
[第33楼]   [ 回复时间:2010-03-17 19:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-03-07 18:18
mov cx,22 和mov cx,23最后的实验结果都是一样的
ddup
[第34楼]   [ 回复时间:2010-03-28 13:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-03-27 09:11
可以直接用mov cx,cx-0005h 就好了。
itx
[第35楼]   [ 回复时间:2010-04-03 16:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-25 23:56
回复:[第34楼]
------------------
不能那样写吧……
itx
[第36楼]   [ 回复时间:2010-04-03 16:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-25 23:56
回复:[第1楼]
------------------
14D9:000C B90000        MOV     CX,0000
用0 代替是这个样子的,用其他的数字代替应该也是一样的吧,都是四位十六进制,2字节么
wfcylws
[第37楼]   [ 回复时间:2010-04-28 16:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-03-11 12:36
回复:[第32楼]
------------------
因为你多写了一个    MOV     ES,AX
jjch224
[第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都是上机调试出来的结果,如果不调试 根本不可能知道代码的长度。
zwjq
[第39楼]   [ 回复时间:2010-08-09 09:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:6
注册日期:2010-07-31 15:39
十四楼说的完全正确!谢谢哈
dj_scorpio
[第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
cwbdawei
[第41楼]   [ 回复时间:2010-09-03 17:30 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-03-01 23:27
想到一个思路:mov cx,___随便添个数,把源程序编译连接后debug,取cx的值;删除要复制的代码,再编译连接,取cx的值,两个cx值之差不就是代码的字节数了么
xshz
[第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楼。
xshz
[第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
真辛苦。
请问各位学长,有好办法吗?
xshz
[第44楼]   [ 回复时间:2010-09-05 01:38 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41
感觉还是有问题。没想明白。数据好像少了。


请问各位学长,有好办法吗?
xshz
[第45楼]   [ 回复时间:2010-09-05 05:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41
不好意思。傻子半夜脑昏眼花,没有看清题目。让大家见笑了。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2010   ASMEDU.NET  All Rights Reserved