用汇编语言怎么编中断向量程序

用汇编语言怎么编中断向量程序,第1张

你问的可真轻松啊,我只简单的说下

先用DOS取中断功能保存已存在的中断到内存,中断向量程序格式与过程类似,过程类型为FAR,堆栈用主程序堆栈,然后压用到的寄存器,之后是功能代码。最后取中断向量的地址用DOS设置中断向量功能添加到中断向量表。

在主程序结束前要恢复原中断

手机很麻烦,搜一下很多的。

ORG

00H

开始地址

JMP

MAIN

跳转到主程序

ORG

03H

外部中断0地址

JMP

EXT1

跳转

ORG

13H

外部中断1地址

JMP

EXT2

跳转

MAIN:

MOV

IE,

#85H

使能中断

0,1

SETB

TCON.2

边沿触发

SETB

TCON.0

边沿触发

SJMP

$

--没有这一句,程序,自己就去执行中断函数

EXT1:

MOV

P2,

#0

清0,点亮发光二极管

RETI

EXT2:

MOV

P2,

#0FFH

置1,关闭

RETI

END

你的意思是不是怎么用C语言实现汇编中的中断?

汇编中的中断是通过在中断向量表中对应位置的一条跳转指令跳到中断程序来实现中断的;而C语言也是差不多,只不过C语言的中断函数要用一个特殊的关键字去标明它,比如“#pragma

interrupt_handler

int_function()",当然,每一种编译器可能都不一样;这是中断函数与普通函数的区别。当然编译器碰到一个有这样关键字的函数时就知道它是中断函数,就会把这个函数的入口地址放到中断向量表中对应的位置去。当中断来的时候,这样就能跳到中断里面执行中断程序了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11807311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存