汇编网首页登录博客注册
zwjq的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
文章收藏

[2010-08-15 19:14] 实验八

图片载入中
分析:实验九这个程序为什么说其奇怪,原因是它的这两条指令
mov ax,4c00h
int 21h
不在程序末尾,而跑到程序开头去了,按常理顺序执行的话从start开始,程序将不会碰到这两条指令,也回不到cmd的操作环境下。然而程序中存在着的 jmp指令使程序执行又返回至那两条指令。具体如下:
该程序中
assume cs:codesg
codesg segment

mov ax,4c00h
int 21h

start:mov ax,0               占三个机器码
    s:nop
      nop
      
      mov di,offset s       此时di 为8
      mov si,offset s2           ci 为20
      mov ax,cs:[si]          
      mov cs:[di],ax        这两条指令把标号s2所在的内存单元内容(字节)复制到s所在的内存单元内容,即把两个nop给覆盖了,机器码内容为EBF6(F6为补码-10)
  
   s0:jmp short s           程序执行到这一步跳到s标号处(EBF6)    最后再跳到偏移地址为0的那两条指令,程序结束。
    
   s1:mov ax,0             以下均不被执行
      int 21h
      mov ax,0
  
   s2:jmp short s1
      nop
  
codesg ends
end start
评论次数(0)  |  浏览次数(304)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码