|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
assume cs:code
code 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:[7ch*4],200h
mov word ptr es:[7ch*+2],0
mov ax,4c00h
int 21h
ip:push bp
mov bp,sp
dec cx
jcxz ipset
add [bp+2],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 结束)总的字节数
复制代码
|
|