2 xuewang1 XueWang1 于 2016.09.15 14:35 提问

汇编初学,简单C语言翻译为汇编语言

main()
{
int i, n, f; //对于输入的n,该如何在数据段分配呢?
// int i 我是这么写的: i,dd,2 ;请问这里如何获取 i 的地址呢

input(n);   _//这句不知道如何实现_
i = 2;
f = 1;
while (i <= n)
{
    f = f * i;   _//计算 f * i 后,在寄存器EAX中,但是如何存入变量 f 呢_
    i = i + 1;
}
print(f);   //输入、输出需要调用函数,但是不明白如何做

}

以上是C代码,用的masm32,求问翻译成汇编是什么样的?一些问题已经注释。
给出汇编程序也好,简单的解释一下也好,只求弄懂~
先在此感谢

2个回答

caozhy
caozhy   Ds   Rxr 2016.09.15 23:49

直接在vc++里调试程序,然后切换到反汇编(disassembly)面板,可以看vc++编译器生成的机器码对应的汇编。

XueWang1
XueWang1 反汇编如何处理呢,不会用,而且这个也要求手动翻译
大约一年之前 回复
zdi1997
zdi1997   2016.09.19 13:06

函数里的局部变量是好像是用堆栈保存的并不是直接 i dd 2

XueWang1
XueWang1 主函数也必须放在堆栈里吗?这个我就这么写的,而且已经成功输出了。但是不知道还有这个要求……
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片