1

我偶然发现了 src/lib/i386/rts/_sendrec.s 中的以下说明

一开始,写出以下语句。

SEND = 1

RECEIVE = 2

BOTH = 3

SYSVEC = 33

SRCDEST = 8
MESSAGE = 12

我如何解释上述陈述?例如,SRCDEST = 8,我应该将其读取为 SRCDEST 的值为 8。如果是,则以下语句对我没有任何意义。如果不是,什么是 SRCDEST、MESSAGE 和 BOTH?它们是内置函数吗?如果是,它们在 .s 文件中的何处定义?

根据评论,eax = dest-src。dest 和 src 的值是多少? ebx = message pointer. 这是否意味着 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)
4

1 回答 1

2

SENDRECEIVEBOTH是分别具有值 1、2 和 3 的常数。它们代表您正在执行的操作(1 表示“发送”,2 表示“接收”,3 表示“发送和接收”)。

SRCDESTMESSAGE常量是存储代表源/目标和消息的值的堆栈上的偏移量。

SYSVEC是中断号。

于 2012-07-10T04:53:32.987 回答