如何将无符号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中执行此操作?
答案 0 :(得分:3)
x86 ASM中没有内置字符串格式化运算符。你必须编写代码来手动完成。
在没有深入细节的情况下,您正在寻找的那种字符串表示计算形成值的基数10表示的数字('2','5','5')并填充内存范围(缓冲区)具有数字的值+空终止符(0)。一种可能的方法是使用除法和每个步数10来模数数字来计算数字。
您可以在线找到算法的示例,例如itoa。