|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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的? |
|