设置cx传输长度是用offset ipend-offset ip
assume cs:codecode segment
start:mov ax,cs
mov ds,ax
mov si,offset ip ;设置ds:si指向源地址
mov ax,0
mov es,ax
mov di,200h
mov cx,offset ipend-offset ip ;设置cx为传输长度
cld
movsb
mov ax,0
mov es,ax
mov word ptr es:,200h
mov word ptr es:,0
mov ax,4c00h
int 21h
ip:push bp
mov bp,sp
dec cx
jcxz ipset
add ,bx
ipset:pop bp
iret
mov ax,4c00h
int 21h
ipend:nop
code ends
end start
这是7ch中断例程,请问为何设置cx传输长度是用offset ipend-offset ip,求详解 本帖最后由 jackz007 于 2019-3-21 23:30 编辑
ip: push bp ; offset ip 是本条指令在 code 段内的偏移
. . . . . .
int 21h
ipend: nop ; offset ipend是本条指令(也是上一条指令的结束点) 在 code 段内的偏移
; offset ipend - offset ip = 中断处理程序代码从头到尾(从 ip 开始,到 ipend 结束)总的字节数
页:
[1]