如何在程序集中将二进制转换为ascii

时间:2016-10-16 15:15:39

标签: assembly text binary ascii

我是汇编语言的新手,我可以知道如何将二进制文件转换为另一种语言的ascii,但我很难用汇编(汇编IA32,linux中的intel)。

用户必须输入一个二进制字符串和长度,如:01100001011101000110000101110001011101010110010101101110 56

并且输出必须是:ataquen

我不是要求给我完整的功能,但我想知道是否有一些装配技巧可以帮助我构建我的程序。感谢。

2 个答案:

答案 0 :(得分:1)

假设ESI指向用户输入且ECX = 8,这将转换八个ASCII" 0" &安培; " 1"

 NextCh:
        lodsb           
        ror     al, 1
        rcl     ah, 1
        loop    NextCh

因此,如果输入为01110011,那么AH为0b1110011 = 73H = 115 =''

答案 1 :(得分:0)

每个Ascii char由一个字节(8位)组成。你的每个角色都是30h或31h(0或1)。阅读其中的8个。计算它们的数量。输出为char。