lotus_f @ 2022-02-08 09:52:27
RT,我使用了这个网站生成汇编代码,然后交了一发:CE 记录。
所以这是因为我写挂了还是洛谷不让用?
by esquigybcu @ 2022-02-08 10:06:53
@lotus_f 但是我还是感觉您写挂了,因为在我本地也编译不了
by lotus_f @ 2022-02-08 10:11:13
算了,不玩了 /kk
by esquigybcu @ 2022-02-08 10:20:30
@lotus_f
其实可以过
by rzh123 @ 2022-02-08 10:20:40
洛谷不让用,而且你也写挂了,C++ 内嵌 ASM 不是这么用的。
by esquigybcu @ 2022-02-08 10:32:13
@rzh123 那要怎么用 /kel
by rzh123 @ 2022-02-08 11:12:44
这样:
#include <cstdio>
int a,b,c;
int main(){
scanf("%d%d",&a,&b);
__asm(
"mov a,%eax\n"
"mov b,%ebx\n"
"add %eax,%ebx\n"
"mov %ebx,c"
);
printf("%d\n",c);
return 0;
}
by rzh123 @ 2022-02-08 11:23:28
@lotus_f
by esquigybcu @ 2022-03-02 16:41:04
@lotus_f 过了
by esquigybcu @ 2022-03-02 16:45:31
@rzh123 g++
的 asm 貌似是 AT&T 语法,您写的是 Intel
但是您写的汇编里的 a, b
是什么鬼???又没有 a, b
这种寄存器
应该是
__asm__(R"(
movl %%eax, %eax
movl %%ebx, %ebx
addl %eax, %ebx
movl %ebx, %%ecx
)" : : "a"(a), "b"(b), "c"(c));
by esquigybcu @ 2022-03-02 16:49:25
godbolt.org 有一个选项(在 Output 下面)叫做 Intel asm syntax,关掉就行