【发布时间】:2011-05-01 12:31:50
【问题描述】:
尝试编写一个汇编函数,返回 utf-8 文本中给定位置的字符。
我尝试了很多解决方案,但无法正常工作。这是我目前所拥有的:
.globl utf8_get
.globl _utf8_get
utf8_get:
_utf8_get:
pushl %ebp
movl %esp, %ebp
movl 4(%ebp), %eax
movl 12(%ebp), %ecx
u_loop: cmpb $0x0, (%eax)
jz n_fnd
incl %eax
cmpl $0x0, %ecx
jz fnd
decl %ecx
jmp u_loop
n_fnd: movl $-0x1, %eax
popl %ebp
ret
fnd: movzbl (%eax), %eax
popl %ebp
ret
参数为 unsigned char* 和 int。
但它不会返回正确的字符。
【问题讨论】: