回答編集履歴
3
回答に追記
test
CHANGED
@@ -17,6 +17,8 @@
|
|
17
17
|
---
|
18
18
|
|
19
19
|
実際にコンパイルできるようにしてみました。
|
20
|
+
|
21
|
+
(コンパイルが通るようにしただけで、動作はどうなるかは関知しません)
|
20
22
|
|
21
23
|
疑問があればどうぞ。
|
22
24
|
|
2
回答に追記
test
CHANGED
@@ -11,3 +11,41 @@
|
|
11
11
|
movl $0,%eax \n\ /*戻り値を0にする*/
|
12
12
|
|
13
13
|
にも全角スペースが。。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
---
|
18
|
+
|
19
|
+
実際にコンパイルできるようにしてみました。
|
20
|
+
|
21
|
+
疑問があればどうぞ。
|
22
|
+
|
23
|
+
```C
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
int sample(int n){
|
28
|
+
|
29
|
+
__asm__(
|
30
|
+
|
31
|
+
"movl %eax,%edi \n" /*引数nをeaxレジスタに*/
|
32
|
+
|
33
|
+
"testl $1,%eax \n" /*1とレジスタeaxの論理積*/
|
34
|
+
|
35
|
+
"jz L1 \n" /*論理積が1ならL1にジャンプ*/
|
36
|
+
|
37
|
+
"movl $1,%eax \n" /*戻り値を1にする*/
|
38
|
+
|
39
|
+
"jmp end \n" /*endへジャンプ*/
|
40
|
+
|
41
|
+
"L1: \n"
|
42
|
+
|
43
|
+
"movl $0,%eax \n" /*戻り値を0にする*/
|
44
|
+
|
45
|
+
"end: \n"
|
46
|
+
|
47
|
+
);
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
```
|
1
回答に追記
test
CHANGED
@@ -1,3 +1,13 @@
|
|
1
1
|
L1:のあとに全角スペース入ってますね。
|
2
2
|
|
3
3
|
それを削除すればどうなるでしょうか
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
---
|
8
|
+
|
9
|
+
ああ、
|
10
|
+
|
11
|
+
movl $0,%eax \n\ /*戻り値を0にする*/
|
12
|
+
|
13
|
+
にも全角スペースが。。
|