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