├── .gitignore ├── 05_NASM ├── 03_mov │ ├── log │ │ ├── LinkErrLog.txt │ │ ├── LinkOutLog.txt │ │ ├── AssembleErrLog.txt │ │ └── AssembleOutLog.txt │ ├── mov.obj │ ├── 03_mov.exe │ ├── 03_mov.pro │ └── mov.asm ├── 04_constant │ ├── log │ │ ├── LinkErrLog.txt │ │ ├── LinkOutLog.txt │ │ ├── AssembleErrLog.txt │ │ └── AssembleOutLog.txt │ ├── constant.obj │ ├── 04_constant.exe │ └── 04_constant.pro ├── 05_dataseg │ ├── log │ │ ├── LinkErrLog.txt │ │ ├── LinkOutLog.txt │ │ ├── AssembleOutLog.txt │ │ └── AssembleErrLog.txt │ ├── dataseg.obj │ ├── 05_dataseg.exe │ └── 05_dataseg.pro ├── 01_HelloWorld │ ├── log │ │ ├── LinkErrLog.txt │ │ ├── LinkOutLog.txt │ │ ├── AssembleErrLog.txt │ │ └── AssembleOutLog.txt │ ├── HelloWorld.obj │ ├── 01_HelloWorld.exe │ ├── 01_HelloWorld.pro │ └── HelloWorld.asm └── 02_Instruction │ ├── log │ ├── LinkErrLog.txt │ ├── LinkOutLog.txt │ ├── AssembleErrLog.txt │ └── AssembleOutLog.txt │ ├── Instruction.obj │ ├── 02_Instruction.exe │ ├── 02_Instruction.pro │ └── Instruction.asm ├── 10_Linker ├── 01_refactor │ ├── main.hda │ ├── MachineSystem.js │ ├── package.json │ ├── MachineProcessor.js │ ├── Program.js │ ├── ProgramRunner.js │ └── Machine.js ├── 02_lowlevelasm │ ├── main.hda │ ├── Program.hdx │ ├── MachineSystem.js │ ├── package.json │ ├── Program.js │ ├── Machine.js │ └── ProgramRunner.js ├── 03_register │ ├── main.hda │ ├── Program.hdx │ ├── MachineSystem.js │ ├── package.json │ ├── Program.js │ ├── Machine.js │ └── ProgramRunner.js ├── 05_sstream │ ├── main.hdx │ ├── out.hdx │ ├── MachineSystem.js │ ├── main.hda │ ├── package.json │ ├── Machine.js │ ├── Program.js │ └── ProgramLinker.js ├── 06_load │ ├── main.hdx │ ├── MachineSystem.js │ ├── main.hda │ ├── package.json │ ├── Machine.js │ └── Program.js ├── 07_load_fix │ ├── main.hdx │ ├── MachineSystem.js │ ├── main.hda │ ├── package.json │ ├── Machine.js │ └── Program.js ├── 08_extern │ ├── main.hdx │ ├── MachineSystem.js │ ├── main.hda │ ├── package.json │ ├── Machine.js │ └── Program.js ├── 10_link │ ├── main.hdx │ ├── MachineSystem.js │ ├── main.hda │ ├── package.json │ ├── Machine.js │ └── Program.js ├── 11_link2 │ ├── main.hdx │ ├── MachineSystem.js │ ├── main.hda │ ├── package.json │ ├── Machine.js │ └── Program.js ├── 12_link3 │ ├── main.hdx │ ├── MachineSystem.js │ ├── main.hda │ ├── package.json │ ├── Machine.js │ └── Program.js ├── 13_link4 │ ├── main.hdx │ ├── MachineSystem.js │ ├── main.hda │ ├── package.json │ ├── Machine.js │ └── Program.js ├── 09_write_segdata │ ├── main.hdx │ ├── MachineSystem.js │ ├── main.hda │ ├── package.json │ ├── Machine.js │ └── Program.js ├── 00_example │ ├── src1.hda │ ├── src2.hda │ ├── puts.hda │ └── main.hda └── 04_runner │ ├── MachineSystem.js │ ├── package.json │ ├── Program.js │ ├── Machine.js │ └── main.hda ├── 11_Compiler ├── 04_analysis │ ├── main.c │ ├── main.hdo │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 01_ready │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ ├── Program.js │ └── main.hdo ├── 02_ready2 │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ ├── Program.js │ └── main.hdo ├── 03_get_ctoken │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ ├── Program.js │ └── main.hdo └── 05_analysis2 │ ├── main.c │ ├── main.hdo │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 13_Compiler_fix ├── 14_binary_expr │ ├── main.c │ ├── main.hdo │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 01_ready │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 11_check │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 03_decl_spcf │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 06_toString │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 07_ext_dcl_fix │ ├── main.hdo │ ├── MachineSystem.js │ ├── main.c │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 08_expression │ ├── main.hdo │ ├── MachineSystem.js │ ├── main.c │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 09_assign_expr │ ├── main.hdo │ ├── MachineSystem.js │ ├── main.c │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 10_unary_expr │ ├── main.hdo │ ├── MachineSystem.js │ ├── main.c │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 16_statement │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ ├── Program.js │ └── ProgramCompilerStatement.js ├── 21_jump_stmt │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 04_init_decl_list │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 05_param_type_list │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 12_primary_expr │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 13_conditional_expr │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 15_binary_expr2 │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 17_expression_stmt │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 18_compound_stmt │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 19_selection_stmt │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 20_iteration_stmt │ ├── main.c │ ├── main.hdo │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 22_labeled_stmt │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 02_external_declaration │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 23_compile │ ├── main.c │ ├── main.hdo │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── 24_program_update │ ├── main.c │ ├── MachineSystem.js │ ├── main.hdo │ ├── package.json │ ├── Machine.js │ └── program.hdx └── 25_compile_complete │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── Machine.js │ ├── program.hdx │ └── main.hdo ├── 09_Runner2 ├── 01_HelloExit │ ├── HelloExit.hda │ ├── package.json │ └── Register.js ├── 02_execute_fix │ ├── HelloExit.hda │ └── package.json ├── 08_handy2 │ ├── print_string.hda │ └── package.json ├── 09_show_fix │ ├── print_line.hda │ └── package.json ├── 10_write_fix │ ├── print_line.hda │ └── package.json ├── 05_operate │ ├── HelloLabel.hda │ └── package.json ├── 04_HelloLabel_fix │ ├── HelloLabel.hda │ └── package.json ├── 03_HelloLabel_failed │ ├── HelloLabel.hda │ └── package.json ├── 07_handy │ ├── package.json │ └── print.hda ├── 11_handy │ ├── package.json │ └── print_line2.hda ├── 06_eflags │ ├── package.json │ └── condition.hda ├── 12_procedure │ ├── package.json │ └── procedure.hda ├── 13_memory │ ├── package.json │ └── memory.hda └── 14_dataseg │ ├── package.json │ └── puts.hda ├── 00_src_deprecated ├── 16_statement │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ ├── Program.js │ └── ProgramCompilerStatement.js ├── 17_expr_stmt │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js └── 18_compound_stmt │ ├── main.hdo │ ├── main.c │ ├── MachineSystem.js │ ├── package.json │ ├── program.hdx │ ├── Machine.js │ └── Program.js ├── .README.md.swn ├── .README.md.swo ├── 04_CIL ├── macosx │ ├── .DS_Store │ ├── 02_PrintValue │ │ ├── .DS_Store │ │ └── PrintValue.c │ ├── 05_Condition │ │ ├── .DS_Store │ │ └── Condition.c │ ├── 14_SpArrange │ │ └── SpArrange.c │ ├── 12_PushPop │ │ └── PushPop.c │ ├── HandyCIL.xcworkspace │ │ └── xcuserdata │ │ │ └── HandyMac.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ ├── 15_SpSolution │ │ └── SpSolution.c │ ├── 07_Procedure │ │ └── Procedure.c │ ├── 01_HelloWorld │ │ └── HelloWorld.c │ ├── 04_Jump │ │ └── Jump.c │ ├── 13_SpProc │ │ └── SpProc.c │ ├── 08_Memory │ │ └── Memory.c │ ├── 16_ProcNaked │ │ └── ProcNaked.c │ ├── 00_CIL │ │ └── main.c │ └── 06_Loop │ │ └── Loop.c ├── win32 │ ├── CIL.v12.suo │ ├── 02_PrintValue │ │ ├── .DS_Store │ │ └── PrintValue.c │ ├── 05_Condition │ │ ├── .DS_Store │ │ └── Condition.c │ ├── ipch │ │ └── 00_cil-a3814ef9 │ │ │ └── 00_cil-cb613e03.ipch │ ├── 14_SpArrange │ │ └── SpArrange.c │ ├── 12_PushPop │ │ └── PushPop.c │ ├── 15_SpSolution │ │ └── SpSolution.c │ ├── 07_Procedure │ │ └── Procedure.c │ ├── CIL.userprefs │ ├── 01_HelloWorld │ │ └── HelloWorld.c │ ├── 04_Jump │ │ └── Jump.c │ ├── 13_SpProc │ │ └── SpProc.c │ ├── 08_Memory │ │ └── Memory.c │ ├── 16_ProcNaked │ │ └── ProcNaked.c │ └── 00_CIL │ │ └── main.c ├── ubuntu │ ├── 14_SpArrange │ │ ├── SpArrange.c │ │ └── 14_SpArrange.pro │ ├── 12_PushPop │ │ ├── PushPop.c │ │ └── 12_PushPop.pro │ ├── 00_CIL │ │ ├── 00_CIL.pro │ │ └── main.c │ ├── 04_Jump │ │ ├── 04_Jump.pro │ │ └── Jump.c │ ├── 06_Loop │ │ └── 06_Loop.pro │ ├── 08_Memory │ │ ├── 08_Memory.pro │ │ └── Memory.c │ ├── 13_SpProc │ │ ├── 13_SpProc.pro │ │ └── SpProc.c │ ├── 05_Condition │ │ ├── 05_Condition.pro │ │ └── Condition.c │ ├── 07_Procedure │ │ ├── 07_Procedure.pro │ │ └── Procedure.c │ ├── 10_LocVarSp │ │ └── 10_LocVarSp.pro │ ├── 11_LocVarBp │ │ └── 11_LocVarBp.pro │ ├── 16_ProcNaked │ │ ├── 16_ProcNaked.pro │ │ └── ProcNaked.c │ ├── 01_HelloWorld │ │ ├── 01_HelloWorld.pro │ │ └── HelloWorld.c │ ├── 02_PrintValue │ │ ├── 02_PrintValue.pro │ │ └── PrintValue.c │ ├── 15_SpSolution │ │ ├── 15_SpSolution.pro │ │ └── SpSolution.c │ ├── 03_Calculation │ │ └── 03_Calculation.pro │ └── 09_LocalVariable │ │ └── 09_LocalVariable.pro └── log.txt ├── 02_cdecl ├── 02_cdecl.v12.suo ├── 06_rdx_v2 │ ├── Table.h │ ├── common.h │ ├── rdx.cpp │ ├── tbl.cpp │ ├── common.cpp │ ├── StringBuffer.h │ ├── StringBuffer.cpp │ ├── main.cpp │ └── Stack.h ├── 07_dcl_v2 │ ├── Table.h │ ├── common.h │ ├── dcl.cpp │ ├── tbl.cpp │ ├── common.cpp │ ├── StringBuffer.h │ ├── IdentifierInfo.cpp │ ├── IdentifierInfo.h │ ├── StringBuffer.cpp │ ├── main.cpp │ └── Stack.h ├── 08_calc_mix2 │ ├── dcl.h │ ├── rdx.h │ ├── Table.h │ ├── dcl.cpp │ ├── rdx.cpp │ ├── tbl.cpp │ ├── common.cpp │ ├── common.h │ ├── StringBuffer.h │ ├── IdentifierInfo.h │ ├── StringBuffer.cpp │ ├── IdentifierInfo.cpp │ └── Stack.h ├── 04_calc_mix │ ├── common.h │ ├── dcl.cpp │ ├── common.cpp │ ├── StringBuffer.h │ ├── read_infix.cpp │ ├── main.cpp │ └── Stack.h ├── 03_dcl │ ├── 03_dcl_main.cpp │ └── StringBuffer.h ├── 02_typedef │ └── 02_typedef.cpp ├── 05_StringBuffer_v2 │ ├── common.h │ ├── common.cpp │ ├── StringBuffer.h │ ├── StringBuffer.cpp │ └── StringBufferV2Main.cpp └── 01_c_declaration │ └── 01_c_declaration.cpp ├── 06_WebProgramming ├── 01_HelloWorld │ ├── 01_HelloHTML │ │ └── HelloHTML.htm │ ├── 03_HelloTitle │ │ └── HelloTitle.htm │ └── 02_HelloJS │ │ └── HelloJS.htm └── 02_Basic │ ├── 25_textarea │ └── textarea.htm │ ├── 26_textarea_id │ └── textarea_id.htm │ ├── 09_string_add2 │ └── string_add2.htm │ ├── 12_numberToString │ └── numberToString.htm │ ├── 07_string_len │ └── string_len.htm │ ├── 06_string_add │ └── string_add.htm │ ├── 02_var2 │ └── var2.htm │ ├── 15_array_len │ └── array_len.htm │ ├── 10_string_noparse │ └── string_noparse.htm │ ├── 16_array_forin │ └── array_forin.htm │ ├── 17_function │ └── function.htm │ ├── 24_function_noretval │ └── function_noretval.htm │ ├── 05_string │ └── string.htm │ ├── 11_string_parse │ └── string_parse.htm │ ├── 27_textarea_getElemById │ └── textarea_getElemById.htm │ ├── 08_prompt │ └── prompt.htm │ ├── 22_function3 │ └── function3.htm │ ├── 23_function_anonymous │ └── function_anonymous.htm │ ├── 04_datatype │ └── datatype.htm │ ├── 28_textarea_style │ └── textarea_style.htm │ ├── 03_var3 │ └── var3.htm │ ├── 18_function2 │ └── function2.htm │ ├── 21_function_delegate │ └── function_delegate.htm │ ├── 01_var │ └── var.htm │ ├── 19_function_param │ └── function_param.htm │ ├── 14_array │ └── array.htm │ └── 29_textarea_log │ └── textarea_log.htm ├── 08_Runner1 ├── 01_ready │ ├── package.json │ └── HelloHASM.hda ├── 02_getcode │ ├── package.json │ └── HelloHASM.hda ├── 08_run_fix │ ├── package.json │ └── HelloHASM.hda ├── 09_memory │ ├── package.json │ └── HelloHASM.hda ├── 13_format │ └── package.json ├── 14_format2 │ └── package.json ├── 15_format3 │ └── package.json ├── 03_getcode_mne │ ├── package.json │ └── HelloHASM.hda ├── 04_getcode_op1 │ ├── package.json │ └── HelloHASM.hda ├── 06_getcode_op2 │ ├── package.json │ └── HelloHASM.hda ├── 07_analysis_try │ ├── package.json │ └── HelloHASM.hda ├── 11_register │ ├── package.json │ ├── HelloHASM.hda │ └── Register.js ├── 12_memory_show │ ├── package.json │ ├── HelloHASM.hda │ └── Register.js ├── 05_getcode_op1_fix │ ├── package.json │ └── HelloHASM.hda ├── 10_memory_upgrade │ ├── package.json │ └── HelloHASM.hda ├── 16_handy │ ├── package.json │ ├── HelloHASM.hda │ └── Register.js └── 17_register2 │ ├── package.json │ ├── HelloHASM.hda │ └── Register.js ├── 01_StackAndCalc ├── 01_Stack │ ├── Debug │ │ └── 01_Stack.log │ └── 01_Stack.cpp ├── 10_atoi │ ├── Debug │ │ └── 10_atoi.log │ └── 10_atoi.cpp ├── 02_basic4 │ ├── Debug │ │ └── 02_basic4.log │ └── 02_basic4.cpp ├── 12_atoi_alt │ ├── Debug │ │ └── 12_atoi_alt.log │ └── 12_atoi_alt.cpp ├── 01_StackAndCalc.v12.suo ├── 03_in_to_post │ ├── Debug │ │ └── 03_in_to_post.log │ └── 03_in_to_post.cpp ├── 06_read_infix │ ├── Debug │ │ └── 06_read_infix.log │ └── 06_read_infix.cpp ├── 07_conversion │ ├── Debug │ │ └── 07_conversion.log │ └── 07_conversion.cpp ├── 05_read_postfix │ ├── Debug │ │ └── 05_read_postfix.log │ └── 05_read_postfix.cpp ├── 11_basic4_atoi │ ├── Debug │ │ └── 11_basic4_atoi.log │ └── 11_basic4_atoi.cpp ├── 04_in_to_post_paren │ ├── Debug │ │ └── 04_in_to_post_paren.log │ └── 04_in_to_post_paren.cpp ├── 13_StringBufferMain │ ├── Debug │ │ └── 13_StringBufferMain.log │ ├── StringBuffer.h │ └── 13_StringBufferMain.cpp ├── 08_conversion_skeleton │ ├── Debug │ │ └── 08_conversion_skeleton.log │ └── 08_conversion_skeleton.cpp ├── 14_basic4_StringBuffer │ ├── Debug │ │ └── 14_basic4_StringBuffer.log │ ├── StringBuffer.h │ └── 14_basic4_StringBuffer.cpp └── 09_conversion_implementation │ ├── Debug │ └── 09_conversion_implementation.log │ └── 09_conversion_implementation.cpp ├── 07_JSCC_Ready ├── 01_Error │ └── Error.htm └── 10_HandyFileSystem │ └── package.json ├── README.md └── lineCount.txt /.gitignore: -------------------------------------------------------------------------------- 1 | *.sdf 2 | *.log -------------------------------------------------------------------------------- /05_NASM/03_mov/log/LinkErrLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/03_mov/log/LinkOutLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /10_Linker/01_refactor/main.hda: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /10_Linker/02_lowlevelasm/main.hda: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /10_Linker/03_register/main.hda: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/03_mov/log/AssembleErrLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/03_mov/log/AssembleOutLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/04_constant/log/LinkErrLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/04_constant/log/LinkOutLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/05_dataseg/log/LinkErrLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/05_dataseg/log/LinkOutLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/01_HelloWorld/log/LinkErrLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/01_HelloWorld/log/LinkOutLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/02_Instruction/log/LinkErrLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/02_Instruction/log/LinkOutLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/04_constant/log/AssembleErrLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/04_constant/log/AssembleOutLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/05_dataseg/log/AssembleOutLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /11_Compiler/04_analysis/main.c: -------------------------------------------------------------------------------- 1 | main() {} -------------------------------------------------------------------------------- /05_NASM/01_HelloWorld/log/AssembleErrLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/01_HelloWorld/log/AssembleOutLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/02_Instruction/log/AssembleErrLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /05_NASM/02_Instruction/log/AssembleOutLog.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /13_Compiler_fix/14_binary_expr/main.c: -------------------------------------------------------------------------------- 1 | cond ? true : false ; -------------------------------------------------------------------------------- /09_Runner2/01_HelloExit/HelloExit.hda: -------------------------------------------------------------------------------- 1 | .code 2 | mov eax,0 3 | exit -------------------------------------------------------------------------------- /09_Runner2/02_execute_fix/HelloExit.hda: -------------------------------------------------------------------------------- 1 | .code 2 | mov eax,0 3 | exit -------------------------------------------------------------------------------- /10_Linker/03_register/Program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | 4 | 5 | .code 6 | -------------------------------------------------------------------------------- /10_Linker/02_lowlevelasm/Program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | 4 | 5 | .code 6 | -------------------------------------------------------------------------------- /13_Compiler_fix/01_ready/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/11_check/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /00_src_deprecated/16_statement/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /00_src_deprecated/17_expr_stmt/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/03_decl_spcf/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/06_toString/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/07_ext_dcl_fix/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/08_expression/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/09_assign_expr/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/10_unary_expr/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/14_binary_expr/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/16_statement/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/21_jump_stmt/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /.README.md.swn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/.README.md.swn -------------------------------------------------------------------------------- /.README.md.swo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/.README.md.swo -------------------------------------------------------------------------------- /00_src_deprecated/18_compound_stmt/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/04_init_decl_list/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/05_param_type_list/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/12_primary_expr/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/13_conditional_expr/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/15_binary_expr2/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/17_expression_stmt/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/18_compound_stmt/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/19_selection_stmt/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/20_iteration_stmt/main.c: -------------------------------------------------------------------------------- 1 | { 2 | for (;;) { 3 | 4 | } 5 | } -------------------------------------------------------------------------------- /13_Compiler_fix/20_iteration_stmt/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/22_labeled_stmt/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/02_external_declaration/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | 5 | end _main -------------------------------------------------------------------------------- /05_NASM/03_mov/mov.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/05_NASM/03_mov/mov.obj -------------------------------------------------------------------------------- /13_Compiler_fix/03_decl_spcf/main.c: -------------------------------------------------------------------------------- 1 | int; 2 | const; 3 | const int; 4 | static const long long int; -------------------------------------------------------------------------------- /13_Compiler_fix/05_param_type_list/main.c: -------------------------------------------------------------------------------- 1 | int main(); 2 | int func(int); 3 | int sum(int a, int b); -------------------------------------------------------------------------------- /13_Compiler_fix/22_labeled_stmt/main.c: -------------------------------------------------------------------------------- 1 | { 2 | case 10: 3 | default: 4 | label: 5 | ; 6 | } -------------------------------------------------------------------------------- /04_CIL/macosx/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/04_CIL/macosx/.DS_Store -------------------------------------------------------------------------------- /04_CIL/win32/CIL.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/04_CIL/win32/CIL.v12.suo -------------------------------------------------------------------------------- /13_Compiler_fix/04_init_decl_list/main.c: -------------------------------------------------------------------------------- 1 | int; 2 | const; 3 | const int; 4 | static const long long int; -------------------------------------------------------------------------------- /02_cdecl/02_cdecl.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/02_cdecl.v12.suo -------------------------------------------------------------------------------- /02_cdecl/06_rdx_v2/Table.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/06_rdx_v2/Table.h -------------------------------------------------------------------------------- /02_cdecl/06_rdx_v2/common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/06_rdx_v2/common.h -------------------------------------------------------------------------------- /02_cdecl/06_rdx_v2/rdx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/06_rdx_v2/rdx.cpp -------------------------------------------------------------------------------- /02_cdecl/06_rdx_v2/tbl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/06_rdx_v2/tbl.cpp -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/Table.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/07_dcl_v2/Table.h -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/07_dcl_v2/common.h -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/dcl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/07_dcl_v2/dcl.cpp -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/tbl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/07_dcl_v2/tbl.cpp -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/dcl.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/dcl.h -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/rdx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/rdx.h -------------------------------------------------------------------------------- /05_NASM/03_mov/03_mov.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/05_NASM/03_mov/03_mov.exe -------------------------------------------------------------------------------- /10_Linker/05_sstream/main.hdx: -------------------------------------------------------------------------------- 1 | .code 2 | push ebp 3 | mov ebp, esp 4 | mov esp, ebp 5 | pop ebp 6 | exit 7 | -------------------------------------------------------------------------------- /10_Linker/05_sstream/out.hdx: -------------------------------------------------------------------------------- 1 | .code 2 | push ebp 3 | mov ebp, esp 4 | mov esp, ebp 5 | pop ebp 6 | exit 7 | -------------------------------------------------------------------------------- /10_Linker/06_load/main.hdx: -------------------------------------------------------------------------------- 1 | .code 2 | push ebp 3 | mov ebp, esp 4 | mov esp, ebp 5 | pop ebp 6 | exit 7 | -------------------------------------------------------------------------------- /10_Linker/07_load_fix/main.hdx: -------------------------------------------------------------------------------- 1 | .code 2 | push ebp 3 | mov ebp, esp 4 | mov esp, ebp 5 | pop ebp 6 | exit 7 | -------------------------------------------------------------------------------- /10_Linker/08_extern/main.hdx: -------------------------------------------------------------------------------- 1 | .code 2 | push ebp 3 | mov ebp, esp 4 | mov esp, ebp 5 | pop ebp 6 | exit 7 | -------------------------------------------------------------------------------- /10_Linker/10_link/main.hdx: -------------------------------------------------------------------------------- 1 | .code 2 | push ebp 3 | mov ebp, esp 4 | mov esp, ebp 5 | pop ebp 6 | exit 7 | -------------------------------------------------------------------------------- /10_Linker/11_link2/main.hdx: -------------------------------------------------------------------------------- 1 | .code 2 | push ebp 3 | mov ebp, esp 4 | mov esp, ebp 5 | pop ebp 6 | exit 7 | -------------------------------------------------------------------------------- /10_Linker/12_link3/main.hdx: -------------------------------------------------------------------------------- 1 | .code 2 | push ebp 3 | mov ebp, esp 4 | mov esp, ebp 5 | pop ebp 6 | exit 7 | -------------------------------------------------------------------------------- /10_Linker/13_link4/main.hdx: -------------------------------------------------------------------------------- 1 | .code 2 | push ebp 3 | mov ebp, esp 4 | mov esp, ebp 5 | pop ebp 6 | exit 7 | -------------------------------------------------------------------------------- /02_cdecl/04_calc_mix/common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/04_calc_mix/common.h -------------------------------------------------------------------------------- /02_cdecl/04_calc_mix/dcl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/04_calc_mix/dcl.cpp -------------------------------------------------------------------------------- /02_cdecl/06_rdx_v2/common.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/06_rdx_v2/common.cpp -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/common.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/07_dcl_v2/common.cpp -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/Table.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/Table.h -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/dcl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/dcl.cpp -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/rdx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/rdx.cpp -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/tbl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/tbl.cpp -------------------------------------------------------------------------------- /06_WebProgramming/01_HelloWorld/01_HelloHTML/HelloHTML.htm: -------------------------------------------------------------------------------- 1 | 2 | Hello, world! 3 | -------------------------------------------------------------------------------- /10_Linker/09_write_segdata/main.hdx: -------------------------------------------------------------------------------- 1 | .code 2 | push ebp 3 | mov ebp, esp 4 | mov esp, ebp 5 | pop ebp 6 | exit 7 | -------------------------------------------------------------------------------- /11_Compiler/01_ready/main.c: -------------------------------------------------------------------------------- 1 | main() { 2 | int sum; 3 | int a, b; 4 | a = 10; b = 20; 5 | sum = a + b; 6 | } -------------------------------------------------------------------------------- /02_cdecl/03_dcl/03_dcl_main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/03_dcl/03_dcl_main.cpp -------------------------------------------------------------------------------- /02_cdecl/03_dcl/StringBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/03_dcl/StringBuffer.h -------------------------------------------------------------------------------- /02_cdecl/04_calc_mix/common.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/04_calc_mix/common.cpp -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/common.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/common.cpp -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/common.h -------------------------------------------------------------------------------- /05_NASM/04_constant/constant.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/05_NASM/04_constant/constant.obj -------------------------------------------------------------------------------- /05_NASM/05_dataseg/dataseg.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/05_NASM/05_dataseg/dataseg.obj -------------------------------------------------------------------------------- /08_Runner1/01_ready/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/02_getcode/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/08_run_fix/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/09_memory/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/13_format/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/14_format2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/15_format3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /11_Compiler/02_ready2/main.c: -------------------------------------------------------------------------------- 1 | main() { 2 | int sum; 3 | int a, b; 4 | a = 10; b = 20; 5 | sum = a + b; 6 | } -------------------------------------------------------------------------------- /11_Compiler/03_get_ctoken/main.c: -------------------------------------------------------------------------------- 1 | main() { 2 | int sum; 3 | int a, b; 4 | a = 10; b = 20; 5 | sum = a + b; 6 | } -------------------------------------------------------------------------------- /11_Compiler/05_analysis2/main.c: -------------------------------------------------------------------------------- 1 | main() { 2 | int sum; 3 | int a, b; 4 | a = 10; b = 20; 5 | sum = a + b; 6 | } -------------------------------------------------------------------------------- /13_Compiler_fix/01_ready/main.c: -------------------------------------------------------------------------------- 1 | main() { 2 | int sum; 3 | int a, b; 4 | a = 10; b = 20; 5 | sum = a + b; 6 | } -------------------------------------------------------------------------------- /13_Compiler_fix/11_check/main.c: -------------------------------------------------------------------------------- 1 | num; 2 | num = 1; 3 | num += 2; 4 | num <<= 3; 5 | num = (int)4; 6 | num = (int *)5; -------------------------------------------------------------------------------- /13_Compiler_fix/12_primary_expr/main.c: -------------------------------------------------------------------------------- 1 | str = "Hello, world!"; 2 | num = (1000); 3 | num = (int *)("Nice to meet you"); -------------------------------------------------------------------------------- /01_StackAndCalc/01_Stack/Debug/01_Stack.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /01_StackAndCalc/10_atoi/Debug/10_atoi.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /02_cdecl/02_typedef/02_typedef.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/02_typedef/02_typedef.cpp -------------------------------------------------------------------------------- /02_cdecl/06_rdx_v2/StringBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/06_rdx_v2/StringBuffer.h -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/StringBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/07_dcl_v2/StringBuffer.h -------------------------------------------------------------------------------- /05_NASM/05_dataseg/05_dataseg.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/05_NASM/05_dataseg/05_dataseg.exe -------------------------------------------------------------------------------- /08_Runner1/03_getcode_mne/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/04_getcode_op1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/06_getcode_op2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/07_analysis_try/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/11_register/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/12_memory_show/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /10_Linker/00_example/src1.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHello db 'hello', 0 3 | 4 | .code 5 | _sayHello: 6 | handy puts, _sHello 7 | ret -------------------------------------------------------------------------------- /13_Compiler_fix/13_conditional_expr/main.c: -------------------------------------------------------------------------------- 1 | str = "Hello, world!"; 2 | num = (1000); 3 | num = (int *)("Nice to meet you"); -------------------------------------------------------------------------------- /01_StackAndCalc/01_Stack/01_Stack.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/01_Stack/01_Stack.cpp -------------------------------------------------------------------------------- /01_StackAndCalc/02_basic4/Debug/02_basic4.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /01_StackAndCalc/10_atoi/10_atoi.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/10_atoi/10_atoi.cpp -------------------------------------------------------------------------------- /01_StackAndCalc/12_atoi_alt/Debug/12_atoi_alt.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /02_cdecl/04_calc_mix/StringBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/04_calc_mix/StringBuffer.h -------------------------------------------------------------------------------- /02_cdecl/04_calc_mix/read_infix.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/04_calc_mix/read_infix.cpp -------------------------------------------------------------------------------- /02_cdecl/05_StringBuffer_v2/common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/05_StringBuffer_v2/common.h -------------------------------------------------------------------------------- /02_cdecl/06_rdx_v2/StringBuffer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/06_rdx_v2/StringBuffer.cpp -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/IdentifierInfo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/07_dcl_v2/IdentifierInfo.cpp -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/IdentifierInfo.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/07_dcl_v2/IdentifierInfo.h -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/StringBuffer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/07_dcl_v2/StringBuffer.cpp -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/StringBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/StringBuffer.h -------------------------------------------------------------------------------- /04_CIL/macosx/02_PrintValue/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/04_CIL/macosx/02_PrintValue/.DS_Store -------------------------------------------------------------------------------- /04_CIL/macosx/05_Condition/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/04_CIL/macosx/05_Condition/.DS_Store -------------------------------------------------------------------------------- /04_CIL/win32/02_PrintValue/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/04_CIL/win32/02_PrintValue/.DS_Store -------------------------------------------------------------------------------- /04_CIL/win32/05_Condition/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/04_CIL/win32/05_Condition/.DS_Store -------------------------------------------------------------------------------- /05_NASM/01_HelloWorld/HelloWorld.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/05_NASM/01_HelloWorld/HelloWorld.obj -------------------------------------------------------------------------------- /05_NASM/04_constant/04_constant.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/05_NASM/04_constant/04_constant.exe -------------------------------------------------------------------------------- /07_JSCC_Ready/01_Error/Error.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /08_Runner1/05_getcode_op1_fix/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /08_Runner1/10_memory_upgrade/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /13_Compiler_fix/19_selection_stmt/main.c: -------------------------------------------------------------------------------- 1 | { 2 | int cond, result; 3 | cond = 1; 4 | if (cond != 1) 5 | result = 1; 6 | } -------------------------------------------------------------------------------- /13_Compiler_fix/21_jump_stmt/main.c: -------------------------------------------------------------------------------- 1 | { 2 | goto label; 3 | continue; 4 | break; 5 | return; 6 | return expression; 7 | } -------------------------------------------------------------------------------- /01_StackAndCalc/01_StackAndCalc.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/01_StackAndCalc.v12.suo -------------------------------------------------------------------------------- /01_StackAndCalc/02_basic4/02_basic4.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/02_basic4/02_basic4.cpp -------------------------------------------------------------------------------- /01_StackAndCalc/03_in_to_post/Debug/03_in_to_post.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /01_StackAndCalc/06_read_infix/Debug/06_read_infix.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /01_StackAndCalc/07_conversion/Debug/07_conversion.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /02_cdecl/05_StringBuffer_v2/common.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/05_StringBuffer_v2/common.cpp -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/IdentifierInfo.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/IdentifierInfo.h -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/StringBuffer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/StringBuffer.cpp -------------------------------------------------------------------------------- /05_NASM/01_HelloWorld/01_HelloWorld.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/05_NASM/01_HelloWorld/01_HelloWorld.exe -------------------------------------------------------------------------------- /05_NASM/02_Instruction/Instruction.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/05_NASM/02_Instruction/Instruction.obj -------------------------------------------------------------------------------- /07_JSCC_Ready/10_HandyFileSystem/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html" 5 | } -------------------------------------------------------------------------------- /13_Compiler_fix/02_external_declaration/main.c: -------------------------------------------------------------------------------- 1 | main() { 2 | int sum; 3 | int a, b; 4 | a = 10; b = 20; 5 | sum = a + b; 6 | } -------------------------------------------------------------------------------- /13_Compiler_fix/23_compile/main.c: -------------------------------------------------------------------------------- 1 | main() 2 | { 3 | int sum; 4 | int a, b; 5 | a = 10; 6 | b = 20; 7 | sum = a + b; 8 | } -------------------------------------------------------------------------------- /01_StackAndCalc/05_read_postfix/Debug/05_read_postfix.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /01_StackAndCalc/11_basic4_atoi/Debug/11_basic4_atoi.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /02_cdecl/05_StringBuffer_v2/StringBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/05_StringBuffer_v2/StringBuffer.h -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/IdentifierInfo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/08_calc_mix2/IdentifierInfo.cpp -------------------------------------------------------------------------------- /05_NASM/02_Instruction/02_Instruction.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/05_NASM/02_Instruction/02_Instruction.exe -------------------------------------------------------------------------------- /13_Compiler_fix/24_program_update/main.c: -------------------------------------------------------------------------------- 1 | main() 2 | { 3 | int sum; 4 | int a, b; 5 | a = 10; 6 | b = 20; 7 | sum = a + b; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/25_compile_complete/main.c: -------------------------------------------------------------------------------- 1 | main() 2 | { 3 | int sum; 4 | int a, b; 5 | a = 10; 6 | b = 20; 7 | sum = a + b; 8 | } -------------------------------------------------------------------------------- /01_StackAndCalc/12_atoi_alt/12_atoi_alt.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/12_atoi_alt/12_atoi_alt.cpp -------------------------------------------------------------------------------- /02_cdecl/05_StringBuffer_v2/StringBuffer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/05_StringBuffer_v2/StringBuffer.cpp -------------------------------------------------------------------------------- /06_WebProgramming/01_HelloWorld/03_HelloTitle/HelloTitle.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | Title is here 4 | 5 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/25_textarea/textarea.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /01_StackAndCalc/03_in_to_post/03_in_to_post.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/03_in_to_post/03_in_to_post.cpp -------------------------------------------------------------------------------- /01_StackAndCalc/04_in_to_post_paren/Debug/04_in_to_post_paren.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /01_StackAndCalc/06_read_infix/06_read_infix.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/06_read_infix/06_read_infix.cpp -------------------------------------------------------------------------------- /01_StackAndCalc/07_conversion/07_conversion.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/07_conversion/07_conversion.cpp -------------------------------------------------------------------------------- /01_StackAndCalc/13_StringBufferMain/Debug/13_StringBufferMain.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /02_cdecl/01_c_declaration/01_c_declaration.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/01_c_declaration/01_c_declaration.cpp -------------------------------------------------------------------------------- /10_Linker/00_example/src2.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHi db 'hi', 0 3 | 4 | .code 5 | _sayHi: 6 | handy puts, _sHi 7 | ret 8 | 9 | _main: 10 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/16_statement/main.c: -------------------------------------------------------------------------------- 1 | num = 1 + 2 * 3 + 4; 2 | max = (num1 > num2) ? num1 : num2; 3 | *ptr = *(int *)address; 4 | *(arr+idx) = ++value; -------------------------------------------------------------------------------- /00_src_deprecated/16_statement/main.c: -------------------------------------------------------------------------------- 1 | num = 1 + 2 * 3 + 4; 2 | max = (num1 > num2) ? num1 : num2; 3 | *ptr = *(int *)address; 4 | *(arr+idx) = ++value; -------------------------------------------------------------------------------- /00_src_deprecated/17_expr_stmt/main.c: -------------------------------------------------------------------------------- 1 | num = 1 + 2 * 3 + 4; 2 | max = (num1 > num2) ? num1 : num2; 3 | *ptr = *(int *)address; 4 | *(arr+idx) = ++value; -------------------------------------------------------------------------------- /01_StackAndCalc/08_conversion_skeleton/Debug/08_conversion_skeleton.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /01_StackAndCalc/11_basic4_atoi/11_basic4_atoi.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/11_basic4_atoi/11_basic4_atoi.cpp -------------------------------------------------------------------------------- /01_StackAndCalc/14_basic4_StringBuffer/Debug/14_basic4_StringBuffer.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /13_Compiler_fix/15_binary_expr2/main.c: -------------------------------------------------------------------------------- 1 | num = 1 + 2 * 3 + 4; 2 | max = (num1 > num2) ? num1 : num2; 3 | *ptr = *(int *)address; 4 | *(arr+idx) = ++value; -------------------------------------------------------------------------------- /00_src_deprecated/18_compound_stmt/main.c: -------------------------------------------------------------------------------- 1 | num = 1 + 2 * 3 + 4; 2 | max = (num1 > num2) ? num1 : num2; 3 | *ptr = *(int *)address; 4 | *(arr+idx) = ++value; -------------------------------------------------------------------------------- /01_StackAndCalc/05_read_postfix/05_read_postfix.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/05_read_postfix/05_read_postfix.cpp -------------------------------------------------------------------------------- /01_StackAndCalc/13_StringBufferMain/StringBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/13_StringBufferMain/StringBuffer.h -------------------------------------------------------------------------------- /02_cdecl/05_StringBuffer_v2/StringBufferV2Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/02_cdecl/05_StringBuffer_v2/StringBufferV2Main.cpp -------------------------------------------------------------------------------- /13_Compiler_fix/17_expression_stmt/main.c: -------------------------------------------------------------------------------- 1 | num = 1 + 2 * 3 + 4; 2 | max = (num1 > num2) ? num1 : num2; 3 | *ptr = *(int *)address; 4 | *(arr+idx) = ++value; -------------------------------------------------------------------------------- /13_Compiler_fix/18_compound_stmt/main.c: -------------------------------------------------------------------------------- 1 | { 2 | int max; 3 | int num1, num2; 4 | num1 = 1; 5 | num2 = 2; 6 | max = (num1 > num2) ? num1 : num2; 7 | } -------------------------------------------------------------------------------- /01_StackAndCalc/09_conversion_implementation/Debug/09_conversion_implementation.log: -------------------------------------------------------------------------------- 1 | 빌드 시작: 2015-04-29 오전 12:18:34 2 | 3 | 빌드했습니다. 4 | 5 | 경과 시간: 00:00:00.00 6 | -------------------------------------------------------------------------------- /01_StackAndCalc/14_basic4_StringBuffer/StringBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/14_basic4_StringBuffer/StringBuffer.h -------------------------------------------------------------------------------- /04_CIL/win32/ipch/00_cil-a3814ef9/00_cil-cb613e03.ipch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/04_CIL/win32/ipch/00_cil-a3814ef9/00_cil-cb613e03.ipch -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/26_textarea_id/textarea_id.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /13_Compiler_fix/06_toString/main.c: -------------------------------------------------------------------------------- 1 | int main(); 2 | int func(int); 3 | int sum(int a, int b); 4 | void qsort(void *arr, int count, int size, int (*cmp)(int, int)); -------------------------------------------------------------------------------- /05_NASM/03_mov/03_mov.pro: -------------------------------------------------------------------------------- 1 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\03_mov\03_mov.pro 2 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\03_mov\mov.asm 3 | -------------------------------------------------------------------------------- /01_StackAndCalc/04_in_to_post_paren/04_in_to_post_paren.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/04_in_to_post_paren/04_in_to_post_paren.cpp -------------------------------------------------------------------------------- /06_WebProgramming/01_HelloWorld/02_HelloJS/HelloJS.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /04_CIL/win32/14_SpArrange/SpArrange.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | PROC(main) 4 | 5 | PUSH(10) 6 | INVOKE(print_int) 7 | 8 | PUSH(20) 9 | INVOKE(print_int) 10 | 11 | ENDP -------------------------------------------------------------------------------- /11_Compiler/04_analysis/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | global _main 5 | _main: 6 | push ebp 7 | mov ebp, esp 8 | mov esp, ebp 9 | pop ebp 10 | ret 11 | 12 | end _main -------------------------------------------------------------------------------- /04_CIL/macosx/14_SpArrange/SpArrange.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | PROC(main) 4 | 5 | PUSH(10) 6 | INVOKE(print_int) 7 | 8 | PUSH(20) 9 | INVOKE(print_int) 10 | 11 | ENDP -------------------------------------------------------------------------------- /09_Runner2/08_handy2/print_string.hda: -------------------------------------------------------------------------------- 1 | .code 2 | _main: 3 | push ebp 4 | mov ebp, esp 5 | 6 | print_str "Hello, world!" 7 | 8 | _end: 9 | mov esp, ebp 10 | pop ebp 11 | exit -------------------------------------------------------------------------------- /10_Linker/01_refactor/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/03_register/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/04_runner/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/05_sstream/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/06_load/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/07_load_fix/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/08_extern/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/10_link/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/11_link2/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/12_link3/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/13_link4/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /11_Compiler/01_ready/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /11_Compiler/02_ready2/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /11_Compiler/05_analysis2/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | global _main 5 | _main: 6 | push ebp 7 | mov ebp, esp 8 | mov esp, ebp 9 | pop ebp 10 | ret 11 | 12 | end _main -------------------------------------------------------------------------------- /13_Compiler_fix/23_compile/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | global _main 5 | _main: 6 | push ebp 7 | mov ebp, esp 8 | mov esp, ebp 9 | pop ebp 10 | ret 11 | 12 | end _main -------------------------------------------------------------------------------- /01_StackAndCalc/08_conversion_skeleton/08_conversion_skeleton.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/08_conversion_skeleton/08_conversion_skeleton.cpp -------------------------------------------------------------------------------- /01_StackAndCalc/14_basic4_StringBuffer/14_basic4_StringBuffer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/14_basic4_StringBuffer/14_basic4_StringBuffer.cpp -------------------------------------------------------------------------------- /04_CIL/macosx/12_PushPop/PushPop.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | // main 4 | PROC(main) 5 | 6 | PUSH(10) 7 | PUSH(20) 8 | PUSH(30) 9 | POP(a) 10 | POP(b) 11 | POP(c) 12 | 13 | ENDP -------------------------------------------------------------------------------- /04_CIL/ubuntu/14_SpArrange/SpArrange.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | PROC(main) 4 | 5 | PUSH(10) 6 | INVOKE(print_int) 7 | 8 | PUSH(20) 9 | INVOKE(print_int) 10 | 11 | ENDP 12 | -------------------------------------------------------------------------------- /04_CIL/win32/12_PushPop/PushPop.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | // main 4 | PROC(main) 5 | 6 | PUSH(10) 7 | PUSH(20) 8 | PUSH(30) 9 | POP(a) 10 | POP(b) 11 | POP(c) 12 | 13 | ENDP -------------------------------------------------------------------------------- /09_Runner2/09_show_fix/print_line.hda: -------------------------------------------------------------------------------- 1 | .code 2 | _main: 3 | push ebp 4 | mov ebp, esp 5 | 6 | print_str "Hello, world!\n" 7 | 8 | _end: 9 | mov esp, ebp 10 | pop ebp 11 | exit -------------------------------------------------------------------------------- /09_Runner2/10_write_fix/print_line.hda: -------------------------------------------------------------------------------- 1 | .code 2 | _main: 3 | push ebp 4 | mov ebp, esp 5 | 6 | print_str "Hello, world!\n" 7 | 8 | _end: 9 | mov esp, ebp 10 | pop ebp 11 | exit -------------------------------------------------------------------------------- /10_Linker/02_lowlevelasm/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /10_Linker/09_write_segdata/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /11_Compiler/03_get_ctoken/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /11_Compiler/04_analysis/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /11_Compiler/05_analysis2/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/01_ready/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/11_check/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/23_compile/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /00_src_deprecated/16_statement/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /00_src_deprecated/17_expr_stmt/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /04_CIL/ubuntu/12_PushPop/PushPop.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | // main 4 | PROC(main) 5 | 6 | PUSH(10) 7 | PUSH(20) 8 | PUSH(30) 9 | POP(a) 10 | POP(b) 11 | POP(c) 12 | 13 | ENDP 14 | -------------------------------------------------------------------------------- /05_NASM/05_dataseg/05_dataseg.pro: -------------------------------------------------------------------------------- 1 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\05_dataseg\05_dataseg.pro 2 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\05_dataseg\dataseg.asm 3 | -------------------------------------------------------------------------------- /13_Compiler_fix/03_decl_spcf/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/06_toString/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/07_ext_dcl_fix/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/08_expression/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/09_assign_expr/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/10_unary_expr/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/12_primary_expr/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/14_binary_expr/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/15_binary_expr2/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/16_statement/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/21_jump_stmt/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/22_labeled_stmt/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /00_src_deprecated/18_compound_stmt/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /05_NASM/04_constant/04_constant.pro: -------------------------------------------------------------------------------- 1 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\04_constant\04_constant.pro 2 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\04_constant\constant.asm 3 | -------------------------------------------------------------------------------- /05_NASM/05_dataseg/log/AssembleErrLog.txt: -------------------------------------------------------------------------------- 1 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\05_dataseg\dataseg.asm:10: warning: uninitialised space declared in non-BSS section `.data': zeroing 2 | -------------------------------------------------------------------------------- /09_Runner2/05_operate/HelloLabel.hda: -------------------------------------------------------------------------------- 1 | .code 2 | _main: 3 | push ebp 4 | mov ebp, esp 5 | 6 | mov eax, 3 7 | jmp _end 8 | mov eax, 5 9 | 10 | _end: 11 | mov esp, ebp 12 | pop ebp 13 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/04_init_decl_list/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/05_param_type_list/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/13_conditional_expr/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/17_expression_stmt/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/18_compound_stmt/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/19_selection_stmt/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/20_iteration_stmt/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/24_program_update/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /13_Compiler_fix/25_compile_complete/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/09_string_add2/string_add2.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /09_Runner2/04_HelloLabel_fix/HelloLabel.hda: -------------------------------------------------------------------------------- 1 | .code 2 | _main: 3 | push ebp 4 | mov ebp, esp 5 | 6 | mov eax, 3 7 | jmp _end 8 | mov eax, 5 9 | 10 | _end: 11 | mov esp, ebp 12 | pop ebp 13 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/02_external_declaration/MachineSystem.js: -------------------------------------------------------------------------------- 1 | /** 2 | 가상 머신의 공통적 요소를 관리합니다. 3 | */ 4 | function initMachineSystem(machine) { 5 | var system = {}; 6 | 7 | machine.System = system; 8 | } -------------------------------------------------------------------------------- /01_StackAndCalc/09_conversion_implementation/09_conversion_implementation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/01_StackAndCalc/09_conversion_implementation/09_conversion_implementation.cpp -------------------------------------------------------------------------------- /04_CIL/log.txt: -------------------------------------------------------------------------------- 1 | [2015-05-15] Revision: 1.0.0.0 2 | - First supported Windows 7 only 3 | 4 | [2015-05-30] Revision: 1.0.0.1 5 | - Now CIL supports Windows 7, Ubuntu Linux and Mac OS X 6 | - Project 13 bug fixed -------------------------------------------------------------------------------- /09_Runner2/03_HelloLabel_failed/HelloLabel.hda: -------------------------------------------------------------------------------- 1 | .code 2 | _main: 3 | push ebp 4 | mov ebp, esp 5 | 6 | mov eax, 3 7 | jmp _end 8 | mov eax, 5 9 | 10 | _end: 11 | mov esp, ebp 12 | pop ebp 13 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/07_ext_dcl_fix/main.c: -------------------------------------------------------------------------------- 1 | int func(int); 2 | int main() { 3 | return 0; 4 | } 5 | int sum(int a, int b); 6 | void qsort(void *arr, int count, int size, int (*cmp)(int, int)); 7 | int func(int) {} -------------------------------------------------------------------------------- /13_Compiler_fix/08_expression/main.c: -------------------------------------------------------------------------------- 1 | int func(int); 2 | int main() { 3 | return 0; 4 | } 5 | int sum(int a, int b); 6 | void qsort(void *arr, int count, int size, int (*cmp)(int, int)); 7 | int func(int) {} -------------------------------------------------------------------------------- /13_Compiler_fix/09_assign_expr/main.c: -------------------------------------------------------------------------------- 1 | int func(int); 2 | int main() { 3 | return 0; 4 | } 5 | int sum(int a, int b); 6 | void qsort(void *arr, int count, int size, int (*cmp)(int, int)); 7 | int func(int) {} -------------------------------------------------------------------------------- /13_Compiler_fix/10_unary_expr/main.c: -------------------------------------------------------------------------------- 1 | int func(int); 2 | int main() { 3 | return 0; 4 | } 5 | int sum(int a, int b); 6 | void qsort(void *arr, int count, int size, int (*cmp)(int, int)); 7 | int func(int) {} -------------------------------------------------------------------------------- /04_CIL/ubuntu/00_CIL/00_CIL.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += main.c \ 7 | CIL.c 8 | 9 | HEADERS += \ 10 | CIL.h 11 | 12 | -------------------------------------------------------------------------------- /05_NASM/01_HelloWorld/01_HelloWorld.pro: -------------------------------------------------------------------------------- 1 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\01_HelloWorld\01_HelloWorld.pro 2 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\01_HelloWorld\HelloWorld.asm 3 | -------------------------------------------------------------------------------- /05_NASM/02_Instruction/02_Instruction.pro: -------------------------------------------------------------------------------- 1 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\02_Instruction\02_Instruction.pro 2 | C:\Users\HandyMain\Desktop\일반 파일\QuickNASM\project\02_Instruction\Instruction.asm 3 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/12_numberToString/numberToString.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/04_Jump/04_Jump.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | Jump.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/06_Loop/06_Loop.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | Loop.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/07_string_len/string_len.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /10_Linker/06_load/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'hello, world!', 0 3 | 4 | .code 5 | ; proc main 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | handy puts, _sHelloWorld 10 | mov esp, ebp 11 | pop ebp 12 | exit -------------------------------------------------------------------------------- /10_Linker/08_extern/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'hello, world!', 0 3 | 4 | .code 5 | ; proc main 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | handy puts, _sHelloWorld 10 | mov esp, ebp 11 | pop ebp 12 | exit -------------------------------------------------------------------------------- /10_Linker/10_link/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'hello, world!', 0 3 | 4 | .code 5 | ; proc main 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | handy puts, _sHelloWorld 10 | mov esp, ebp 11 | pop ebp 12 | exit -------------------------------------------------------------------------------- /10_Linker/11_link2/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'hello, world!', 0 3 | 4 | .code 5 | ; proc main 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | handy puts, _sHelloWorld 10 | mov esp, ebp 11 | pop ebp 12 | exit -------------------------------------------------------------------------------- /10_Linker/12_link3/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'hello, world!', 0 3 | 4 | .code 5 | ; proc main 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | handy puts, _sHelloWorld 10 | mov esp, ebp 11 | pop ebp 12 | exit -------------------------------------------------------------------------------- /10_Linker/13_link4/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'hello, world!', 0 3 | 4 | .code 5 | ; proc main 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | handy puts, _sHelloWorld 10 | mov esp, ebp 11 | pop ebp 12 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/24_program_update/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | global _main 5 | _main: 6 | push ebp 7 | mov ebp, esp 8 | sub esp, 4 9 | sub esp, 8 10 | mov esp, ebp 11 | pop ebp 12 | ret 13 | 14 | end _main -------------------------------------------------------------------------------- /08_Runner1/16_handy/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1024, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/07_handy/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/11_handy/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/04_runner/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/05_sstream/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'hello, world!', 0 3 | 4 | .code 5 | ; proc main 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | handy puts, _sHelloWorld 10 | mov esp, ebp 11 | pop ebp 12 | exit -------------------------------------------------------------------------------- /10_Linker/06_load/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/07_load_fix/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'hello, world!', 0 3 | 4 | .code 5 | ; proc main 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | handy puts, _sHelloWorld 10 | mov esp, ebp 11 | pop ebp 12 | exit -------------------------------------------------------------------------------- /10_Linker/08_extern/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/10_link/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/11_link2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/12_link3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/13_link4/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /02_cdecl/04_calc_mix/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | int main(void) { 4 | int main_rdx(), main_dcl(); 5 | main_rdx(); // read expression 6 | main_dcl(); // read declaration 7 | return 0; 8 | } -------------------------------------------------------------------------------- /04_CIL/ubuntu/08_Memory/08_Memory.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | Memory.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/12_PushPop/12_PushPop.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | PushPop.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/13_SpProc/13_SpProc.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | SpProc.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /08_Runner1/17_register2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/01_HelloExit/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/05_operate/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/06_eflags/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/08_handy2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/09_show_fix/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/10_write_fix/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/12_procedure/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/13_memory/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/14_dataseg/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/00_example/puts.hda: -------------------------------------------------------------------------------- 1 | .code 2 | ;=========================== 3 | ; proc puts 4 | ;=========================== 5 | _puts: 6 | push ebp 7 | mov ebp, esp 8 | handy puts, [ebp+0x8] 9 | mov esp, ebp 10 | pop ebp 11 | ret -------------------------------------------------------------------------------- /10_Linker/01_refactor/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/02_lowlevelasm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/03_register/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/05_sstream/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/07_load_fix/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/09_write_segdata/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'hello, world!', 0 3 | 4 | .code 5 | ; proc main 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | handy puts, _sHelloWorld 10 | mov esp, ebp 11 | pop ebp 12 | exit -------------------------------------------------------------------------------- /11_Compiler/01_ready/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /11_Compiler/02_ready2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /11_Compiler/04_analysis/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /11_Compiler/05_analysis2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/01_ready/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/11_check/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /04_CIL/ubuntu/05_Condition/05_Condition.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | Condition.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/07_Procedure/07_Procedure.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | Procedure.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/10_LocVarSp/10_LocVarSp.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | LocVarSp.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/11_LocVarBp/11_LocVarBp.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | LocVarBp.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/14_SpArrange/14_SpArrange.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | SpArrange.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/16_ProcNaked/16_ProcNaked.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | ProcNaked.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /09_Runner2/02_execute_fix/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/04_HelloLabel_fix/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /09_Runner2/07_handy/print.hda: -------------------------------------------------------------------------------- 1 | .code 2 | _main: 3 | push ebp 4 | mov ebp, esp 5 | 6 | ; 정수 10을 출력합니다. 7 | print_number 10 8 | 9 | ; 문자 A(==65)를 출력합니다. 10 | print_letter 65 11 | 12 | _end: 13 | mov esp, ebp 14 | pop ebp 15 | exit -------------------------------------------------------------------------------- /10_Linker/01_refactor/MachineProcessor.js: -------------------------------------------------------------------------------- 1 | /** 2 | Low Level Assembly를 해석하고 실행하는 프로세서입니다. 3 | */ 4 | function initMachineProcessor(machine) { 5 | var proc = {}; 6 | 7 | 8 | 9 | 10 | machine.Processor = proc; 11 | } -------------------------------------------------------------------------------- /10_Linker/09_write_segdata/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /11_Compiler/03_get_ctoken/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/03_decl_spcf/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/06_toString/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/08_expression/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/10_unary_expr/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/16_statement/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/21_jump_stmt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/23_compile/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /00_src_deprecated/16_statement/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /00_src_deprecated/17_expr_stmt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /00_src_deprecated/18_compound_stmt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /04_CIL/ubuntu/01_HelloWorld/01_HelloWorld.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | HelloWorld.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/02_PrintValue/02_PrintValue.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | PrintValue.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/15_SpSolution/15_SpSolution.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | SpSolution.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /09_Runner2/03_HelloLabel_failed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /10_Linker/01_refactor/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | window.Program = program; 9 | } -------------------------------------------------------------------------------- /10_Linker/03_register/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | window.Program = program; 9 | } -------------------------------------------------------------------------------- /10_Linker/04_runner/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | window.Program = program; 9 | } -------------------------------------------------------------------------------- /13_Compiler_fix/04_init_decl_list/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/05_param_type_list/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/07_ext_dcl_fix/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/09_assign_expr/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/12_primary_expr/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/14_binary_expr/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/15_binary_expr2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/17_expression_stmt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/18_compound_stmt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/19_selection_stmt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/20_iteration_stmt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/22_labeled_stmt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/24_program_update/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /04_CIL/macosx/HandyCIL.xcworkspace/xcuserdata/HandyMac.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HDNua/JSCC_Lecture/HEAD/04_CIL/macosx/HandyCIL.xcworkspace/xcuserdata/HandyMac.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /04_CIL/ubuntu/03_Calculation/03_Calculation.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | Calculation.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/06_string_add/string_add.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /09_Runner2/11_handy/print_line2.hda: -------------------------------------------------------------------------------- 1 | .code 2 | _main: 3 | push ebp 4 | mov ebp, esp 5 | 6 | handy print_number, 10 7 | handy print_letter, 65 8 | handy print_string, "Hello, world!\n" 9 | 10 | _end: 11 | mov esp, ebp 12 | pop ebp 13 | exit -------------------------------------------------------------------------------- /10_Linker/02_lowlevelasm/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | window.Program = program; 9 | } -------------------------------------------------------------------------------- /13_Compiler_fix/02_external_declaration/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/13_conditional_expr/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /13_Compiler_fix/25_compile_complete/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nw_demo", 3 | "version": "0.0.1", 4 | "main": "main.html", 5 | "window": { 6 | "width": 1280, 7 | "height": 768, 8 | "position": "center" 9 | } 10 | } -------------------------------------------------------------------------------- /04_CIL/ubuntu/09_LocalVariable/09_LocalVariable.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | CONFIG += console 3 | CONFIG -= app_bundle 4 | CONFIG -= qt 5 | 6 | SOURCES += \ 7 | LocalVariable.c \ 8 | CIL.c 9 | 10 | HEADERS += \ 11 | CIL.h 12 | 13 | -------------------------------------------------------------------------------- /04_CIL/macosx/15_SpSolution/SpSolution.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | PROC(main) 4 | 5 | PUSH(10) 6 | INVOKE(print_int) 7 | ADD(sp, 4) // 넘긴 인자의 크기만큼 스택 포인터에 더한다 8 | 9 | PUSH(20) 10 | INVOKE(print_int) 11 | ADD(sp, 4) // 넘긴 인자의 크기만큼 스택 포인터에 더한다 12 | 13 | ENDP -------------------------------------------------------------------------------- /04_CIL/win32/15_SpSolution/SpSolution.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | PROC(main) 4 | 5 | PUSH(10) 6 | INVOKE(print_int) 7 | ADD(sp, 4) // 넘긴 인자의 크기만큼 스택 포인터에 더한다 8 | 9 | PUSH(20) 10 | INVOKE(print_int) 11 | ADD(sp, 4) // 넘긴 인자의 크기만큼 스택 포인터에 더한다 12 | 13 | ENDP -------------------------------------------------------------------------------- /04_CIL/ubuntu/15_SpSolution/SpSolution.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | PROC(main) 4 | 5 | PUSH(10) 6 | INVOKE(print_int) 7 | ADD(sp, 4) // 넘긴 인자의 크기만큼 스택 포인터에 더한다 8 | 9 | PUSH(20) 10 | INVOKE(print_int) 11 | ADD(sp, 4) // 넘긴 인자의 크기만큼 스택 포인터에 더한다 12 | 13 | ENDP 14 | -------------------------------------------------------------------------------- /08_Runner1/01_ready/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/02_getcode/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/08_run_fix/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/09_memory/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/11_register/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/16_handy/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/17_register2/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/03_getcode_mne/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/04_getcode_op1/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/06_getcode_op2/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/07_analysis_try/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/10_memory_upgrade/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/12_memory_show/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /08_Runner1/05_getcode_op1_fix/HelloHASM.hda: -------------------------------------------------------------------------------- 1 | ; 데이터 세그먼트의 시작을 나타냅니다. 2 | ; nasm과 다르게 segment 지시어를 기록하지 않습니다. 3 | .data 4 | 5 | ; 코드 세그먼트의 시작을 나타냅니다. 6 | .code 7 | _main: 8 | push ebp 9 | mov ebp, esp 10 | 11 | ; put your code here 12 | 13 | mov esp, ebp 14 | pop ebp 15 | ret -------------------------------------------------------------------------------- /11_Compiler/01_ready/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /11_Compiler/02_ready2/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /11_Compiler/03_get_ctoken/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /11_Compiler/04_analysis/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /11_Compiler/05_analysis2/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/01_ready/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/11_check/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /00_src_deprecated/16_statement/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /00_src_deprecated/17_expr_stmt/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /04_CIL/macosx/07_Procedure/Procedure.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHello = "Hello, procedure!"; 3 | 4 | // main 5 | PROC(main) 6 | // hello 프로시저를 호출합니다. 7 | INVOKE(hello) 8 | ENDP 9 | 10 | // 프로시저 hello를 정의합니다. 11 | PROC(hello) 12 | 13 | PUSH(sHello); 14 | INVOKE(print_str) 15 | 16 | ENDP -------------------------------------------------------------------------------- /04_CIL/win32/07_Procedure/Procedure.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHello = "Hello, procedure!"; 3 | 4 | // main 5 | PROC(main) 6 | // hello 프로시저를 호출합니다. 7 | INVOKE(hello) 8 | ENDP 9 | 10 | // 프로시저 hello를 정의합니다. 11 | PROC(hello) 12 | 13 | PUSH(sHello); 14 | INVOKE(print_str) 15 | 16 | ENDP -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/02_var2/var2.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/15_array_len/array_len.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /13_Compiler_fix/03_decl_spcf/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/06_toString/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/07_ext_dcl_fix/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/08_expression/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/09_assign_expr/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/10_unary_expr/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/14_binary_expr/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/16_statement/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/21_jump_stmt/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/23_compile/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /00_src_deprecated/18_compound_stmt/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /04_CIL/ubuntu/07_Procedure/Procedure.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHello = "Hello, procedure!"; 3 | 4 | // main 5 | PROC(main) 6 | // hello 프로시저를 호출합니다. 7 | INVOKE(hello) 8 | ENDP 9 | 10 | // 프로시저 hello를 정의합니다. 11 | PROC(hello) 12 | 13 | PUSH(sHello); 14 | INVOKE(print_str) 15 | 16 | ENDP 17 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/10_string_noparse/string_noparse.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /13_Compiler_fix/04_init_decl_list/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/05_param_type_list/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/12_primary_expr/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/13_conditional_expr/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/15_binary_expr2/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/17_expression_stmt/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/18_compound_stmt/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/19_selection_stmt/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/20_iteration_stmt/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/22_labeled_stmt/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /13_Compiler_fix/02_external_declaration/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov [ebp-8],10 9 | mov [ebp-12],20 10 | mov eax,[ebp-8] 11 | add eax,[ebp-12] 12 | mov [ebp-4],eax 13 | mov esp,ebp 14 | pop ebp 15 | ret 16 | 17 | call 0x0004 18 | exit -------------------------------------------------------------------------------- /10_Linker/01_refactor/ProgramRunner.js: -------------------------------------------------------------------------------- 1 | /** 2 | Machine에 프로그램 실행을 요청합니다. 3 | */ 4 | function initProgramRunner(program) { 5 | var runner = {}; 6 | 7 | function load(filename) { } 8 | function run() { } 9 | 10 | runner.load = load; 11 | runner.run = run; 12 | program.Runner = runner; 13 | } -------------------------------------------------------------------------------- /04_CIL/win32/CIL.userprefs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/16_array_forin/array_forin.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/17_function/function.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | 15 | -------------------------------------------------------------------------------- /10_Linker/04_runner/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/06_load/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/08_extern/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/10_link/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/11_link2/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/12_link3/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/13_link4/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/24_function_noretval/function_noretval.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | -------------------------------------------------------------------------------- /10_Linker/01_refactor/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/02_lowlevelasm/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/03_register/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/05_sstream/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/07_load_fix/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /11_Compiler/01_ready/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /11_Compiler/02_ready2/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /11_Compiler/02_ready2/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /11_Compiler/04_analysis/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /11_Compiler/05_analysis2/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/01_ready/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/11_check/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/00_example/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'Hello, world!', 0 3 | 4 | .code 5 | ;=========================== 6 | ; proc main 7 | ;=========================== 8 | _main: 9 | push ebp 10 | mov ebp, esp 11 | 12 | push _sHelloWorld 13 | call _puts 14 | add esp, 4 15 | 16 | _end: 17 | mov esp, ebp 18 | pop ebp 19 | exit -------------------------------------------------------------------------------- /10_Linker/05_sstream/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | 10 | // 공용 필드 정의 11 | 12 | 13 | // 등록 14 | window.Program = program; 15 | } -------------------------------------------------------------------------------- /10_Linker/06_load/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | 10 | // 공용 필드 정의 11 | 12 | 13 | // 등록 14 | window.Program = program; 15 | } -------------------------------------------------------------------------------- /10_Linker/07_load_fix/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | 10 | // 공용 필드 정의 11 | 12 | 13 | // 등록 14 | window.Program = program; 15 | } -------------------------------------------------------------------------------- /10_Linker/08_extern/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | 10 | // 공용 필드 정의 11 | 12 | 13 | // 등록 14 | window.Program = program; 15 | } -------------------------------------------------------------------------------- /10_Linker/09_write_segdata/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/10_link/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | 10 | // 공용 필드 정의 11 | 12 | 13 | // 등록 14 | window.Program = program; 15 | } -------------------------------------------------------------------------------- /10_Linker/11_link2/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | 10 | // 공용 필드 정의 11 | 12 | 13 | // 등록 14 | window.Program = program; 15 | } -------------------------------------------------------------------------------- /10_Linker/12_link3/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | 10 | // 공용 필드 정의 11 | 12 | 13 | // 등록 14 | window.Program = program; 15 | } -------------------------------------------------------------------------------- /10_Linker/13_link4/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | 10 | // 공용 필드 정의 11 | 12 | 13 | // 등록 14 | window.Program = program; 15 | } -------------------------------------------------------------------------------- /11_Compiler/01_ready/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | 10 | // 공용 필드 정의 11 | 12 | 13 | // 등록 14 | window.Program = program; 15 | } -------------------------------------------------------------------------------- /11_Compiler/03_get_ctoken/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /11_Compiler/03_get_ctoken/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /11_Compiler/04_analysis/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /11_Compiler/05_analysis2/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/01_ready/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/03_decl_spcf/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/06_toString/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/06_toString/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/08_expression/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/10_unary_expr/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/11_check/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/16_statement/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/21_jump_stmt/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/23_compile/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/23_compile/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /00_src_deprecated/16_statement/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /00_src_deprecated/16_statement/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /00_src_deprecated/17_expr_stmt/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /00_src_deprecated/17_expr_stmt/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /00_src_deprecated/18_compound_stmt/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /10_Linker/09_write_segdata/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | 10 | // 공용 필드 정의 11 | 12 | 13 | // 등록 14 | window.Program = program; 15 | } -------------------------------------------------------------------------------- /13_Compiler_fix/03_decl_spcf/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/04_init_decl_list/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/05_param_type_list/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/07_ext_dcl_fix/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/07_ext_dcl_fix/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/08_expression/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/09_assign_expr/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/09_assign_expr/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/10_unary_expr/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/12_primary_expr/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/12_primary_expr/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/14_binary_expr/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/14_binary_expr/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/15_binary_expr2/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/15_binary_expr2/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/16_statement/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/17_expression_stmt/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/18_compound_stmt/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/18_compound_stmt/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/19_selection_stmt/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/20_iteration_stmt/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/21_jump_stmt/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/22_labeled_stmt/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/22_labeled_stmt/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/24_program_update/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /00_src_deprecated/18_compound_stmt/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /10_Linker/02_lowlevelasm/ProgramRunner.js: -------------------------------------------------------------------------------- 1 | /** 2 | Machine에 프로그램 실행을 요청합니다. 3 | */ 4 | function initProgramRunner(program) { 5 | var runner = {}; 6 | 7 | function load(filename) { 8 | 9 | } 10 | function run() { 11 | 12 | } 13 | 14 | runner.load = load; 15 | runner.run = run; 16 | program.Runner = runner; 17 | } -------------------------------------------------------------------------------- /10_Linker/03_register/ProgramRunner.js: -------------------------------------------------------------------------------- 1 | /** 2 | Machine에 프로그램 실행을 요청합니다. 3 | */ 4 | function initProgramRunner(program) { 5 | var runner = {}; 6 | 7 | function load(filename) { 8 | 9 | } 10 | function run() { 11 | 12 | } 13 | 14 | runner.load = load; 15 | runner.run = run; 16 | program.Runner = runner; 17 | } -------------------------------------------------------------------------------- /13_Compiler_fix/02_external_declaration/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/04_init_decl_list/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/05_param_type_list/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/13_conditional_expr/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /13_Compiler_fix/13_conditional_expr/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/17_expression_stmt/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/19_selection_stmt/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/20_iteration_stmt/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /13_Compiler_fix/25_compile_complete/Machine.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC의 실행을 담당하는 가상 기계를 생성합니다. 3 | */ 4 | function initMachine() { 5 | var machine = {}; 6 | 7 | initMachineSystem(machine); 8 | initMachineMemory(machine); 9 | initMachineProcessor(machine); 10 | initMachineOperation(machine); 11 | 12 | window.Machine = machine; 13 | } -------------------------------------------------------------------------------- /04_CIL/macosx/01_HelloWorld/HelloWorld.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | STRING sHelloWorld = "Hello, world!"; // 프로그램에 사용할 문자열을 정의합니다. 4 | 5 | PROC(main) // main 프로시저의 시작 지점입니다. PROC은 procedure의 줄임말입니다. 6 | 7 | PUSH(sHelloWorld) // 콘솔에 문자열을 출력하기 위해 인자를 저장합니다. 8 | INVOKE(print_str) // 콘솔에 문자열을 출력하는 프로시저를 호출합니다. 9 | 10 | ENDP // 프로시저의 정의가 종료되는 지점입니다. -------------------------------------------------------------------------------- /04_CIL/win32/01_HelloWorld/HelloWorld.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | STRING sHelloWorld = "Hello, world!"; // 프로그램에 사용할 문자열을 정의합니다. 4 | 5 | PROC(main) // main 프로시저의 시작 지점입니다. PROC은 procedure의 줄임말입니다. 6 | 7 | PUSH(sHelloWorld) // 콘솔에 문자열을 출력하기 위해 인자를 저장합니다. 8 | INVOKE(print_str) // 콘솔에 문자열을 출력하는 프로시저를 호출합니다. 9 | 10 | ENDP // 프로시저의 정의가 종료되는 지점입니다. -------------------------------------------------------------------------------- /13_Compiler_fix/02_external_declaration/Program.js: -------------------------------------------------------------------------------- 1 | /** 2 | JSCC 및 그 테스트 모듈을 관리하는 Program을 생성합니다. 3 | */ 4 | function initProgram() { 5 | var program = {}; 6 | initProgramStream(program); 7 | initProgramRunner(program); 8 | initProgramLinker(program); 9 | initProgramCompiler(program); 10 | // 등록 11 | window.Program = program; 12 | } -------------------------------------------------------------------------------- /04_CIL/ubuntu/01_HelloWorld/HelloWorld.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | STRING sHelloWorld = "Hello, world!"; // 프로그램에 사용할 문자열을 정의합니다. 4 | 5 | PROC(main) // main 프로시저의 시작 지점입니다. PROC은 procedure의 줄임말입니다. 6 | 7 | PUSH(sHelloWorld) // 콘솔에 문자열을 출력하기 위해 인자를 저장합니다. 8 | INVOKE(print_str) // 콘솔에 문자열을 출력하는 프로시저를 호출합니다. 9 | 10 | ENDP // 프로시저의 정의가 종료되는 지점입니다. 11 | -------------------------------------------------------------------------------- /05_NASM/01_HelloWorld/HelloWorld.asm: -------------------------------------------------------------------------------- 1 | %include 'handy/handy.inc' 2 | 3 | segment .data 4 | sHelloWorld db 'Hello, world!', 10, 0 5 | 6 | segment .text 7 | global _main 8 | 9 | _main: 10 | push ebp 11 | mov ebp, esp 12 | 13 | push sHelloWorld 14 | call print_string 15 | add esp, 4 16 | 17 | mov eax, 0 18 | mov esp, ebp 19 | pop ebp 20 | ret -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | JSCC: C Compiler based on JavaScript
2 | HandyPost means post documents written by HDNua(DoYeong Han). 3 | 4 | You can download the tutorial pdf file from author's blog (English is not supported) 5 | 6 | http://hdnua.tistory.com/2 7 | 8 | http://blog.naver.com/rbfwmqwntm/220339208105 9 | 10 | English support is scheduled, of course. 11 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/05_string/string.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /10_Linker/04_runner/main.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHello db 'hello', 0 3 | _sWorld db 'world', 0 4 | 5 | .code 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | 10 | _cond1_if: 11 | cmp 1, 1 12 | jnz _cond1_else 13 | 14 | handy puts, _sHello 15 | jmp _cond1_endif 16 | 17 | _cond1_else: 18 | handy puts, _sWorld 19 | 20 | _cond1_endif: 21 | mov esp, ebp 22 | pop ebp 23 | exit -------------------------------------------------------------------------------- /02_cdecl/06_rdx_v2/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "common.h" 4 | #include "StringBuffer.h" 5 | #include "Table.h" 6 | 7 | int main(void) { 8 | try { 9 | int main_rdx(); 10 | main_rdx(); 11 | return 0; 12 | } 13 | catch (Exception &ex) { 14 | std::cerr << ex.c_str() << std::endl; 15 | return 1; 16 | } 17 | } -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "common.h" 4 | #include "StringBuffer.h" 5 | #include "Table.h" 6 | 7 | int main(void) { 8 | try { 9 | int main_dcl(); 10 | main_dcl(); 11 | return 0; 12 | } 13 | catch (Exception &ex) { 14 | std::cerr << ex.c_str() << std::endl; 15 | return 1; 16 | } 17 | } -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/11_string_parse/string_parse.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/27_textarea_getElemById/textarea_getElemById.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/08_prompt/prompt.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/22_function3/function3.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/23_function_anonymous/function_anonymous.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | -------------------------------------------------------------------------------- /08_Runner1/11_register/Register.js: -------------------------------------------------------------------------------- 1 | /** 2 | 레지스터 관리 모듈 Register를 초기화합니다. 3 | */ 4 | function initRegister() { 5 | var register = {}; // 싱글톤 객체 생성 6 | 7 | // 필드를 정의합니다. 8 | register.eax = 0; 9 | register.ebx = 0; 10 | register.ecx = 0; 11 | register.edx = 0; 12 | register.ebp = Memory.MaxSize(); 13 | register.esp = Memory.MaxSize(); 14 | 15 | // 전역에 등록 16 | window.Register = register; 17 | } -------------------------------------------------------------------------------- /08_Runner1/16_handy/Register.js: -------------------------------------------------------------------------------- 1 | /** 2 | 레지스터 관리 모듈 Register를 초기화합니다. 3 | */ 4 | function initRegister() { 5 | var register = {}; // 싱글톤 객체 생성 6 | 7 | // 필드를 정의합니다. 8 | register.eax = 0; 9 | register.ebx = 0; 10 | register.ecx = 0; 11 | register.edx = 0; 12 | register.ebp = Memory.MaxSize(); 13 | register.esp = Memory.MaxSize(); 14 | 15 | // 전역에 등록 16 | window.Register = register; 17 | } -------------------------------------------------------------------------------- /08_Runner1/17_register2/Register.js: -------------------------------------------------------------------------------- 1 | /** 2 | 레지스터 관리 모듈 Register를 초기화합니다. 3 | */ 4 | function initRegister() { 5 | var register = {}; // 싱글톤 객체 생성 6 | 7 | // 필드를 정의합니다. 8 | register.eax = 0; 9 | register.ebx = 0; 10 | register.ecx = 0; 11 | register.edx = 0; 12 | register.ebp = Memory.MaxSize(); 13 | register.esp = Memory.MaxSize(); 14 | 15 | // 전역에 등록 16 | window.Register = register; 17 | } -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/04_datatype/datatype.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | -------------------------------------------------------------------------------- /08_Runner1/12_memory_show/Register.js: -------------------------------------------------------------------------------- 1 | /** 2 | 레지스터 관리 모듈 Register를 초기화합니다. 3 | */ 4 | function initRegister() { 5 | var register = {}; // 싱글톤 객체 생성 6 | 7 | // 필드를 정의합니다. 8 | register.eax = 0; 9 | register.ebx = 0; 10 | register.ecx = 0; 11 | register.edx = 0; 12 | register.ebp = Memory.MaxSize(); 13 | register.esp = Memory.MaxSize(); 14 | 15 | // 전역에 등록 16 | window.Register = register; 17 | } -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/28_textarea_style/textarea_style.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | -------------------------------------------------------------------------------- /04_CIL/macosx/04_Jump/Jump.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHello = "HelloWorld\n"; 3 | STRING sNice = "NiceToMeetYou\n"; 4 | STRING sBye = "GoodBye\n"; 5 | 6 | PROC(main) // main 프로시저의 정의가 시작되는 지점입니다. 7 | 8 | PUSH(sHello) 9 | INVOKE(print_str) 10 | 11 | JMP(label) // label 레이블로 점프합니다. 12 | 13 | PUSH(sNice) 14 | INVOKE(print_str) 15 | 16 | label: // label 레이블의 정의입니다. 17 | 18 | PUSH(sBye) 19 | INVOKE(print_str) 20 | 21 | ENDP // 프로시저의 정의를 마칩니다. -------------------------------------------------------------------------------- /04_CIL/win32/04_Jump/Jump.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHello = "HelloWorld\n"; 3 | STRING sNice = "NiceToMeetYou\n"; 4 | STRING sBye = "GoodBye\n"; 5 | 6 | PROC(main) // main 프로시저의 정의가 시작되는 지점입니다. 7 | 8 | PUSH(sHello) 9 | INVOKE(print_str) 10 | 11 | JMP(label) // label 레이블로 점프합니다. 12 | 13 | PUSH(sNice) 14 | INVOKE(print_str) 15 | 16 | label: // label 레이블의 정의입니다. 17 | 18 | PUSH(sBye) 19 | INVOKE(print_str) 20 | 21 | ENDP // 프로시저의 정의를 마칩니다. -------------------------------------------------------------------------------- /09_Runner2/01_HelloExit/Register.js: -------------------------------------------------------------------------------- 1 | /** 2 | 레지스터 관리 모듈 Register를 초기화합니다. 3 | */ 4 | function initRegister() { 5 | var register = {}; // 싱글톤 객체 생성 6 | 7 | // 필드를 정의합니다. 8 | register.eax = 0; 9 | register.ebx = 0; 10 | register.ecx = 0; 11 | register.edx = 0; 12 | register.ebp = Memory.MaxSize(); 13 | register.esp = Memory.MaxSize(); 14 | 15 | register.eip = 4; 16 | 17 | // 전역에 등록 18 | window.Register = register; 19 | } -------------------------------------------------------------------------------- /04_CIL/ubuntu/04_Jump/Jump.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHello = "HelloWorld\n"; 3 | STRING sNice = "NiceToMeetYou\n"; 4 | STRING sBye = "GoodBye\n"; 5 | 6 | PROC(main) // main 프로시저의 정의가 시작되는 지점입니다. 7 | 8 | PUSH(sHello) 9 | INVOKE(print_str) 10 | 11 | JMP(label) // label 레이블로 점프합니다. 12 | 13 | PUSH(sNice) 14 | INVOKE(print_str) 15 | 16 | label: // label 레이블의 정의입니다. 17 | 18 | PUSH(sBye) 19 | INVOKE(print_str) 20 | 21 | ENDP // 프로시저의 정의를 마칩니다. 22 | -------------------------------------------------------------------------------- /09_Runner2/06_eflags/condition.hda: -------------------------------------------------------------------------------- 1 | .code 2 | _main: 3 | push ebp 4 | mov ebp, esp 5 | 6 | ; eax = 5 7 | mov eax, 5 8 | 9 | ; eax와 5를 비교하여 결과를 eflags에 저장합니다. 10 | cmp eax, 5 11 | 12 | ; eflags의 z 플래그가 0이 아니면 _else로 점프합니다. 13 | jnz _else 14 | 15 | ; ebx = 1 16 | mov ebx, 1 17 | 18 | ; 조건문의 끝으로 이동합니다. 19 | jmp _endif 20 | 21 | _else: 22 | ; ebx = 2 23 | mov ebx, 2 24 | 25 | ; 조건문의 끝입니다. 26 | _endif: 27 | _end: 28 | mov esp, ebp 29 | pop ebp 30 | exit -------------------------------------------------------------------------------- /00_src_deprecated/16_statement/ProgramCompilerStatement.js: -------------------------------------------------------------------------------- 1 | /** 2 | C의 문장을 분석합니다. 3 | */ 4 | function initProgramCompilerStatement(compiler, CompilerExpression) { 5 | var _Statement = {}; 6 | 7 | /** 8 | 문장을 분석합니다. 9 | @param {StringBuffer} buffer 10 | */ 11 | function statement(buffer) { 12 | /* ... */ 13 | } 14 | 15 | /* ... */ 16 | 17 | // 등록 18 | _Statement.statement = statement; 19 | compiler.Statement = _Statement; 20 | } -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/03_var3/var3.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 15 | 16 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/18_function2/function2.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 17 | 18 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/21_function_delegate/function_delegate.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | 15 | -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/01_var/var.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | -------------------------------------------------------------------------------- /05_NASM/03_mov/mov.asm: -------------------------------------------------------------------------------- 1 | %include 'handy/handy.inc' 2 | 3 | segment .text 4 | global _main 5 | 6 | _main: 7 | push ebp 8 | mov ebp, esp 9 | 10 | mov esi, 10 ; mov r32, imm (3) 11 | call print_int ; 정수 출력; esi = 출력할 정수 12 | call print_newline ; 개행 문자를 콘솔에 출력합니다. 13 | 14 | mov eax, 20 ; mov r32, imm (3) 15 | mov esi, eax ; mov r32, r32 (1) 16 | call print_int ; esi의 값인 10을 출력합니다. 17 | call print_newline 18 | 19 | mov eax, 0 20 | mov esp, ebp 21 | pop ebp 22 | ret -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/19_function_param/function_param.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 15 | 16 | -------------------------------------------------------------------------------- /04_CIL/win32/13_SpProc/SpProc.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | // main 4 | PROC(main) 5 | 6 | // get_sum2(10, 20)을 호출합니다. 7 | PUSH(20) 8 | PUSH(10) 9 | INVOKE(get_sum2) 10 | 11 | // 반환된 값을 출력합니다. 12 | PUSH(a) 13 | INVOKE(print_int) 14 | 15 | ENDP 16 | 17 | // get_sum2 18 | PROC(get_sum2) 19 | 20 | // d에 두 번째 인자의 값을 대입합니다. 21 | GETL(d, m+bp+REG_SIZ*3) 22 | // a에 첫 번째 인자의 값을 대입합니다. 23 | GETL(a, m+bp+REG_SIZ*2) 24 | // a += d; 25 | ADD(a, d) 26 | // 함수 종료 시에는 a의 값이 항상 반환됩니다. 27 | // return a; 28 | RETURN() 29 | 30 | ENDP 31 | -------------------------------------------------------------------------------- /01_StackAndCalc/13_StringBufferMain/13_StringBufferMain.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "StringBuffer.h" 3 | typedef std::string Exception; 4 | int main(void) { 5 | try { 6 | StringBuffer buffer; 7 | buffer.init("Hello, world!"); 8 | while (buffer.is_empty() == false) { 9 | std::cout << buffer.getc() << std::endl; 10 | } 11 | return 0; 12 | } 13 | catch (Exception &ex) { 14 | std::cerr << ex.c_str() << std::endl; 15 | return 1; 16 | } 17 | } -------------------------------------------------------------------------------- /04_CIL/macosx/13_SpProc/SpProc.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | // main 4 | PROC(main) 5 | 6 | // get_sum2(10, 20)을 호출합니다. 7 | PUSH(20) 8 | PUSH(10) 9 | INVOKE(get_sum2) 10 | 11 | // 반환된 값을 출력합니다. 12 | PUSH(a) 13 | INVOKE(print_int) 14 | 15 | ENDP 16 | 17 | // get_sum2 18 | PROC(get_sum2) 19 | 20 | // d에 두 번째 인자의 값을 대입합니다. 21 | GETL(d, m+bp+REG_SIZ*3) 22 | // a에 첫 번째 인자의 값을 대입합니다. 23 | GETL(a, m+bp+REG_SIZ*2) 24 | // a += d; 25 | ADD(a, d) 26 | // 함수 종료 시에는 a의 값이 항상 반환됩니다. 27 | // return a; 28 | RETURN() 29 | 30 | ENDP 31 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/13_SpProc/SpProc.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | // main 4 | PROC(main) 5 | 6 | // get_sum2(10, 20)을 호출합니다. 7 | PUSH(20) 8 | PUSH(10) 9 | INVOKE(get_sum2) 10 | 11 | // 반환된 값을 출력합니다. 12 | PUSH(a) 13 | INVOKE(print_int) 14 | 15 | ENDP 16 | 17 | // get_sum2 18 | PROC(get_sum2) 19 | 20 | // d에 두 번째 인자의 값을 대입합니다. 21 | GETL(d, m+bp+REG_SIZ*3) 22 | // a에 첫 번째 인자의 값을 대입합니다. 23 | GETL(a, m+bp+REG_SIZ*2) 24 | // a += d; 25 | ADD(a, d) 26 | // 함수 종료 시에는 a의 값이 항상 반환됩니다. 27 | // return a; 28 | RETURN() 29 | 30 | ENDP 31 | -------------------------------------------------------------------------------- /09_Runner2/14_dataseg/puts.hda: -------------------------------------------------------------------------------- 1 | .data 2 | _sHelloWorld db 'Hello, world!', 0 3 | 4 | .code 5 | ;=========================== 6 | ; proc main 7 | ;=========================== 8 | _main: 9 | push ebp 10 | mov ebp, esp 11 | 12 | push _sHelloWorld 13 | call _puts 14 | add esp, 4 15 | 16 | _end: 17 | mov esp, ebp 18 | pop ebp 19 | exit 20 | 21 | ;=========================== 22 | ; proc puts 23 | ;=========================== 24 | _puts: 25 | push ebp 26 | mov ebp, esp 27 | handy puts, [ebp+0x8] 28 | mov esp, ebp 29 | pop ebp 30 | ret -------------------------------------------------------------------------------- /11_Compiler/01_ready/main.hdo: -------------------------------------------------------------------------------- 1 | .code 2 | global _main 3 | _main: 4 | ; 프로시저 시작 시에 스택을 확보합니다. 5 | push ebp 6 | mov ebp, esp 7 | 8 | ; 4바이트 메모리를 확보합니다. 9 | sub esp, 4 10 | 11 | ; 8바이트 메모리를 확보합니다. 12 | sub esp, 8 13 | 14 | ; [ebp-8] 메모리에 10을 대입합니다. 15 | mov [ebp-8], 10 16 | ; [ebp-12] 메모리에 20을 대입합니다. 17 | mov [ebp-12], 20 18 | 19 | ; 덧셈 연산을 수행합니다. 20 | mov eax, [ebp-8] 21 | add eax, [ebp-12] 22 | mov [ebp-4], eax 23 | 24 | ; 프로시저 종료 시의 루틴입니다. 25 | mov esp, ebp 26 | pop ebp 27 | ret 28 | 29 | ; 프로그램의 시작 지점은 _main입니다. 30 | end _main -------------------------------------------------------------------------------- /11_Compiler/02_ready2/main.hdo: -------------------------------------------------------------------------------- 1 | .code 2 | global _main 3 | _main: 4 | ; 프로시저 시작 시에 스택을 확보합니다. 5 | push ebp 6 | mov ebp, esp 7 | 8 | ; 4바이트 메모리를 확보합니다. 9 | sub esp, 4 10 | 11 | ; 8바이트 메모리를 확보합니다. 12 | sub esp, 8 13 | 14 | ; [ebp-8] 메모리에 10을 대입합니다. 15 | mov [ebp-8], 10 16 | ; [ebp-12] 메모리에 20을 대입합니다. 17 | mov [ebp-12], 20 18 | 19 | ; 덧셈 연산을 수행합니다. 20 | mov eax, [ebp-8] 21 | add eax, [ebp-12] 22 | mov [ebp-4], eax 23 | 24 | ; 프로시저 종료 시의 루틴입니다. 25 | mov esp, ebp 26 | pop ebp 27 | ret 28 | 29 | ; 프로그램의 시작 지점은 _main입니다. 30 | end _main -------------------------------------------------------------------------------- /04_CIL/macosx/08_Memory/Memory.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sNewLine = "\n"; 3 | 4 | // main 5 | PROC(main) 6 | 7 | // 기본 변수 a를 8로 초기화합니다. 8 | MOVL(a, 8) // a = 8 9 | 10 | // 정수를 출력하고 개행합니다. 11 | PUSH(a) 12 | INVOKE(print_int) 13 | PUSH(sNewLine) 14 | INVOKE(print_str) 15 | 16 | // 메모리 10번지에 값을 설정합니다. 17 | // *(int *)(m[10]) = 20; 18 | SETL(m + 10, 20); 19 | 20 | // 메모리 10번지에서 값을 획득하여 a에 저장합니다. 21 | // a = *(int *)(m[10]); 22 | GETL(a, m + 10); 23 | 24 | // 획득한 값을 출력하여 올바른지 확인합니다. 25 | PUSH(a) 26 | INVOKE(print_int) 27 | 28 | ENDP -------------------------------------------------------------------------------- /04_CIL/win32/08_Memory/Memory.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sNewLine = "\n"; 3 | 4 | // main 5 | PROC(main) 6 | 7 | // 기본 변수 a를 8로 초기화합니다. 8 | MOVL(a, 8) // a = 8 9 | 10 | // 정수를 출력하고 개행합니다. 11 | PUSH(a) 12 | INVOKE(print_int) 13 | PUSH(sNewLine) 14 | INVOKE(print_str) 15 | 16 | // 메모리 10번지에 값을 설정합니다. 17 | // *(int *)(m[10]) = 20; 18 | SETL(m + 10, 20); 19 | 20 | // 메모리 10번지에서 값을 획득하여 a에 저장합니다. 21 | // a = *(int *)(m[10]); 22 | GETL(a, m + 10); 23 | 24 | // 획득한 값을 출력하여 올바른지 확인합니다. 25 | PUSH(a) 26 | INVOKE(print_int) 27 | 28 | ENDP -------------------------------------------------------------------------------- /09_Runner2/12_procedure/procedure.hda: -------------------------------------------------------------------------------- 1 | .code 2 | ;=========================== 3 | ; proc main 4 | ;=========================== 5 | _main: 6 | push ebp 7 | mov ebp, esp 8 | 9 | mov ebx, 10 10 | mov ecx, 20 11 | call _sum 12 | handy print_number, eax 13 | 14 | _end: 15 | mov esp, ebp 16 | pop ebp 17 | exit 18 | 19 | ;=========================== 20 | ; proc sum 21 | ; receives: ebx 22 | ; ecx 23 | ; returns: eax = ebx + ecx 24 | ;=========================== 25 | _sum: 26 | mov edx, ebx 27 | mov eax, ecx 28 | add eax, edx 29 | ret -------------------------------------------------------------------------------- /11_Compiler/03_get_ctoken/main.hdo: -------------------------------------------------------------------------------- 1 | .code 2 | global _main 3 | _main: 4 | ; 프로시저 시작 시에 스택을 확보합니다. 5 | push ebp 6 | mov ebp, esp 7 | 8 | ; 4바이트 메모리를 확보합니다. 9 | sub esp, 4 10 | 11 | ; 8바이트 메모리를 확보합니다. 12 | sub esp, 8 13 | 14 | ; [ebp-8] 메모리에 10을 대입합니다. 15 | mov [ebp-8], 10 16 | ; [ebp-12] 메모리에 20을 대입합니다. 17 | mov [ebp-12], 20 18 | 19 | ; 덧셈 연산을 수행합니다. 20 | mov eax, [ebp-8] 21 | add eax, [ebp-12] 22 | mov [ebp-4], eax 23 | 24 | ; 프로시저 종료 시의 루틴입니다. 25 | mov esp, ebp 26 | pop ebp 27 | ret 28 | 29 | ; 프로그램의 시작 지점은 _main입니다. 30 | end _main -------------------------------------------------------------------------------- /04_CIL/ubuntu/08_Memory/Memory.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sNewLine = "\n"; 3 | 4 | // main 5 | PROC(main) 6 | 7 | // 기본 변수 a를 8로 초기화합니다. 8 | MOVL(a, 8) // a = 8 9 | 10 | // 정수를 출력하고 개행합니다. 11 | PUSH(a) 12 | INVOKE(print_int) 13 | PUSH(sNewLine) 14 | INVOKE(print_str) 15 | 16 | // 메모리 10번지에 값을 설정합니다. 17 | // *(int *)(m[10]) = 20; 18 | SETL(m + 10, 20); 19 | 20 | // 메모리 10번지에서 값을 획득하여 a에 저장합니다. 21 | // a = *(int *)(m[10]); 22 | GETL(a, m + 10); 23 | 24 | // 획득한 값을 출력하여 올바른지 확인합니다. 25 | PUSH(a) 26 | INVOKE(print_int) 27 | 28 | ENDP 29 | -------------------------------------------------------------------------------- /04_CIL/macosx/16_ProcNaked/ProcNaked.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHelloWorld = "Hello, world!\n"; 3 | 4 | PROC(main) 5 | 6 | // naked_proc 프로시저를 호출합니다. 7 | CALL(naked_proc) 8 | 9 | ENDP 10 | 11 | // NAKED 프로시저를 정의합니다. 12 | PROC_NAKED(naked_proc) 13 | PUSH(bp) // 이전 스택 시작 주소를 푸시하여 보관합니다. 14 | MOVL(bp, sp) // 스택 시작 주소를 현재 스택 포인터로 맞춥니다. 15 | 16 | PUSH(sHelloWorld) 17 | INVOKE(print_str) 18 | ADD(sp, 4) 19 | 20 | MOVL(sp, bp) // 현재 스택 포인터를 스택 시작 주소로 맞춥니다. 21 | POP(bp) // 보관했던 이전 스택 시작 주소를 불러옵니다. 22 | RET() // 복귀 지점으로 돌아갑니다. 23 | ENDP_NAKED 24 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/16_ProcNaked/ProcNaked.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHelloWorld = "Hello, world!\n"; 3 | 4 | PROC(main) 5 | 6 | // naked_proc 프로시저를 호출합니다. 7 | CALL(naked_proc) 8 | 9 | ENDP 10 | 11 | // NAKED 프로시저를 정의합니다. 12 | PROC_NAKED(naked_proc) 13 | PUSH(bp) // 이전 스택 시작 주소를 푸시하여 보관합니다. 14 | MOVL(bp, sp) // 스택 시작 주소를 현재 스택 포인터로 맞춥니다. 15 | 16 | PUSH(sHelloWorld) 17 | INVOKE(print_str) 18 | ADD(sp, 4) 19 | 20 | MOVL(sp, bp) // 현재 스택 포인터를 스택 시작 주소로 맞춥니다. 21 | POP(bp) // 보관했던 이전 스택 시작 주소를 불러옵니다. 22 | RET() // 복귀 지점으로 돌아갑니다. 23 | ENDP_NAKED 24 | -------------------------------------------------------------------------------- /04_CIL/win32/16_ProcNaked/ProcNaked.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHelloWorld = "Hello, world!\n"; 3 | 4 | PROC(main) 5 | 6 | // naked_proc 프로시저를 호출합니다. 7 | CALL(naked_proc) 8 | 9 | ENDP 10 | 11 | // NAKED 프로시저를 정의합니다. 12 | PROC_NAKED(naked_proc) 13 | PUSH(bp) // 이전 스택 시작 주소를 푸시하여 보관합니다. 14 | MOVL(bp, sp) // 스택 시작 주소를 현재 스택 포인터로 맞춥니다. 15 | 16 | PUSH(sHelloWorld) 17 | INVOKE(print_str) 18 | ADD(sp, 4) 19 | 20 | MOVL(sp, bp) // 현재 스택 포인터를 스택 시작 주소로 맞춥니다. 21 | POP(bp) // 보관했던 이전 스택 시작 주소를 불러옵니다. 22 | RET() // 복귀 지점으로 돌아갑니다. 23 | ENDP_NAKED 24 | -------------------------------------------------------------------------------- /10_Linker/05_sstream/ProgramLinker.js: -------------------------------------------------------------------------------- 1 | /** 2 | 실행 가능한 목적 파일을 생성합니다. 3 | */ 4 | function initProgramLinker(program) { 5 | var linker = {}; 6 | 7 | // 필드 정의 8 | 9 | 10 | // 메서드 정의 11 | /** 12 | 파일 시스템으로부터 목적 파일을 불러옵니다. 13 | @param {string} filename 14 | */ 15 | function load(filename) { 16 | 17 | } 18 | /** 19 | 불러온 목적 파일을 링크합니다. 20 | @param {string} output 21 | */ 22 | function link(filename) { 23 | 24 | 25 | } 26 | 27 | linker.load = load; 28 | linker.link = link; 29 | program.Linker = linker; 30 | } -------------------------------------------------------------------------------- /04_CIL/macosx/00_CIL/main.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHelloWorld = "Hello, world!\n"; 3 | 4 | #include 5 | 6 | PROC(main) 7 | 8 | // naked_proc 프로시저를 호출합니다. 9 | CALL(naked_proc) 10 | 11 | ENDP 12 | 13 | // NAKED 프로시저를 정의합니다. 14 | PROC_NAKED(naked_proc) 15 | PUSH(bp) // 이전 스택 시작 주소를 푸시하여 보관합니다. 16 | MOVL(bp, sp) // 스택 시작 주소를 현재 스택 포인터로 맞춥니다. 17 | 18 | PUSH(sHelloWorld) 19 | INVOKE(print_str) 20 | ADD(sp, 4) 21 | 22 | MOVL(sp, bp) // 현재 스택 포인터를 스택 시작 주소로 맞춥니다. 23 | POP(bp) // 보관했던 이전 스택 시작 주소를 불러옵니다. 24 | //RET() // 복귀 지점으로 돌아갑니다. 25 | ENDP_NAKED 26 | -------------------------------------------------------------------------------- /04_CIL/ubuntu/00_CIL/main.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHelloWorld = "Hello, world!\n"; 3 | 4 | #include 5 | 6 | PROC(main) 7 | 8 | // naked_proc 프로시저를 호출합니다. 9 | CALL(naked_proc) 10 | 11 | ENDP 12 | 13 | // NAKED 프로시저를 정의합니다. 14 | PROC_NAKED(naked_proc) 15 | PUSH(bp) // 이전 스택 시작 주소를 푸시하여 보관합니다. 16 | MOVL(bp, sp) // 스택 시작 주소를 현재 스택 포인터로 맞춥니다. 17 | 18 | PUSH(sHelloWorld) 19 | INVOKE(print_str) 20 | ADD(sp, 4) 21 | 22 | MOVL(sp, bp) // 현재 스택 포인터를 스택 시작 주소로 맞춥니다. 23 | POP(bp) // 보관했던 이전 스택 시작 주소를 불러옵니다. 24 | //RET() // 복귀 지점으로 돌아갑니다. 25 | ENDP_NAKED 26 | -------------------------------------------------------------------------------- /04_CIL/win32/00_CIL/main.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sHelloWorld = "Hello, world!\n"; 3 | 4 | #include 5 | 6 | PROC(main) 7 | 8 | // naked_proc 프로시저를 호출합니다. 9 | CALL(naked_proc) 10 | 11 | ENDP 12 | 13 | // NAKED 프로시저를 정의합니다. 14 | PROC_NAKED(naked_proc) 15 | PUSH(bp) // 이전 스택 시작 주소를 푸시하여 보관합니다. 16 | MOVL(bp, sp) // 스택 시작 주소를 현재 스택 포인터로 맞춥니다. 17 | 18 | PUSH(sHelloWorld) 19 | INVOKE(print_str) 20 | ADD(sp, 4) 21 | 22 | MOVL(sp, bp) // 현재 스택 포인터를 스택 시작 주소로 맞춥니다. 23 | POP(bp) // 보관했던 이전 스택 시작 주소를 불러옵니다. 24 | //RET() // 복귀 지점으로 돌아갑니다. 25 | ENDP_NAKED 26 | -------------------------------------------------------------------------------- /04_CIL/macosx/05_Condition/Condition.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | PROC(main) // main 프로시저의 정의가 시작되는 지점입니다. 3 | 4 | // a = 10, b = 20 5 | MOVL(a, 10) 6 | MOVL(b, 20) 7 | 8 | // a와 b를 서로 비교하고 결과를 flag에 저장합니다. 9 | CMP(a, b) 10 | 11 | // a와 b의 차이가 0이 아니라면 elseif 레이블로 점프합니다. 12 | JNZ(lbl_elseif) 13 | 14 | // elseif 레이블로 점프하지 않으면 a = 30을 수행한 후 15 | MOVL(a, 30) 16 | // endif 레이블로 점프합니다. 17 | JMP(lbl_endif) 18 | 19 | // elseif 레이블로 점프했다면 20 | lbl_elseif: 21 | // a = 40을 수행합니다. 22 | MOVL(a, 40); 23 | 24 | lbl_endif: 25 | PUSH(a) 26 | INVOKE(print_int) 27 | 28 | ENDP // 프로시저의 정의를 마칩니다. -------------------------------------------------------------------------------- /04_CIL/win32/05_Condition/Condition.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | PROC(main) // main 프로시저의 정의가 시작되는 지점입니다. 3 | 4 | // a = 10, b = 20 5 | MOVL(a, 10) 6 | MOVL(b, 20) 7 | 8 | // a와 b를 서로 비교하고 결과를 flag에 저장합니다. 9 | CMP(a, b) 10 | 11 | // a와 b의 차이가 0이 아니라면 elseif 레이블로 점프합니다. 12 | JNZ(lbl_elseif) 13 | 14 | // elseif 레이블로 점프하지 않으면 a = 30을 수행한 후 15 | MOVL(a, 30) 16 | // endif 레이블로 점프합니다. 17 | JMP(lbl_endif) 18 | 19 | // elseif 레이블로 점프했다면 20 | lbl_elseif: 21 | // a = 40을 수행합니다. 22 | MOVL(a, 40); 23 | 24 | lbl_endif: 25 | PUSH(a) 26 | INVOKE(print_int) 27 | 28 | ENDP // 프로시저의 정의를 마칩니다. -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/14_array/array.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 22 | -------------------------------------------------------------------------------- /lineCount.txt: -------------------------------------------------------------------------------- 1 | 72 common.js 2 | 282 handy.js 3 | 13 Machine.js 4 | 373 MachineMemory.js 5 | 284 MachineOperation.js 6 | 352 MachineProcessor.js 7 | 8 MachineSystem.js 8 | 98 main.html 9 | 10 package.json 10 | 41 Program.js 11 | 187 ProgramCompiler.js 12 | 599 ProgramCompilerDeclaration.js 13 | 742 ProgramCompilerExpression.js 14 | 555 ProgramCompilerStatement.js 15 | 203 ProgramCompilerTranslator.js 16 | 848 ProgramLinker.js 17 | 396 ProgramRunner.js 18 | 112 ProgramStream.js 19 | 235 StringBuffer.js 20 | -------------------------------------------------- 21 | 5410 Line Count -------------------------------------------------------------------------------- /04_CIL/ubuntu/05_Condition/Condition.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | PROC(main) // main 프로시저의 정의가 시작되는 지점입니다. 3 | 4 | // a = 10, b = 20 5 | MOVL(a, 10) 6 | MOVL(b, 20) 7 | 8 | // a와 b를 서로 비교하고 결과를 flag에 저장합니다. 9 | CMP(a, b) 10 | 11 | // a와 b의 차이가 0이 아니라면 elseif 레이블로 점프합니다. 12 | JNZ(lbl_elseif) 13 | 14 | // elseif 레이블로 점프하지 않으면 a = 30을 수행한 후 15 | MOVL(a, 30) 16 | // endif 레이블로 점프합니다. 17 | JMP(lbl_endif) 18 | 19 | // elseif 레이블로 점프했다면 20 | lbl_elseif: 21 | // a = 40을 수행합니다. 22 | MOVL(a, 40); 23 | 24 | lbl_endif: 25 | PUSH(a) 26 | INVOKE(print_int) 27 | 28 | ENDP // 프로시저의 정의를 마칩니다. 29 | -------------------------------------------------------------------------------- /13_Compiler_fix/16_statement/ProgramCompilerStatement.js: -------------------------------------------------------------------------------- 1 | /** 2 | C의 문장을 분석합니다. 3 | */ 4 | function initProgramCompilerStatement(compiler, CompilerException) { 5 | var _Statement = {}; 6 | 7 | /** 8 | 문장을 정의합니다. 9 | */ 10 | function StatementInfo(stmt) { 11 | this.statement = stmt; 12 | } 13 | 14 | /** 15 | 문장을 분석합니다. 16 | @param {StringBuffer} buffer 17 | @return {StatementInfo} 18 | */ 19 | function getStatementInfo(buffer) { 20 | /* ... */ 21 | } 22 | 23 | // 등록 24 | _Statement.getStatementInfo = getStatementInfo; 25 | compiler.Statement = _Statement; 26 | } -------------------------------------------------------------------------------- /13_Compiler_fix/25_compile_complete/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov eax,10 9 | push eax 10 | lea ebx,[ebp-8] 11 | mov eax,[ebx] 12 | pop eax 13 | mov [ebx],eax 14 | mov eax,20 15 | push eax 16 | lea ebx,[ebp-12] 17 | mov eax,[ebx] 18 | pop eax 19 | mov [ebx],eax 20 | lea ebx,[ebp-12] 21 | mov eax,[ebx] 22 | push eax 23 | lea ebx,[ebp-8] 24 | mov eax,[ebx] 25 | pop edx 26 | add eax,edx 27 | push eax 28 | lea ebx,[ebp-4] 29 | mov eax,[ebx] 30 | pop eax 31 | mov [ebx],eax 32 | mov esp,ebp 33 | pop ebp 34 | ret 35 | 36 | call 0x0004 37 | exit -------------------------------------------------------------------------------- /09_Runner2/13_memory/memory.hda: -------------------------------------------------------------------------------- 1 | .code 2 | ;=========================== 3 | ; proc main 4 | ;=========================== 5 | _main: 6 | push ebp 7 | mov ebp, esp 8 | 9 | push 10 10 | push 20 11 | call _sum 12 | add esp, 8 13 | handy print_number, eax 14 | 15 | _end: 16 | mov esp, ebp 17 | pop ebp 18 | exit 19 | 20 | ;=========================== 21 | ; proc sum 22 | ; receives: 2 Integers 23 | ; returns: eax which is 24 | ; sum of params 25 | ;=========================== 26 | _sum: 27 | push ebp 28 | mov ebp, esp 29 | mov edx, [ebp+0x8] 30 | mov eax, [ebp+0xc] 31 | add eax, edx 32 | mov esp, ebp 33 | pop ebp 34 | ret -------------------------------------------------------------------------------- /13_Compiler_fix/24_program_update/program.hdx: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | push ebp 5 | mov ebp,esp 6 | sub esp,4 7 | sub esp,8 8 | mov eax,10 9 | push eax 10 | lea ebx,[ebp-8] 11 | mov eax,[ebx] 12 | pop eax 13 | mov [ebx],eax 14 | mov eax,20 15 | push eax 16 | lea ebx,[ebp-12] 17 | mov eax,[ebx] 18 | pop eax 19 | mov [ebx],eax 20 | lea ebx,[ebp-12] 21 | mov eax,[ebx] 22 | push eax 23 | lea ebx,[ebp-8] 24 | mov eax,[ebx] 25 | pop edx 26 | add eax,edx 27 | mov [ebx],eax 28 | push eax 29 | lea ebx,[ebp-4] 30 | mov eax,[ebx] 31 | pop eax 32 | mov [ebx],eax 33 | mov esp,ebp 34 | pop ebp 35 | ret 36 | 37 | call 0x0004 38 | exit -------------------------------------------------------------------------------- /05_NASM/02_Instruction/Instruction.asm: -------------------------------------------------------------------------------- 1 | %include 'handy/handy.inc' 2 | 3 | segment .data 4 | sHelloWorld db 'Hello, world!', 10, 0 5 | 6 | segment .text 7 | global _main 8 | 9 | _main: 10 | push ebp 11 | mov ebp, esp 12 | 13 | push sHelloWorld ; 명령어와 주석을 조합할 수 있습니다. 14 | call print_string ; print_string 프로시저를 호출합니다. 15 | 16 | mov eax, 0 ; 빈 줄에도 주석을 달 수 있습니다. 17 | ; 프로세스가 0 이외의 값을 반환하면 18 | ; 정상적으로 종료되지 않은 것으로 19 | ; 간주하기 때문에, 반환 값을 언제나 20 | ; 0으로 맞춰주어야 합니다. 21 | 22 | end1: mov esp, ebp ; 구문의 모든 요소를 적용한 명령입니다. 23 | end2: pop ebp 24 | end3: ret ; 프로시저를 반환합니다. 25 | end4: ; _main의 경우 프로그램이 종료됩니다. -------------------------------------------------------------------------------- /13_Compiler_fix/25_compile_complete/main.hdo: -------------------------------------------------------------------------------- 1 | .data 2 | 3 | .code 4 | global _main 5 | _main: 6 | push ebp 7 | mov ebp, esp 8 | sub esp, 4 9 | sub esp, 8 10 | mov eax, 10 11 | push eax 12 | lea ebx, [ebp-8] 13 | mov eax, [ebx] 14 | pop eax 15 | mov [ebx], eax 16 | mov eax, 20 17 | push eax 18 | lea ebx, [ebp-12] 19 | mov eax, [ebx] 20 | pop eax 21 | mov [ebx], eax 22 | lea ebx, [ebp-12] 23 | mov eax, [ebx] 24 | push eax 25 | lea ebx, [ebp-8] 26 | mov eax, [ebx] 27 | pop edx 28 | add eax, edx 29 | push eax 30 | lea ebx, [ebp-4] 31 | mov eax, [ebx] 32 | pop eax 33 | mov [ebx], eax 34 | mov esp, ebp 35 | pop ebp 36 | ret 37 | 38 | end _main -------------------------------------------------------------------------------- /02_cdecl/04_calc_mix/Stack.h: -------------------------------------------------------------------------------- 1 | #ifndef __HANDY_STACK_H__ 2 | #define __HANDY_STACK_H__ 3 | 4 | #include 5 | template 6 | class Stack { 7 | std::stack stack; 8 | public: 9 | Stack() {} 10 | void push(const Data &data) { 11 | stack.push(data); 12 | } 13 | Data pop() { 14 | Data popValue = stack.top(); 15 | stack.pop(); 16 | return popValue; 17 | } 18 | Data top() const { 19 | return stack.top(); 20 | } 21 | inline bool is_empty() const { return stack.empty(); } 22 | inline int count() const { return stack.size(); } 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /02_cdecl/06_rdx_v2/Stack.h: -------------------------------------------------------------------------------- 1 | #ifndef __HANDY_STACK_H__ 2 | #define __HANDY_STACK_H__ 3 | 4 | #include 5 | template 6 | class Stack { 7 | std::stack stack; 8 | public: 9 | Stack() {} 10 | void push(const Data &data) { 11 | stack.push(data); 12 | } 13 | Data pop() { 14 | Data popValue = stack.top(); 15 | stack.pop(); 16 | return popValue; 17 | } 18 | Data top() const { 19 | return stack.top(); 20 | } 21 | inline bool is_empty() const { return stack.empty(); } 22 | inline int count() const { return stack.size(); } 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /02_cdecl/07_dcl_v2/Stack.h: -------------------------------------------------------------------------------- 1 | #ifndef __HANDY_STACK_H__ 2 | #define __HANDY_STACK_H__ 3 | 4 | #include 5 | template 6 | class Stack { 7 | std::stack stack; 8 | public: 9 | Stack() {} 10 | void push(const Data &data) { 11 | stack.push(data); 12 | } 13 | Data pop() { 14 | Data popValue = stack.top(); 15 | stack.pop(); 16 | return popValue; 17 | } 18 | Data top() const { 19 | return stack.top(); 20 | } 21 | inline bool is_empty() const { return stack.empty(); } 22 | inline int count() const { return stack.size(); } 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /02_cdecl/08_calc_mix2/Stack.h: -------------------------------------------------------------------------------- 1 | #ifndef __HANDY_STACK_H__ 2 | #define __HANDY_STACK_H__ 3 | 4 | #include 5 | template 6 | class Stack { 7 | std::stack stack; 8 | public: 9 | Stack() {} 10 | void push(const Data &data) { 11 | stack.push(data); 12 | } 13 | Data pop() { 14 | Data popValue = stack.top(); 15 | stack.pop(); 16 | return popValue; 17 | } 18 | Data top() const { 19 | return stack.top(); 20 | } 21 | inline bool is_empty() const { return stack.empty(); } 22 | inline int count() const { return stack.size(); } 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /06_WebProgramming/02_Basic/29_textarea_log/textarea_log.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 21 | -------------------------------------------------------------------------------- /04_CIL/macosx/02_PrintValue/PrintValue.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | STRING sNewLine = "\n"; // 개행 문자를 삽입하기 위한 개행 문자열입니다. 4 | STRING sResult = "RESULT: "; 5 | 6 | PROC(main) // main 프로시저의 정의가 시작되는 지점입니다. 7 | 8 | // 정수 0을 출력합니다. 9 | PUSH(0) 10 | INVOKE(print_int) 11 | 12 | // 출력 화면에 개행 문자를 삽입합니다. 13 | PUSH(sNewLine) 14 | INVOKE(print_str) 15 | 16 | // 문자열 "RESULT: "를 출력합니다. (개행 문자가 포함되지 않습니다!) 17 | PUSH(sResult) 18 | INVOKE(print_str) 19 | 20 | // 준비된 변수 a에 정수를 대입합니다. 21 | MOVL(a, 100) 22 | 23 | // a에 저장된 정수를 출력합니다. 24 | PUSH(a) 25 | INVOKE(print_int) 26 | 27 | // 출력 화면에 개행 문자를 삽입합니다. 28 | PUSH(sNewLine) 29 | INVOKE(print_str) 30 | 31 | ENDP // 프로시저의 정의를 마칩니다. -------------------------------------------------------------------------------- /04_CIL/win32/02_PrintValue/PrintValue.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | STRING sNewLine = "\n"; // 개행 문자를 삽입하기 위한 개행 문자열입니다. 4 | STRING sResult = "RESULT: "; 5 | 6 | PROC(main) // main 프로시저의 정의가 시작되는 지점입니다. 7 | 8 | // 정수 0을 출력합니다. 9 | PUSH(0) 10 | INVOKE(print_int) 11 | 12 | // 출력 화면에 개행 문자를 삽입합니다. 13 | PUSH(sNewLine) 14 | INVOKE(print_str) 15 | 16 | // 문자열 "RESULT: "를 출력합니다. (개행 문자가 포함되지 않습니다!) 17 | PUSH(sResult) 18 | INVOKE(print_str) 19 | 20 | // 준비된 변수 a에 정수를 대입합니다. 21 | MOVL(a, 100) 22 | 23 | // a에 저장된 정수를 출력합니다. 24 | PUSH(a) 25 | INVOKE(print_int) 26 | 27 | // 출력 화면에 개행 문자를 삽입합니다. 28 | PUSH(sNewLine) 29 | INVOKE(print_str) 30 | 31 | ENDP // 프로시저의 정의를 마칩니다. -------------------------------------------------------------------------------- /04_CIL/ubuntu/02_PrintValue/PrintValue.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | 3 | STRING sNewLine = "\n"; // 개행 문자를 삽입하기 위한 개행 문자열입니다. 4 | STRING sResult = "RESULT: "; 5 | 6 | PROC(main) // main 프로시저의 정의가 시작되는 지점입니다. 7 | 8 | // 정수 0을 출력합니다. 9 | PUSH(0) 10 | INVOKE(print_int) 11 | 12 | // 출력 화면에 개행 문자를 삽입합니다. 13 | PUSH(sNewLine) 14 | INVOKE(print_str) 15 | 16 | // 문자열 "RESULT: "를 출력합니다. (개행 문자가 포함되지 않습니다!) 17 | PUSH(sResult) 18 | INVOKE(print_str) 19 | 20 | // 준비된 변수 a에 정수를 대입합니다. 21 | MOVL(a, 100) 22 | 23 | // a에 저장된 정수를 출력합니다. 24 | PUSH(a) 25 | INVOKE(print_int) 26 | 27 | // 출력 화면에 개행 문자를 삽입합니다. 28 | PUSH(sNewLine) 29 | INVOKE(print_str) 30 | 31 | ENDP // 프로시저의 정의를 마칩니다. 32 | -------------------------------------------------------------------------------- /04_CIL/macosx/06_Loop/Loop.c: -------------------------------------------------------------------------------- 1 | #include "CIL.h" 2 | STRING sNewLine = "\n"; 3 | STRING sEnd = "Program end\n"; 4 | 5 | PROC(main) // main 프로시저의 정의가 시작되는 지점입니다. 6 | 7 | MOVL(c, 5); // c = 5 8 | 9 | // 루프의 시작을 뜻하는 레이블을 정의합니다. 10 | loop_start: 11 | 12 | // c의 값을 0과 비교합니다. 13 | CMP(c, 0); 14 | 15 | // c가 0이라면 반복문을 탈출합니다. 16 | JZ(loop_end) 17 | 18 | // c의 현재 값을 출력합니다. 19 | PUSH(c); 20 | INVOKE(print_int); 21 | PUSH(sNewLine); 22 | INVOKE(print_str); 23 | 24 | // c-- 25 | DEC(c); 26 | 27 | // 루프의 처음으로 되돌아가 반복문을 다시 실행합니다. 28 | JMP(loop_start); 29 | 30 | // 루프의 끝을 뜻하는 레이블을 정의합니다. 31 | loop_end: 32 | 33 | PUSH(sEnd); 34 | INVOKE(print_str); 35 | 36 | ENDP // 프로시저의 정의를 마칩니다. --------------------------------------------------------------------------------