提交 fce93b1b 创建 作者: 赵鹏翀's avatar 赵鹏翀

init template

上级
/Debug
/Release
<?xml version="1.0" encoding="gb2312"?>
<ASMProject Version="1.00" Name="Lab004" TemplatePath="console(c)\Project" ProjectID="fc976e36-882e-432f-9e0f-770512101752" IsSubmitWork="0">
<Configurations>
<Configuration Name="Debug" DebuggerFlavor="0">
<Tool Name="PreBuildEventTool"/>
<Tool Name="CustomBuildTool"/>
<Tool Name="GCCCompilerTool" PreprocessorDefinitions="_DEBUG" GenerateDebugInformation="-1" LanguageStandard="c99" AssemblerOutput="-1"/>
<Tool Name="PreLinkEventTool"/>
<Tool Name="GCCLinkerTool"/>
<Tool Name="PostBuildEventTool"/>
</Configuration>
<Configuration Name="Release" DebuggerFlavor="0">
<Tool Name="PreBuildEventTool"/>
<Tool Name="CustomBuildTool"/>
<Tool Name="GCCCompilerTool" PreprocessorDefinitions="NDEBUG" LanguageStandard="c99"/>
<Tool Name="PreLinkEventTool"/>
<Tool Name="GCCLinkerTool" StripDebugInfo="-1"/>
<Tool Name="PostBuildEventTool"/>
</Configuration>
</Configurations>
<Files>
<Filter Name="ͷļ" Filter="h;hpp;hxx">
<File RelativePath=".\console.h">
</File>
</Filter>
<Filter Name="Դļ" Filter="cpp;c;cc;cxx">
<File RelativePath=".\asmfun.s">
</File>
<File RelativePath=".\console.c">
</File>
</Filter>
</Files>
</ASMProject>
添加文件
.globl _asmfun
_asmfun:
mov $0x2, %eax #将被乘数2保存到寄存器eax
mov _n, %ecx #将指数保存到寄存器ecx
dec %ecx
L1: #局部标号的用法,区别于_asmfun
mov $0x2, %ebx #2作为乘数保存到寄存器ebx
mul %ebx
loop L1 #乘法运算,计算结果保存在寄存器eax
mov %eax, _result #将eax中的结果给到全局变量
ret #程序返回
\ No newline at end of file
#include "console.h"
int n; // 指数
int result; // 计算结果
unsigned long asmfun(); // 声明函数asmfun()
int main(int argc, char* argv[])
{
printf("输入指数 n,计算 2 的 n 次幂\n");
scanf("%d", &n);
asmfun(); // 调用函数asmfun()
printf("2 的 %d 次幂为:%d\n", n, result);
return 0;
}
#ifndef _CONSOLE_H_
#define _CONSOLE_H_
#include <stdio.h>
/* TODO: 在此处引用程序需要的其他头文件 */
#endif /* _CONSOLE_H_ */
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论