汇编-13.0-int指令
Posted xigongxiaosha
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编-13.0-int指令相关的知识,希望对你有一定的参考价值。
1.int指令
int指令的格式为:int n,n为中断类型码,它的功能是引发中断过程。
执行int n指令,相当于引发一个中断号为n的中断过程。
(1).取中断类型码n;
(2).标志寄存器入栈,IF=0,TF=0;
(3).CS、IP入栈;
(4).(IP)=(n*4),(CS)=(n*4+2).
int指令的最终功能是和call指令相似,都是调用子程序。
2.编写应用程序调用的中断例程
(1).
功能:求一word型数据的平方。
参数:(ax)= 要计算的数据。
返回值:dx、ax中存放结果的高16位和低16位。
应用举例:求2*3456^2
assume cs:code code segment start:mov ax,3456 ;(ax)=3456 int 7ch ;调用中断7ch的中断过程,计算ax中数据的平方 add ax,ax adc dx,dx ;dx:ax存放结果,将结果乘以2 mov ax,4c00h int 21h code ends end start
(2).中断例程
*编写实现要求平方的程序;
*安装程序,将其安装在0:200处;
*设置中断向量表,将程序的入口地址保存在7ch表项中,使其成为中断7ch的中断例程。
assume cs:code code segment start: mov ax,cs mov ds,ax mov si,offset sqr ;设置ds:si指向源地址 mov ax,0 mov es,ax mov di,200h ;设置es:di指向目的地址 mov cx,offset ssqrend-offset sqr ;设置cx为传输长度 cld ;设置传输方向,标志寄存器的DF位置0 rep movsb mov ax,0 mov es,ax mov word ptr es:[7ch*4],200h mov word ptr es:[7ch*4+2],0 ;设置中断向量表 mov ax,4c00h int 21h sqr: mul ax iret sqrend:nop code ends end start
在中断例程的最后,要使用iret指令,返回程序原来正在执行的位置。
以上是关于汇编-13.0-int指令的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段