[C言語] レジスタ値の変化

[M1 Mac, Big Sur 11.6.8, clang 13.0.0, NO IDE]

アセンブル言語のコードを解読するため、LLDBを使ってレジスタ値の変化を表にまとめました。黄色のセルで値が変わっています。

register readコマンドでmain関数先頭行でのレジスタ値を出力し、nextコマンドで1行ずつ進めて都度レジスタ値を出力しました。

#include <stdio.h>

int main() {
    int i = 1000;
    char c[6] = {'a', 'b', 'c', 'd', 'e'};
    char* c_ptr = 'xyz';
    char* c_ptr2 = "stu"; // あえてダブルクォートを使用

    printf("i: %d\n", i);
    printf("c: %s\n", &c);
    printf("c_ptr: %s\n", &c_ptr);
    printf("c_ptr2: %s\n", &c_ptr2);

    return 0;
}