0

こんにちは、アセンブリ コードを実行するために FASM をダウンロードしました。

このような小さなプログラムを書く必要があります

Sum: 
push %ebp
movl %esp, %ebp
movl 8(%ebp), %ecx 
movl 12(%ebp), %edx
xorl %eax, %eax 
testl %edx, %edx 
je .L34 

.L35: 
addl (%ecx), %eax 
addl $4, %ecx 
decl %edx 
jnz .L35 

.L34: 
movl %ebp, %esp 
popl %ebp 
ret 

問題は、FASM で実行する方法がわからないことです。どこかに何かを含める必要がありますか? 私のPCは64ビットで、何かをコンパイルするとエラーが発生しますが、サンプルの1つをインポートすると正常に動作します.,..

ご協力ありがとうございました

よろしく

4

1 に答える 1

2

fasm は AT&T 構文をサポートしていません。おそらく、いくつかの複雑なマクロを使用して、そのようなサポートを追加することは可能ですが、パッケージが提供するインクルードはどれもこの機能を提供しません.

追加のコードを追加してフォーマットを指定する必要があります。マニュアルを参照してください。以下ではコードのみを翻訳します。

Sum: 
push ebp
mov  ebp, esp
mov  ecx, [ebp + 8]
mov  edx, [ebp + 12]
xor  eax, eax 
test edx, edx 
je   .L34 

.L35: 
add  eax, [ecx]
add  ecx, 4
dec  edx 
jnz  .L35 

.L34: 
mov  esp, ebp
pop  ebp 
ret 
于 2011-02-07T04:50:25.173 に答える