Files
linux-kernel-module-cheat/userland/arch/x86_64/char_literals.S
2019-07-07 00:00:01 +00:00

26 lines
548 B
ArmAsm

/* https://cirosantilli.com/linux-kernel-module-cheat#gnu-gas-assembler-char-literals */
#include <lkmc.h>
LKMC_PROLOGUE
mov $0, %r12
/* Memory. */
mov mychar, %r12b
LKMC_ASSERT_EQ(%r12, $0x61)
/* Immediate. Without the `$`, does a memory access, and segfaults! */
mov $'b, %r12b
LKMC_ASSERT_EQ(%r12, $0x62)
/* Space character works. */
mov $' , %r12b
LKMC_ASSERT_EQ(%r12, $0x20)
/* Backslash escapes work. */
mov $'\n , %r12b
LKMC_ASSERT_EQ(%r12, $0x0A)
LKMC_EPILOGUE
mychar:
.byte 'a