鱼C论坛

 找回密码
 立即注册

int 7ch 偶的代码

已有 439 次阅读2013-2-17 12:31

t49.asm(调用者)
assume cs:code
code segment
start: mov ax,3456
int 7ch
add ax,ax
adc dx,dx
mov ax,4c00h
int 21h


code ends
end start
t50.asm(主要实现中断处理程序的代码实现、代码安装、中断向量表设置,然后再其他程序调用int 7ch时候会默认调用该中断处理程序)

assume cs:code
code segment
start: mov ax, 0
mov es,ax
mov di,200h  ;目的地址
mov ax, code
mov ds,ax
mov si,offset fstart ;源地址
mov cx,offset fend - offset fstart
cld
rep movsb   ;先复制代码
mov ax,0
mov ds,ax
mov word ptr ds:[7ch*4+2h],0 ;段地址
mov word ptr ds:[7ch*4],200h ;偏移地址
mov ax,4c00h
int 21h
fstart: mul ax
iret
fend  : nop


code ends
end start

iret作用: CPU在执行int 7ch指令进入中断处理例程之前,标志寄存器、当前的CS、IP被压入栈中,在执行完中断例程之后,应该用iret指令回复int 7ch指令执行之前的IP、CS和标志寄存器的值,从而接着继续执行程序

int n 与iret(可以理解为int指令的ret)指令的配合使用像 Call与ret的配合使用有异曲同工之妙


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-7 03:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部