所以我试图在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
答案 0 :(得分:1)
据我所知,你没有做任何算术来将整数值(可能是1756)转换为字符串。
当然,这不能打印。你需要形成一个合适的字符串。