bp是基址寻址寄存器,默认的段是堆栈段。在不是默认段的情况下,称为:段超越。段超越情况下的寻址,必须要加上段超越前缀。es:bp就是段超越的应用事例之一。
至于,当al=13的时候,int10为什么要这样规定,必然是其它寻址寄存器已有它用,不得已而用bp。
访问内存必须加上段寄存器,平时不写因为会使用指令默认的段,比如多数情况下是ds
这里es:bp仅仅是这个中断的规定。
BP是基址指针寄存器,表示堆栈段中的基地址,默认是与SS段寄存器结合来找到实际的物理地址。而ES:[BP]告诉汇编程序:BP将与段寄存器ES结合,即EA=(BP)。