汇编学习历程(int中断学习)
2013-04-19 21:48
781 查看
以下是我学习int中断的一个历程,劫持除法溢出中断!
assume cs:code,ds:data,ss:stack
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,32 ;设置相关寄存器
push ds ;保存DS段寄存器数据
mov ax,cs
mov ds,ax
mov si,offset _subStart ;设置起始数据传输地址为cs:_subStart
mov ax,0h
mov es,ax
mov di,200h ;设置目的传送地址为0:200
mov cx,offset _subEnd - offset _subStart ;设置传送长度
cld ;设置传送方向
rep movsb ;开始传送
pop ds
mov ax,0
mov es,ax
mov word ptr es:[0*4],200h
mov word ptr es:[0*4+2],0 ;修改中断向量表
mov ax,4c00h
int 21h
_subStart: ;中断处理开始
jmp ok
db 'This Is A Test!','$' ;定义输出数据
ok:
push ax
push bx
push ds ;保存相关寄存器
mov ax,0
mov ds,ax
mov dx,202h
mov ah,9
int 21h ;调用21中断显示字符串
pop ds
pop bx
pop ax ;恢复堆栈
mov ax,4c00h
int 21h ;程序退出
_subEnd:nop
code ends
stack segment
dw 16 dup(0)
stack ends
data segment
db 'this is a sssdfasd$'
data ends
end start
assume cs:code,ds:data,ss:stack
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,32 ;设置相关寄存器
push ds ;保存DS段寄存器数据
mov ax,cs
mov ds,ax
mov si,offset _subStart ;设置起始数据传输地址为cs:_subStart
mov ax,0h
mov es,ax
mov di,200h ;设置目的传送地址为0:200
mov cx,offset _subEnd - offset _subStart ;设置传送长度
cld ;设置传送方向
rep movsb ;开始传送
pop ds
mov ax,0
mov es,ax
mov word ptr es:[0*4],200h
mov word ptr es:[0*4+2],0 ;修改中断向量表
mov ax,4c00h
int 21h
_subStart: ;中断处理开始
jmp ok
db 'This Is A Test!','$' ;定义输出数据
ok:
push ax
push bx
push ds ;保存相关寄存器
mov ax,0
mov ds,ax
mov dx,202h
mov ah,9
int 21h ;调用21中断显示字符串
pop ds
pop bx
pop ax ;恢复堆栈
mov ax,4c00h
int 21h ;程序退出
_subEnd:nop
code ends
stack segment
dw 16 dup(0)
stack ends
data segment
db 'this is a sssdfasd$'
data ends
end start
相关文章推荐
- 汇编学习历程(键盘中断劫持)
- 汇编学习历程(按键中断劫持)
- 汇编入门学习----第二天(1)--中断【原创】
- 汇编中断中显示属性字节(一般为BL)的学习笔记
- 一步步学习汇编(14)之中断二(破解软件的必修课五)
- [汇编学习笔记][第十二章内中断]
- 汇编语言第十三章-int中断
- 【学习笔记】汇编:关于内中断的规则
- 汇编入门学习笔记 (十二)—— int指令、端口
- 汇编语言学习第十二章-内中断
- 汇编中的10H中断int 10h详细说明
- 汇编学习历程(端口操作)
- 汇编语言---关于int中断问题的思考
- 8086汇编学习小记-王爽汇编语言第十五章外中断及实验15
- int指令(学习汇编)
- 汇编,编写并安装int 7ch中断例程,功能为完成loop指令的功能
- [置顶] [汇编学习笔记][第十二章内中断]
- 汇编中的10H中断int 10h详细说明
- 汇编学习--7.16--中断
- [汇编学习笔记][第十三章int指令]