如何将uint8_t转换为ascii?

时间:2015-07-27 05:40:49

标签: assembly x86

如何将无符号8位整数转换为x86汇编中的ASCII表示?就像在C:

uint8_t num=0xFF; 
char buf[4]={0}; 
sprintf(buf,"%u", num); 

现在buf现在包含" 255 \ x00" ; num恰好位于byte ptr [eax+80]buf恰好位于[004A1348]我将如何在x86中执行此操作?

1 个答案:

答案 0 :(得分:3)

x86 ASM中没有内置字符串格式化运算符。你必须编写代码来手动完成。

在没有深入细节的情况下,您正在寻找的那种字符串表示计算形成值的基数10表示的数字('2','5','5')并填充内存范围(缓冲区)具有数字的值+空终止符(0)。一种可能的方法是使用除法和每个步数10来模数数字来计算数字。

您可以在线找到算法的示例,例如itoa