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

模块 / 73

臂汇编。豫

臂汇编。豫

66公开名称

臂加寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

文言:臂之指令,以寄存器与立即数计其字,不假汇编器。汉语:ARM64 指令编码器。每个函数返回一个 四字节 机器片或机器片列表;寄存器号零至三十,三十一在支持处表示栈指针。所有字节均由 llvm-mc 生成的参考编码核对,见「臂汇编。测试。豫」。 add 目,甲,乙

臂减寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

sub 目,甲,乙

臂与寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

and 目,甲,乙

臂或寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

orr 目,甲,乙

臂异或寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

eor 目,甲,乙

臂乘寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

mul 目,甲,乙

臂无除寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

udiv 目,甲,乙

臂有除寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

sdiv 目,甲,乙

臂左移寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

lsl 目,甲,乙

臂无右移寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

lsr 目,甲,乙

臂有右移寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

asr 目,甲,乙

臂循右寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

ror 目,甲,乙

臂加寄八

公开
化「整数」而化「整数」而化「整数」而「机器片」

add 目,甲,乙

臂比较寄

公开
化「整数」而化「整数」而「机器片」

cmp wA, wB

臂比较寄八

公开
化「整数」而化「整数」而「机器片」

cmp xA, xB

臂比较立

公开
化「整数」而化「整数」而「机器片」

cmp wA, #imm12

臂加立

公开
化「整数」而化「整数」而化「整数」而「机器片」

add w0, w0, #0

臂减立

公开
化「整数」而化「整数」而化「整数」而「机器片」

sub w0, w0, #0

臂加立八

公开
化「整数」而化「整数」而化「整数」而「机器片」

add x0, x0, #0

臂减立八

公开
化「整数」而化「整数」而化「整数」而「机器片」

sub x0, x0, #0

臂移寄

公开
化「整数」而化「整数」而「机器片」

mov wD, wS

臂符扩

公开
化「整数」而化「整数」而「机器片」

文言:sxtw xD, wS:取低三十二位,依符号扩为六十四位。汉语:sxtw xD, wS(即 sbfm xD, xS, #0, #31):把低 32 位按符号扩展成 64 位。

臂断点

公开
「机器片」

文言:brk #0:于 Linux 与苹果,发断点之信号而终其进程。汉语:brk #0:在 Linux 与 macOS 上触发 SIGTRAP、结束进程(裸机用 svc #7 的「臂陷阱」)。

臂取基低

公开
「机器片」

文言:线性内存基址之低高:mov w0, w28 与 lsr x0, x28, #32。汉语:取线性内存基址(x28)的低 32 位(mov w0, w28)与高 32 位(lsr x0, x28, #32)。

臂取基高

公开
「机器片」

暂无说明。

臂移寄八

公开
化「整数」而化「整数」而「机器片」

mov xD, xS

臂乘减

公开
化「整数」而化「整数」而化「整数」而化「整数」而「机器片」

msub wD, wA, wB, wC(D = C - A*B)

臂选

公开
化「整数」而化「整数」而化「整数」而化「整数」而「机器片」

csel wD, wA, wB, cond

臂置

公开
化「整数」而化「整数」而「机器片」

cset wD, cond(编码用相反条件)

臂载字

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldr w0, [x0, #0]

臂存字

公开
化「整数」而化「整数」而化「整数」而「机器片」

str w0, [x0, #0]

臂载八

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldr x0, [x0, #0]

臂存八

公开
化「整数」而化「整数」而化「整数」而「机器片」

str x0, [x0, #0]

臂载字节

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldrb w0, [x0, #0]

臂载字节符

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldrsb w0, [x0, #0]

臂存字节

公开
化「整数」而化「整数」而化「整数」而「机器片」

strb w0, [x0, #0]

臂载半

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldrh w0, [x0, #0]

臂载半符

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldrsh w0, [x0, #0]

臂存半

公开
化「整数」而化「整数」而化「整数」而「机器片」

strh w0, [x0, #0]

臂载字寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldr w0, [x0, x0]

臂载字节寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldrb w0, [x0, x0]

臂载字节符寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldrsb w0, [x0, x0]

臂载半寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldrh w0, [x0, x0]

臂载半符寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

ldrsh w0, [x0, x0]

臂存字寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

str w0, [x0, x0]

臂存字节寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

strb w0, [x0, x0]

臂存半寄

公开
化「整数」而化「整数」而化「整数」而「机器片」

strh w0, [x0, x0]

臂双存

公开
化「整数」而化「整数」而化「整数」而化「整数」而「机器片」

stp x0, x0, [x0, #0]

臂双载

公开
化「整数」而化「整数」而化「整数」而化「整数」而「机器片」

ldp x0, x0, [x0, #0]

臂左移立

公开
化「整数」而化「整数」而化「整数」而「机器片」

lsl wD, wA, #s

臂无右移立

公开
化「整数」而化「整数」而化「整数」而「机器片」

lsr wD, wA, #s

臂有右移立

公开
化「整数」而化「整数」而化「整数」而「机器片」

asr wD, wA, #s

臂循右立

公开
化「整数」而化「整数」而化「整数」而「机器片」

ror wD, wA, #s

臂陷阱

公开
「机器片」

svc #7(用户陷阱)

臂返回

公开
「机器片」

ret

臂服务

公开
化「整数」而「机器片」

svc #号

臂立即

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

文言:一常量,宜以一二令载之:高半为零、低半为零、高半全一、低半全一者皆一令而足,余以清零载与高移二令。汉语:把三十二位常量装入 w 寄存器。高十六位为零用 MOVZ;低十六位为零用 MOVZ 加十六位移位;高十六位全一用 MOVN;低十六位全一用带移位的 MOVN;其余用 MOVZ 加 MOVK。返回一到两条指令。

二的幂

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

文言:三十二位之字,若一串相连之一而环旋之,可以立即数之形入位运算;否则须先载入寄存器。汉语:判断三十二位值能否编码为 ARM64 逻辑立即数,返回旋转量与连续一的个数减一。值为零或全一不可编码。

臂一的个数

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

暂无说明。

臂右旋三二

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

暂无说明。

臂逻辑立位

公开
化「整数」而(「或可有」于(「整数」合「整数」))

暂无说明。

臂逻辑立

公开
化「整数」而化「整数」而化「整数」而化「整数」而(「或可有」于「机器片」)

文言:与、或、异或之立即形,先验能否入码。汉语:种类零是 AND,一是 ORR,二是 EOR。可编码时返回一条 32 位指令,否则返回可无,由调用者先把常量装入临时寄存器。

臂比较负立

公开
化「整数」而化「整数」而「机器片」

cmn wA, #imm12(与 cmp 同,只是加而非减,用于比较负一)

臂减立八移

公开
化「整数」而化「整数」而化「整数」而「机器片」

sub xD, xA, #imm12, lsl #12 与 add

臂加立八移

公开
化「整数」而化「整数」而化「整数」而「机器片」

暂无说明。

臂零

公开
化「整数」而「机器片」

mov wD, #0(MOVZ)