【发布时间】:2025-11-26 22:50:02
【问题描述】:
我试图在汇编中迭代一个字符串,并将小写字母更改为大写,并在字符串为 0 时停止,但似乎有些错误(我似乎缺少一个概念)。我无法弄清楚问题是什么或发生了什么。
这是我目前所拥有的:
Upper:
movq (%rbx), %rcx
movq $0, %rdi
call check
call fin
add %rdi, %rax
ret
fin:
cmpb $0x0, %r9b
jne check
ret
check:
movb (%rcx, %rdi), %r9b
cmp $'Z', %r9b
jg toUpper
jmp next
toUpper:
sub %r9b, 0x20
jmp next
next:
incq %rdi
jmp fin
【问题讨论】:
-
你能说明你如何称呼
Upper吗?它似乎不遵循常见的调用约定。
标签: string assembly x86-64 att