我在src/lib/i386/rts_sendrec.s
一开始,就写出了以下陈述。
SEND = 1
RECEIVE = 2
BOTH = 3
SYSVEC = 33
SRCDEST = 8
MESSAGE = 12
我该如何解释上述陈述?例如,SRCDEST=8,我应该阅读吗因为SRCEST具有值8。如果是,则以下语句不会对我来说有任何意义。如果不是,SRCEST、MESSAGE、BOTH是什么?它们是内置的吗功能?如果是,它们在.s文件中的定义在哪里?
根据评论,eax = dest-src
。dest和src的值是什么?CCD_ 2。这是否意味着ebx是对基指针的引用?至于mov ecx, BOTH ! _sendrec(srcdest, ptr)
,这里到底发生了什么?如果有人能对以下陈述或给我指一两个链接。我已经上网好几天了,运气不好查找信息。谢谢你抽出时间。
__sendrec:
mov eax, SRCDEST(ebp) ! eax = dest-src
mov ebx, MESSAGE(ebp) ! ebx = message pointer
mov ecx, BOTH ! _sendrec(srcdest, ptr)
SEND
、RECEIVE
和BOTH
分别是值为1、2和3的常数。它们表示您正在执行的操作(1表示"发送",2表示"接收",3表示"发送和接收")。
SRCDEST
和MESSAGE
常量是堆栈上的偏移量,其中存储了表示源/目的地和消息的值。
SYSVEC
是中断号。