执行iret出栈的CS,IP ,是怎么压入栈的?
assume cs:codedata segment
db 'conversation',0
data ends
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset nr
mov ax,0
mov es,ax
mov di,200h
mov cx,offset nrend-offset nr
cld
rep movsb
;以上9句为安装中断例程
mov word ptr es:,200h
mov word ptr es:,0
mov ax,data
mov ds,ax
mov si,0
mov ax,0b800h
mov es,ax
mov di,12*160
s: cmp byte ptr ,0 ;es:si处的数据跟0比较
je ok
mov al,
mov es:,al
mov word ptr es:,0cah
inc si
add di,2
mov bx,offset s-offset ok
int 7ch
ok: mov ax,4c00h
int 21h
nr: push bp ;定义中断例程[开始]
mov bp,sp
add ,bx
nrret:pop bp
iret ;中断返回 执行iret后出栈的CS,IP是怎么指向s处的 它是在什么地方被压栈的?望指教。谢谢!
nrend:nop ;定义中断例程[结束]
code ends
end start
add ,bx ,对压入栈中的ip进行了偏移。 int 7ch 好像很复杂的样子:sad
页:
[1]