打印整数值x86

时间:2015-09-08 20:25:14

标签: assembly x86

所以我试图在x86程序集中实现strlength函数。我已经完成了大部分工作,但我无法弄清楚如何将整数值打印到控制台。我正在使用sys_write调用,所有我得到的是输出的奇怪符号或根本没有。谁能告诉我如何在ECX中准确地将我的计数器打印到控制台?

section .text
    global _start

_start:

    getInput:
    mov eax, 3
    mov ebx, 0
    mov ecx, msg
    mov edx, 50
    int 0x80

    mov eax, msg
    xor ecx, ecx
    jmp compare
    counter:
    add eax, 1
    add ecx, 1
    compare:
    cmp [eax], byte 0
    jnz counter
    dec ecx
    mov [len], ecx

    printInput:
    mov eax, 4
    mov ebx, 1
    mov ecx, len
    mov edx, 50
    int 0x80

    mov eax, 1
    mov ebx, 0
    int 0x80

section .bss
    msg resb 50
    len resb 5

1 个答案:

答案 0 :(得分:1)

据我所知,你没有做任何算术来将整数值(可能是1756)转换为字符串。

当然,这不能打印。你需要形成一个合适的字符串。