leader4 发表于 2018-5-28 17:36:31

《王爽汇编》实验13_2

依旧是小错误不断~{:10_277:}
;功能:完成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:,200h
mov word ptr es:,0

mov ax,4c00h
int 21h

show_loop:
push bp
mov bp,sp
dec cx
jcxz show_loopend
add ,bx

show_loopend:
pop bp
iret
show_codeend:
nop
code ends
end start
页: [1]
查看完整版本: 《王爽汇编》实验13_2