ARM 程序集加密扩展
ARM assembly cryptography extensions
我正在 ARM 汇编中实现 AES-ECB encode/decode。我正在使用 Jetson Nano,它使用 ARM Cortex A57,它在硬件上有加密扩展。我 运行 遇到的问题是每当我尝试 assemble 我的代码时, assembler 输出以下内容。
aes.asm: Assembler messages:
aes.asm:14: Error: selected processor does not support `aese V0.16b,V0.16b'
根据文档,这个 CPU 应该支持这些说明,我不确定我遗漏了什么。
.section .text
.global _start
.arch armv8-a
_start:
mov x8, 64
mov x0, 1
ldr x1, =str
mov x2, str_len
svc 0
ldr x0, =a
ldp q0, q1, [x0]
aese V0.16b, V0.16b
mov x8, 0x5D
mov x0, 0x45
svc 0
.section .data
str: .ascii "starting\n"
str_len = .-str
.balign 1
a: .skip 16
a_len = .-a
b: .single 3.4, 2.5, 4.4, 6.6, 7.7, 8.8
b_size = .-b
.arch armv8-a
告诉汇编器只接受基本的 ARMv8-A 指令。加密指令不在基本指令集中,因此您必须告诉汇编程序是否要使用此扩展。试试 .arch armv8-a+crypto
.
请记住,汇编器不知道目标机器支持哪些扩展,除非您告诉它。
有关 -march
命令行选项和 .arch
指令接受的所有体系结构,请参阅 https://sourceware.org/binutils/docs/as/ARM-Options.html#ARM-Options。
我正在 ARM 汇编中实现 AES-ECB encode/decode。我正在使用 Jetson Nano,它使用 ARM Cortex A57,它在硬件上有加密扩展。我 运行 遇到的问题是每当我尝试 assemble 我的代码时, assembler 输出以下内容。
aes.asm: Assembler messages:
aes.asm:14: Error: selected processor does not support `aese V0.16b,V0.16b'
根据文档,这个 CPU 应该支持这些说明,我不确定我遗漏了什么。
.section .text
.global _start
.arch armv8-a
_start:
mov x8, 64
mov x0, 1
ldr x1, =str
mov x2, str_len
svc 0
ldr x0, =a
ldp q0, q1, [x0]
aese V0.16b, V0.16b
mov x8, 0x5D
mov x0, 0x45
svc 0
.section .data
str: .ascii "starting\n"
str_len = .-str
.balign 1
a: .skip 16
a_len = .-a
b: .single 3.4, 2.5, 4.4, 6.6, 7.7, 8.8
b_size = .-b
.arch armv8-a
告诉汇编器只接受基本的 ARMv8-A 指令。加密指令不在基本指令集中,因此您必须告诉汇编程序是否要使用此扩展。试试 .arch armv8-a+crypto
.
请记住,汇编器不知道目标机器支持哪些扩展,除非您告诉它。
有关 -march
命令行选项和 .arch
指令接受的所有体系结构,请参阅 https://sourceware.org/binutils/docs/as/ARM-Options.html#ARM-Options。