. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
主题 : :  分析一个奇怪的程序遇到问题?  [待解决] 回复[ 34次 ]   点击[ 2462次 ]  
lovecpu
[帖 主] [ 发表时间:2007-06-26 20:49 ] 
荣誉值:5
信誉值:3
注册日期:2007-06-26 20:40
分析下面的程序,在运行前思考:这个程序可以正确返回吗?  
  运行后再思考:为什么是这种结果?  
   
   
  assume   cs:codesg  
  codesg   segment  
   
  mov   ax,4c00h  
  int   21h  
   
  start: mov   ax,0  
  s: nop  
  nop  
  mov   di,offset   s  
  mov   si,offset   s2  
  mov   ax,cs:[si]  
  mov   cs:[di],ax  
   
  s0: jmp   short   s  
   
  s1: mov   ax,0  
  int   21h  
  mov   ax,0  
   
  s2: jmp   short   s1  
  nop  
   
  codesg   ends  
  end   start
thedaydreamwang
[第17楼] [ 回复时间:2010-01-09 03:57 ] 
荣誉值:0
信誉值:0
注册日期:2009-10-07 14:18
assume cs:codesg
            codesg segment
                        mov ax,4c00h
                        int 21h
             start: mov ax,0
                    s: nop
                        nop
                         mov di,offset s
                          mov si,offset s2
                           mov ax,cs:[si]
                            mov cs:[di],ax
                       s0: jmp short s
                        s1: mov ax,0
                               int 21h
                               mov ax,0
                         s2: jmp short s1
                               nop 
                 codesg ends
                    end  start

C:\>debug32 c:\masm\qi.exe
Debug32 - Version 1.0 - Copyright (C) Larson Computing 1994

CPU = 686, Virtual 8086 Mode, Id/Step = 067A, A20 enabled
-r
AX=0000  BX=0000  CX=0023  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=2186  ES=2186  SS=2196  CS=2196  IP=0005  NV UP DI PL NZ NA PO NC
2196:0005 B80000           MOV     AX,0000h
-u
2196:0008 90               NOP
2196:0009 90               NOP
2196:000A BF0800           MOV     DI,0008h
2196:000D BE2000           MOV     SI,0020h
2196:0010 2E8B04           MOV     AX,CS:[SI]
2196:0013 2E8905           MOV     CS:[DI],AX
2196:0016 EBF0             JMP     Short 0008

2196:0018 B80000           MOV     AX,0000h
2196:001B CD21             INT     21h
2196:001D B80000           MOV     AX,0000h
2196:0020 EBF6             JMP     Short 0018

2196:0022 90               NOP
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved