马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
依旧是小错误不断~ ;功能:完成loop指令的功能
;参数:(cx)=循环次数,(bx)=位移
;
;思路:
;第一部分:向特定内存写入特定程序
;第二部分:修改中断向量表
;第三部分:编写特定程序
;
;第三部分详解:
;cx自减
;判断cx是否等于0,等于0则直接返回
;计算se的偏移地址+距离,写入sp,退出中断,用写入的sp替代cs:ip
;
;
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset show_loop
mov ax,0
mov es,ax
mov di,200h
mov cx,offset show_codeend-offset show_loop
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
show_loop:
push bp
mov bp,sp
dec cx
jcxz show_loopend
add [bp+2],bx
show_loopend:
pop bp
iret
show_codeend:
nop
code ends
end start
|