7ch中断例程
来源:百度知道 编辑:UC知道 时间:2024/06/08 17:53:07
lp: ;中断例程定义[开始]
push bp
mov bp,sp
dec cx
jcxz lpret
add [bp+2],bx
lpret: pop bp
iret ;中断的返回指令
lpend: nop ;中断例程定义[结束]
code ends
end start
书上说 因为访问了栈,使用了bp在程序考试处将bp入栈保存,结束时出栈恢复~~
为什么要bp? 起到什么作用? 为什么要用?
push bp
mov bp,sp
dec cx
jcxz lpret
add [bp+2],bx
lpret: pop bp
iret ;中断的返回指令
lpend: nop ;中断例程定义[结束]
code ends
end start
书上说 因为访问了栈,使用了bp在程序考试处将bp入栈保存,结束时出栈恢复~~
为什么要bp? 起到什么作用? 为什么要用?
基数指针寄存器
BP(base pointer),这些寄存器在运算过程中也可以用来存放操作
指针寄存器包括堆栈寄存器SP(stack pointer)和基数指针寄存器
BP(base pointer),这些寄存器在运算过程中也可以用来存放操作
数(只能 以字为单位)
但经常的用途是在段内寻址时提供偏移地址,SP,BP一般与段寄存器SS联用,
以确定堆栈寄存器中某一单元的地址,SP用以指示栈顶的偏移地址,而BP可
作为堆栈区中的一个基地址,用以确定在堆栈中的操作数地址。
为什么要bp?因为BP 是无需说明的,唯一的隐含对堆栈段寻址的寄存器.