豫豫言文档API ATLAS
入口包说明.html
97 模块899 名称
← 全部模块

模块 / 15

兼降级原语。豫

兼降级原语。豫

52公开名称

兼虚拟寄存器数

公开
「整数」

文言:此层备寄存器降级所需之兼容原语,寄存器号皆物理号。汉语:AMD64 原语。通用条件码与 ARM 相同:零相等 一不等 二有符号小于 三有符号大等 四有符号大于 五有符号小等 六无符号小于 七无符号大等 八无符号大于 九无符号小等。物理寄存器约定:rbx、r12 至 r15、rbp 保存虚拟操作数栈,由被调用者保存;r10 是全局基址,r9 是线性内存基址,r8 是线性内存当前字节数,三者由入口设置后不再保存;rax、rcx、rdx、r11 是内部临时,rsi、rdi 是溢出槽的操作数临时;edi、esi、edx、ecx 传前四个参数,eax 返回。

兼虚拟寄存器

公开
化「整数」而「整数」

暂无说明。

兼条件

公开
化「整数」而「整数」

暂无说明。

兼条件类

公开
化「整数」而「整数」

暂无说明。

兼原移

公开
化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原立即

公开
化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原载局部

公开
化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原存局部

公开
化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原载全局

公开
化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原存全局

公开
化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原二元

公开
化「整数」而化「整数」而化「整数」而(「列」于「机器片」)

文言:二元之算,甲为被改者。汉语:操作零加、一减、二与、三或、四异或、五乘,形如 甲 = 甲 op 乙。

兼原二元立

公开
化「整数」而化「整数」而化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原移位

公开
化「整数」而化「整数」而化「整数」而(「列」于「机器片」)

文言:移位者,位数在 cl。汉语:操作零左移、一逻辑右移、二算术右移、三循环左移、四循环右移。寄存器形式先把位数送入 ecx,再作 shl shr sar rol ror。

兼原移位立

公开
化「整数」而化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原除

公开
化「整数」而化「整数」而化「整数」而化「字符串」而化「字符串」而化「字符串」而(「列」于「机器片」)

文言:除与余,零则陷,有符号除逢最小负数除负一亦陷;余数逢负一则零,以避 #DE。汉语:种零有符号除、一无符号除、二有符号余、三无符号余。edx:eax 由 cdq 或清零构成;商在 eax,余在 edx。序标是本次展开内独一的标号,结束标另用。

兼原比较

公开
化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原比较立

公开
化「整数」而化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原置

公开
化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原跳条件

公开
化「整数」而化「字符串」而(「列」于「机器片」)

暂无说明。

兼原跳

公开
化「字符串」而(「列」于「机器片」)

暂无说明。

兼原零跳

公开
化「整数」而化「字符串」而(「列」于「机器片」)

暂无说明。

兼原非零跳

公开
化「整数」而化「字符串」而(「列」于「机器片」)

暂无说明。

兼原选择

公开
化「整数」而化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原有效地址

公开
化「整数」而化「整数」而(「列」于「机器片」)

文言:客存之访,先验其终不逾今界,而后取之。汉语:线性内存读写。地址寄存器 址 是零扩展的三十二位偏移;有效地址等于它加上静态偏移;访问末端不得超过 r8 中的当前字节数,越界跳转到陷标。种与 ARM 相同(载入时内部映射到载索的种)。内部借用 r11 与 rdx。

兼原边界

公开
化「整数」而化「字符串」而(「列」于「机器片」)

暂无说明。

兼原载内存

公开
化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而化「字符串」而(「列」于「机器片」)

暂无说明。

兼原存内存

公开
化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而化「字符串」而(「列」于「机器片」)

暂无说明。

兼原调用

公开
化「字符串」而(「列」于「机器片」)

暂无说明。

兼原陷阱

公开
化「有」而(「列」于「机器片」)

暂无说明。

兼参数寄数

公开
「整数」

文言:传参逾四者,置于共用之暂存。汉语:前四个参数用 edi、esi、edx、ecx,其余放在 0x380000 起的四字节槽,调用者写、被调用者在入口立即取走。

兼参数寄

公开
化「整数」而「整数」

暂无说明。

兼原存参

公开
化「整数」而化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原页数

公开
化「整数」而(「列」于「机器片」)

暂无说明。

兼向上取整

公开
化「整数」而化「整数」而「整数」

暂无说明。

兼帧大小

公开
化「整数」而化「整数」而「整数」

暂无说明。

兼原推们

公开
化(「列」于「整数」)而(「列」于「机器片」)

暂无说明。

兼原弹们

公开
化(「列」于「整数」)而(「列」于「机器片」)

暂无说明。

兼原取参

公开
化「整数」而化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原清零局部

公开
化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原序言

公开
化「整数」而化「整数」而化「整数」而化(「列」于「整数」)而化「字符串」而(「列」于「机器片」)

文言:序言者,先压所保之寄,次减栈,验其界,收参,清余局。汉语:函数入口:按顺序 push 被调用者保存寄存器;rsp 减去帧大小;把 rsp 与 0x3D0000 比较,低于则陷阱;把参数寄存器与暂存槽中的参数写入局部槽;其余局部清零。守标是本函数内独一的标号。

兼原尾声不返

公开
化「整数」而化(「列」于「整数」)而(「列」于「机器片」)

暂无说明。

兼原尾声

公开
化「整数」而化(「列」于「整数」)而(「列」于「机器片」)

暂无说明。

兼原入口

公开
化「整数」而化「爻」而化「字符串」而化「字符串」而(「列」于「机器片」)

文言:入口者,立诸基寄,呼其始函,毕而报完成。汉语:程序入口:设置线性内存基址 r9、全局基址 r10、当前内存字节数 r8;调用启动函数;探测模式下再读一处内核私有地址(必然缺页,以证隔离);然后以退出码零请求完成服务并自旋。

兼原导入桩

公开
化「整数」而(「列」于「机器片」)

暂无说明。

兼助手们

公开
化「整数」而化「整数」而化(「列」于「机器片」)而(「列」于「机器片」)

文言:线性内存之整批诸术,聚于助手,以共用之码行之。汉语:助手函数从 edi、esi、edx、ecx 接收参数,使用 rax、rcx、rsi、r11,不动被调用者保存寄存器。越界一律跳到本助手的陷阱。标号与 ARM 相同。

兼原存零

公开
化「整数」而化「整数」而(「列」于「机器片」)

暂无说明。

兼原助手们

公开
化「整数」而化「整数」而(「列」于「机器片」)

文言:裸机之助手:动态之块求诸内核服务二二。汉语:裸机助手:动态内存块由内核服务二二(内存块)保证。

兼Linux助手们

公开
化「整数」而化「整数」而(「列」于「机器片」)

文言:Linux 之助手:动态之区于入口已映射,求块恒成,置 eax 为零。汉语:Linux 助手:动态区已在入口用 mmap 映射,求块一律成功,以 mov eax, 0 代替服务调用。

兼系统调用

公开
化「有」而(「列」于「机器片」)

文言:系统调用之令,0F 05。汉语:syscall 指令(0F 05),会改写 rcx 与 r11。

兼Linux入口

公开
化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而化「字符串」而(「列」于「机器片」)

文言:Linux 之入口:栈移于用户之域之顶;线性内存逾八页者,先以 mmap 映动态之区,不成则以码一二五退;次立诸基寄,呼启动之函,毕以 exit_group 零退。汉语:Linux 程序入口:把 rsp 设为用户区栈顶(0x400000);若线性内存容量超过八页,先用 mmap(MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED|MAP_NORESERVE,可读写)映射动态区,返回地址不符则以退出码 125 结束;然后设置 r9、r10、r8,调用启动函数,最后 exit_group(0)。mmap 的第四至六参数用 r10、r8、r9,须在设置基址寄存器之前调用。

兼Linux参调

公开
化「整数」而化「整数」而(「列」于「机器片」)

文言:Linux 系统调用之桩:前三参在 edi、esi、edx,第四参由 ecx 移入 r10,第五、六参取自传参暂存移入 r8、r9;r9 本为线性基址,故先存之,调用毕复原;诸参依类或加线性基址、或依符号扩之。汉语:Linux 系统调用桩:前三个参数已在 edi、esi、edx;第四个参数从 ecx 移到 r10;第五、六个参数从传参暂存(0x380000 起)取到 r8、r9。r9 平时是线性内存基址,所以第六个参数先放进 r11、按类别处理后再压栈保存 r9、换入;系统调用后按相反顺序恢复 r9、r8、r10。参数类别:0 整数(32 位零扩展),1 线性内存地址(加 r9),2 有符号整数(movsxd 符号扩展)。

兼Linux导入桩

公开
化「整数」而化(「列」于「整数」)而(「列」于「机器片」)

暂无说明。