我们正在尝试使用内联汇编和__asm命令将c ++代码转换为汇编代码。发生的问题是我们可以在c ++中正确地编译代码,但是当代码尝试以汇编形式进行编译时,它会给我们带来非法的异常错误,在某些情况下还会出现“结尾处的垃圾错误为4”。我们认为这是因为它无法识别双引号,并且需要一个引号字符串。
我们尝试使用'\'分隔引号,但效果不尽如人意,我们尝试使用单引号,但同样无济于事,给了我们这些错误。
我们要转换此汇编代码:
device:
.asciz "/dev/gpiomem"
示例1 ** 我们尝试了多种方法,包括将其分为两个独立的asm函数:
__asm("device: ");
__asm(".asciz "/dev/gpiomem"");
这会引发非法指令。
示例2 我们用两个单独的asm指令执行另一个示例:
__asm(".asciz \"/dev/gpiomem\"");
这将引发4的垃圾错误。
最后一个示例:
__asm("device: .asciz '/dev/gpiomem'");
这也会引发垃圾错误。
此代码位于int主函数中。如果需要,我很乐意提供更多代码。编译器是gcc。目前,我不知道该版本。它应该是一个相当新的版本。