├── .gitignore ├── README.md ├── _config.yml ├── aout_layout.png ├── arm_asm.md ├── assets └── main.scss ├── bin_load.jpg ├── c_stack.jpg ├── casm_link_load.md ├── costack_after.jpg ├── costack_prev.jpg ├── embed_literal.png ├── exec_array.png ├── exec_array_nest.jpg ├── forth_modoki.md ├── gdb.md ├── google1c93f8ab3d4cd001.html ├── hash.jpg ├── index.md ├── link_concat.png ├── link_resolve.png ├── loader.png ├── memory_layout.png ├── memory_stack.png ├── object_layout.png ├── parser_wrapper.md ├── sources ├── arm_asm │ ├── 01_qemu_setup │ │ └── hello_arm.s │ ├── 02_arm_assembly │ │ ├── 2_2_print_loop │ │ │ └── print_loop.s │ │ ├── 2_3_print_hex │ │ │ └── print_hex.s │ │ ├── 2_4_print_nomem │ │ │ ├── print_hex_bl.s │ │ │ ├── print_ng.s │ │ │ └── print_nomem.s │ │ └── 2_5_print_mem │ │ │ ├── putchar_bad.s │ │ │ └── putchar_mem.s │ ├── 04_disasm │ │ └── cl_utils.c │ └── Dockerfile.ARM_ASM ├── casm_link │ ├── 01_call_c │ │ ├── 1_1_call_c │ │ │ ├── hello.c │ │ │ └── hello_c.s │ │ └── 1_2_call_c_msg │ │ │ ├── main.s │ │ │ └── print_msg.c │ ├── 02_sep_comp │ │ ├── hello_printf.c │ │ └── main.c │ ├── 03_link_test │ │ ├── main.c │ │ └── many_symbols.c │ ├── 04_c_sources │ │ ├── hello_puts.c │ │ ├── many_args.c │ │ ├── mycomp.sh │ │ ├── pointer_array.c │ │ ├── sizeof.c │ │ ├── stack_walk.c │ │ ├── stack_walk2.c │ │ ├── stack_walk_answer.c │ │ ├── string.c │ │ ├── sum.c │ │ └── various_args.c │ ├── 05_inline_asm │ │ ├── hello_inline.c │ │ ├── hello_jit.c │ │ ├── mycomp.sh │ │ ├── sum_inline.c │ │ ├── sum_range_inline.c │ │ └── sum_till_jit.c │ ├── 06_jit_ps │ │ ├── eval.c │ │ ├── parser.c │ │ ├── parser.h │ │ ├── ps_jit.c │ │ └── test_util.h │ └── Dockerfile.CASM_LINK └── forth_modoki │ ├── 01_int_parser │ └── int_parser.c │ ├── 02_int_parser_getc │ ├── cl_getc.c │ ├── clesson.h │ └── int_parser_getc.c │ ├── 03_parser │ ├── cl_getc.c │ ├── clesson.h │ └── parser.c │ ├── 05_eval_num │ ├── cl_getc.c │ ├── clesson.h │ └── eval.c │ └── ps │ └── factorial.ps ├── stack_extend.png ├── stack_pushed.png ├── stack_walk_layout.png ├── state_diagram.png ├── stmdb.jpg ├── stmdb_writeback.jpg ├── var_array2.jpg └── var_array_align.jpg /.gitignore: -------------------------------------------------------------------------------- 1 | *.out 2 | .jekyll-cache/ 3 | _site/ 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/README.md -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/_config.yml -------------------------------------------------------------------------------- /aout_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/aout_layout.png -------------------------------------------------------------------------------- /arm_asm.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/arm_asm.md -------------------------------------------------------------------------------- /assets/main.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/assets/main.scss -------------------------------------------------------------------------------- /bin_load.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/bin_load.jpg -------------------------------------------------------------------------------- /c_stack.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/c_stack.jpg -------------------------------------------------------------------------------- /casm_link_load.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/casm_link_load.md -------------------------------------------------------------------------------- /costack_after.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/costack_after.jpg -------------------------------------------------------------------------------- /costack_prev.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/costack_prev.jpg -------------------------------------------------------------------------------- /embed_literal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/embed_literal.png -------------------------------------------------------------------------------- /exec_array.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/exec_array.png -------------------------------------------------------------------------------- /exec_array_nest.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/exec_array_nest.jpg -------------------------------------------------------------------------------- /forth_modoki.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/forth_modoki.md -------------------------------------------------------------------------------- /gdb.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/gdb.md -------------------------------------------------------------------------------- /google1c93f8ab3d4cd001.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/google1c93f8ab3d4cd001.html -------------------------------------------------------------------------------- /hash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/hash.jpg -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/index.md -------------------------------------------------------------------------------- /link_concat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/link_concat.png -------------------------------------------------------------------------------- /link_resolve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/link_resolve.png -------------------------------------------------------------------------------- /loader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/loader.png -------------------------------------------------------------------------------- /memory_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/memory_layout.png -------------------------------------------------------------------------------- /memory_stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/memory_stack.png -------------------------------------------------------------------------------- /object_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/object_layout.png -------------------------------------------------------------------------------- /parser_wrapper.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/parser_wrapper.md -------------------------------------------------------------------------------- /sources/arm_asm/01_qemu_setup/hello_arm.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/arm_asm/01_qemu_setup/hello_arm.s -------------------------------------------------------------------------------- /sources/arm_asm/02_arm_assembly/2_2_print_loop/print_loop.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/arm_asm/02_arm_assembly/2_2_print_loop/print_loop.s -------------------------------------------------------------------------------- /sources/arm_asm/02_arm_assembly/2_3_print_hex/print_hex.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/arm_asm/02_arm_assembly/2_3_print_hex/print_hex.s -------------------------------------------------------------------------------- /sources/arm_asm/02_arm_assembly/2_4_print_nomem/print_hex_bl.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/arm_asm/02_arm_assembly/2_4_print_nomem/print_hex_bl.s -------------------------------------------------------------------------------- /sources/arm_asm/02_arm_assembly/2_4_print_nomem/print_ng.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/arm_asm/02_arm_assembly/2_4_print_nomem/print_ng.s -------------------------------------------------------------------------------- /sources/arm_asm/02_arm_assembly/2_4_print_nomem/print_nomem.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/arm_asm/02_arm_assembly/2_4_print_nomem/print_nomem.s -------------------------------------------------------------------------------- /sources/arm_asm/02_arm_assembly/2_5_print_mem/putchar_bad.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/arm_asm/02_arm_assembly/2_5_print_mem/putchar_bad.s -------------------------------------------------------------------------------- /sources/arm_asm/02_arm_assembly/2_5_print_mem/putchar_mem.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/arm_asm/02_arm_assembly/2_5_print_mem/putchar_mem.s -------------------------------------------------------------------------------- /sources/arm_asm/04_disasm/cl_utils.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/arm_asm/04_disasm/cl_utils.c -------------------------------------------------------------------------------- /sources/arm_asm/Dockerfile.ARM_ASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/arm_asm/Dockerfile.ARM_ASM -------------------------------------------------------------------------------- /sources/casm_link/01_call_c/1_1_call_c/hello.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/01_call_c/1_1_call_c/hello.c -------------------------------------------------------------------------------- /sources/casm_link/01_call_c/1_1_call_c/hello_c.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/01_call_c/1_1_call_c/hello_c.s -------------------------------------------------------------------------------- /sources/casm_link/01_call_c/1_2_call_c_msg/main.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/01_call_c/1_2_call_c_msg/main.s -------------------------------------------------------------------------------- /sources/casm_link/01_call_c/1_2_call_c_msg/print_msg.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/01_call_c/1_2_call_c_msg/print_msg.c -------------------------------------------------------------------------------- /sources/casm_link/02_sep_comp/hello_printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/02_sep_comp/hello_printf.c -------------------------------------------------------------------------------- /sources/casm_link/02_sep_comp/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/02_sep_comp/main.c -------------------------------------------------------------------------------- /sources/casm_link/03_link_test/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/03_link_test/main.c -------------------------------------------------------------------------------- /sources/casm_link/03_link_test/many_symbols.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/03_link_test/many_symbols.c -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/hello_puts.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/hello_puts.c -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/many_args.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/many_args.c -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/mycomp.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/mycomp.sh -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/pointer_array.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/pointer_array.c -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/sizeof.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/sizeof.c -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/stack_walk.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/stack_walk.c -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/stack_walk2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/stack_walk2.c -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/stack_walk_answer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/stack_walk_answer.c -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/string.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/string.c -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/sum.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/sum.c -------------------------------------------------------------------------------- /sources/casm_link/04_c_sources/various_args.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/04_c_sources/various_args.c -------------------------------------------------------------------------------- /sources/casm_link/05_inline_asm/hello_inline.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/05_inline_asm/hello_inline.c -------------------------------------------------------------------------------- /sources/casm_link/05_inline_asm/hello_jit.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/05_inline_asm/hello_jit.c -------------------------------------------------------------------------------- /sources/casm_link/05_inline_asm/mycomp.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/05_inline_asm/mycomp.sh -------------------------------------------------------------------------------- /sources/casm_link/05_inline_asm/sum_inline.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/05_inline_asm/sum_inline.c -------------------------------------------------------------------------------- /sources/casm_link/05_inline_asm/sum_range_inline.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/05_inline_asm/sum_range_inline.c -------------------------------------------------------------------------------- /sources/casm_link/05_inline_asm/sum_till_jit.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/05_inline_asm/sum_till_jit.c -------------------------------------------------------------------------------- /sources/casm_link/06_jit_ps/eval.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/06_jit_ps/eval.c -------------------------------------------------------------------------------- /sources/casm_link/06_jit_ps/parser.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/06_jit_ps/parser.c -------------------------------------------------------------------------------- /sources/casm_link/06_jit_ps/parser.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/06_jit_ps/parser.h -------------------------------------------------------------------------------- /sources/casm_link/06_jit_ps/ps_jit.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/06_jit_ps/ps_jit.c -------------------------------------------------------------------------------- /sources/casm_link/06_jit_ps/test_util.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/06_jit_ps/test_util.h -------------------------------------------------------------------------------- /sources/casm_link/Dockerfile.CASM_LINK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/casm_link/Dockerfile.CASM_LINK -------------------------------------------------------------------------------- /sources/forth_modoki/01_int_parser/int_parser.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/01_int_parser/int_parser.c -------------------------------------------------------------------------------- /sources/forth_modoki/02_int_parser_getc/cl_getc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/02_int_parser_getc/cl_getc.c -------------------------------------------------------------------------------- /sources/forth_modoki/02_int_parser_getc/clesson.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/02_int_parser_getc/clesson.h -------------------------------------------------------------------------------- /sources/forth_modoki/02_int_parser_getc/int_parser_getc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/02_int_parser_getc/int_parser_getc.c -------------------------------------------------------------------------------- /sources/forth_modoki/03_parser/cl_getc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/03_parser/cl_getc.c -------------------------------------------------------------------------------- /sources/forth_modoki/03_parser/clesson.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/03_parser/clesson.h -------------------------------------------------------------------------------- /sources/forth_modoki/03_parser/parser.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/03_parser/parser.c -------------------------------------------------------------------------------- /sources/forth_modoki/05_eval_num/cl_getc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/05_eval_num/cl_getc.c -------------------------------------------------------------------------------- /sources/forth_modoki/05_eval_num/clesson.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/05_eval_num/clesson.h -------------------------------------------------------------------------------- /sources/forth_modoki/05_eval_num/eval.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/05_eval_num/eval.c -------------------------------------------------------------------------------- /sources/forth_modoki/ps/factorial.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/sources/forth_modoki/ps/factorial.ps -------------------------------------------------------------------------------- /stack_extend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/stack_extend.png -------------------------------------------------------------------------------- /stack_pushed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/stack_pushed.png -------------------------------------------------------------------------------- /stack_walk_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/stack_walk_layout.png -------------------------------------------------------------------------------- /state_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/state_diagram.png -------------------------------------------------------------------------------- /stmdb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/stmdb.jpg -------------------------------------------------------------------------------- /stmdb_writeback.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/stmdb_writeback.jpg -------------------------------------------------------------------------------- /var_array2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/var_array2.jpg -------------------------------------------------------------------------------- /var_array_align.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/karino2/c-lesson/HEAD/var_array_align.jpg --------------------------------------------------------------------------------