| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 lsjtys2 于 2017-7-29 16:53 编辑  
 
用7ch中断完成loop指令答案: 
assume cs:code 
code segment 
start:mov ax,cs 
      mov ds,ax 
          mov si,offset do0 
          mov ax,0 
          mov es,ax 
          mov di,200h 
          mov cx,offset do0end-offset do0 
          cld 
          rep movsb 
           
          mov ax,0 
          mov es,ax 
          mov word ptr es:[7ch*4],200h 
          mov word ptr es:[7ch*4+2],0 
           
          mov ax,4c00h 
          int 21h 
           
do0:  push bp 
      mov bp,sp 
          add [bp+2],bx 
          pop bp 
          iret 
          mov ax,4c00h 
          int 21h 
do0end:nop 
code ends 
end start 
 
有一点不明白 do0 段中add [bp+2],bx   是把栈里的ip拿出来修改,实现loop循环 
索引的段地址应该是ds没错吧! 是add ds:[bp+2],bx  这样段地址是数据段的段地址和栈的偏移地址是怎么可能修改到栈里的ip的? |   
 
 
 
 |