免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 656 | 回复: 0
打印 上一主题 下一主题

第五章实验4 日记 [2007年05月13日] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-13 22:29 |只看该作者 |倒序浏览
第五章 实验4
|------------------------------ C:\STUDY\T3.ASM -------------------------------|
|assume cs:codeseg                                                             
|codeseg segment                                                              
|        mov ax,cs                                                            
|        mov ds,ax                                                            
|        mov ax,20h                                                            
|        mov es,ax                                                            
|        mov bx,0                                                              
|        mov cx,cx                                                            
|      s:mov al,ds:[bx]                                                        
|        mov es:[bx],al                                                        
|        inc bx                                                               
|        loop s                                                               
|        mov ax,4c00h                                                         
|        int 21h                                                               
|codeseg ends                                                                  
|end                                                                           

疑问在于cx记录全长,上面的代码理应完成的是复制整个程序,包括mov ax,4c00h 和 int 21h
但恰恰完成题目要求. 这是为什么?

-r
AX=00F8  BX=0015  CX=0006  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1EDF  ES=0020  SS=1EDF  CS=1EDF  IP=0010   NV UP EI PL NZ NA PO NC
1EDF:0010 26            ES:
1EDF:0011 8807          MOV     [BX],AL                            ES:0015=FF
-u es:0 1b
0020:0000 8CC8          MOV     AX,CS
0020:0002 8ED8          MOV     DS,AX
0020:0004 B82000        MOV     AX,0020
0020:0007 8EC0          MOV     ES,AX
0020:0009 BB0000        MOV     BX,0000
0020:000C 8BC9          MOV     CX,CX
0020:000E 8A07          MOV     AL,[BX]
0020:0010 26            ES:
0020:0011 8807          MOV     [BX],AL
0020:0013 43            INC     BX
0020:0014 E2FF          LOOP    0015
0020:0016 00F0          ADD     AL,DH
0020:0018 53            PUSH    BX
0020:0019 FF00          INC     WORD PTR [BX+SI]
0020:001B F0            LOCK
0020:001C 53            PUSH    BX
-t
AX=00F8  BX=0015  CX=0006  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1EDF  ES=0020  SS=1EDF  CS=1EDF  IP=0013   NV UP EI PL NZ NA PO NC
1EDF:0013 43            INC     BX
-u es:13 1b
0020:0013 43            INC     BX
0020:0014 E2F8          LOOP    000E
0020:0016 00F0          ADD     AL,DH
0020:0018 53            PUSH    BX
0020:0019 FF00          INC     WORD PTR [BX+SI]
0020:001B F0            LOCK
0020:001C 53            PUSH    BX
-t
AX=00F8  BX=0016  CX=0005  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1EDF  ES=0020  SS=1EDF  CS=1EDF  IP=000E   NV UP EI PL NZ NA PO NC
1EDF:000E 8A07          MOV     AL,[BX]                            DS:0016=B8
-t
AX=00B8  BX=0016  CX=0005  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1EDF  ES=0020  SS=1EDF  CS=1EDF  IP=0010   NV UP EI PL NZ NA PO NC
1EDF:0010 26            ES:
1EDF:0011 8807          MOV     [BX],AL                            ES:0016=00
-t
AX=00B8  BX=0016  CX=0005  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1EDF  ES=0020  SS=1EDF  CS=1EDF  IP=0013   NV UP EI PL NZ NA PO NC
1EDF:0013 43            INC     BX
-u es:13 1b
0020:0013 43            INC     BX
0020:0014 E2F8          LOOP    000E
0020:0016 B8F053        MOV     AX,53F0
0020:0019 FF00          INC     WORD PTR [BX+SI]
0020:001B F0            LOCK
0020:001C 53            PUSH    BX
-
-p
AX=0021  BX=001B  CX=0000  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1EDF  ES=0020  SS=1EDF  CS=1EDF  IP=0016   NV UP EI PL NZ NA PE NC
1EDF:0016 B8004C        MOV     AX,4C00
-u es:0 1c
0020:0000 8CC8          MOV     AX,CS
0020:0002 8ED8          MOV     DS,AX
0020:0004 B82000        MOV     AX,0020
0020:0007 8EC0          MOV     ES,AX
0020:0009 BB0000        MOV     BX,0000
0020:000C 8BC9          MOV     CX,CX
0020:000E 8A07          MOV     AL,[BX]
0020:0010 26            ES:
0020:0011 8807          MOV     [BX],AL
0020:0013 43            INC     BX
0020:0014 E2F8          LOOP    000E
0020:0016 B8004C        MOV     AX,4C00
0020:0019 CD21          INT     21
0020:001B F0            LOCK
0020:001C 53            PUSH    BX
-
可见确实复制了整个程序

但是很奇怪的是有一次又确实只是复制到020:0016为止 怎么回事?  以后再没发生

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13779/showart_300432.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP