├── .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 // 프로시저의 정의를 마칩니다.
--------------------------------------------------------------------------------