这几句汇编语句是什么意思

来源:百度知道 编辑:UC知道 时间:2024/05/31 11:52:14
LES BX,DWORD PTR DS:_OSTCBHiGHrDY
MOV SS,ES:[BX+2]
MOV SP,ES:[BX+0]

这几句的目的就是实现 SS:SP = OSTCBHighRdy->OSTCBStkPtr
能具体解释下吗?

LES BX,DWORD PTR DS:_OSTCBHiGHrDY
;LES BX,...这种形式就是把某个偏移地址(或说指针)装入到BX中,这个偏移地址的默认段地址就是ES 所以,这里的ES:[BX]指向内容就是OSTCBHiGHrDY的入口地址.而装入的时候是以双字的形式(DWORD),所以,也就把OSTCBHiGHrDY的段地址DS也装入到了ES:[BX+2]中.

MOV SS,ES:[BX+2]
;把ES:[BX+2]指向的地址,赋给SS,当作堆栈段的段地址.实质是把DS赋给SS.

MOV SP,ES:[BX+0]
;把ES:[BX+0](与不加0是一样的)赋给栈指针SP.其实就是把函数的入口地址(或偏移地址)赋给SP