ARM程序集加密扩展

我正在 ARM 程序集中实现 AES-ECB 编码/解码。我正在使用 Jetson Nano,它使用 ARM Cortex A57,它在硬件上具有加密扩展。我遇到的问题是,每当我尝试汇编代码时,汇编器都会输出以下内容。

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 "startingn"
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

请记住,除非您告诉汇编器,否则汇编器不知道您的目标机器支持哪些扩展。

有关命令行选项和指令接受的所有体系结构,请参阅https://sourceware.org/binutils/docs/as/ARM-Options.html#ARM-Options。-march.arch


以上是ARM程序集加密扩展的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>