将c语言转换为IA32汇编语言

标签 c assembly

我写了一个c代码:将整数转换为字符串,并且每3位数字有一个逗号,谁能给我提示如何将它转换为汇编语言??? 我只是想简单地将它转换成汇编语言!无法使用其他库调用!

 #include <stdio.h>
char *my_itoa(int n, char *buf)
 {    
int i, j, k=0, l=0;
char tmp[32] = {0};

 i = n;
do {
    j = i%10;
    i = i/10;
    sprintf(tmp+k, "%d", j); 
    k++;
    l++;
    if (i!=0 && l%3 == 0) {
        sprintf(tmp+k, ",");
        k++;
        l = 0;
    }
}while(i);

for (k--,i=0; i<=k; i++) {
    buf[i] = tmp[k-i];
}

return buf;}

最佳答案

如果您的编译器是 gcc,this answer提出了一种生成组合 C/汇编语言文件的好方法,该文件比普通汇编语言更易于阅读。他们使用 c++,但只需将 c++ 替换为 gcc:

# create assembler code:
gcc -S -fverbose-asm -g original.c -o assembly.s
# create asm interlaced with source lines:
as -alhnd assembly.s > listing.lst

关于将c语言转换为IA32汇编语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26327801/

相关文章:

交叉编译器到 linux(构建和主机)到 freebsd

android - 如何在 linux 内核模式下将 '\n' 传递到文件中

c - 变量 'ch' 周围的堆栈已损坏

documentation - Doxygen 和汇编语言

optimization - ARM 程序集中分支上的延迟结果指令会发生什么情况?

c - 将变量传递给 nasm 过程

assembly - 为什么多条指令具有相同的操作码和工作原理?

c - 恒定的游戏速度与GLUT在OpenGL中与可变FPS无关吗?

c - 写入具有不同文件名的单独文件

c - GCC 内联汇编没有将数据复制到输入寄存器