汇编语言:SI、DI、BX、BP、SS、DS分别是什么?怎样根据这些求物理地址?

时间:2025-02-08 20:18:57
  • 汇编语言 SI DI BX BP SS DS 是什么?
    SI:16位寄存器,源变址寄存器
    DI:16位寄存器,目的变址寄存器
    BX:16位寄存器(可分成2个8位寄存器BH,BL),数据基址寄存器
    BP:16位寄存器,栈基址指针寄存器
    SS:16位段寄存器,作用是存放当前堆栈段的段地址,一般和SP连用
    DS:16位段寄存器,作用是存放当前数据段的段地址

  • 怎样根据这些求物理地址?
    上面的这几个寄存器跟求物理地址谈不上关系
    指令中出现BP作地址,则其段地址为SS,指令中出现IP作地址,则其段地址为CS,否则就为DS作段地址
    物理地址 = 段地址×16(基础地址) + IP(偏移地址) = CS*10H(基础地址)+ IP(偏移地址)
    CS: 16位段寄存器,存放当前代码段的段地址
    IP: 存放下一条要执行的指令的偏移地址

  • 汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。