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 中运行它,我是否需要在某处或某处包含某些内容?我的电脑是 64 位的,当我编译某些东西时,它会给我一个错误,但如果我导入其中一个示例,它工作正常。,..

谢谢您的帮助

问候

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 回答