我正在分析一段低效的代碼,但其中一些是如此令人困惑?
原始代碼:
#include <string.h>
void lowwer(char *str) {
for (int i = 0; i < strlen(str); i) {
str[i] -= ('A' - 'a');
}
}
匯編代碼(由帶有 -Og 選項的 clang 13 生成):
lowwer:
pushq %r14 # use saved-registers
pushq %rbx
pushq %rax
# guard do while
cmpb $0, (%rdi) # compare &str with null (check if strlen(str) == 0)
je .LBB0_3
# loop initialization
movq %rdi, %r14 # %r14 = str
xorl
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/424420.html
上一篇:我希望我的匯編代碼接受用戶輸入并將其與其他文本一起輸出,但輸出不正確
下一篇:程式可以讀取自己嗎?
