[1385] プログラムのアセンブラコード
    
    投稿者:山
    2009/07/16 01:00:50
    
    
     下記はプログラムのアセンブラコードです、特に何も変わっていませんが、
ごく普通のコードでマルチスレッドを問題なく実行しています。
1:*** 一般関数情報ダンプ ******************
1:int  main_001()
1:*** ローカル変数の表示 no = 2 ***
1:   0:int [3] sid
1:   1:int [3] rtn
1:*** 配列定数 数 = 0 **********
1:*** 文字列 数 = 25 ***
1:   0: "main_001"
1:   1: "sid"
1:   2: "rtn"
1:   3: "### スレッド起動 ###"
1:   4: "println"
1:   5: "タイマ表示"
1:   6: " 40ms"
1:   7: " で6回実行"
1:   8: "thread_start"
1:   9: " 60ms"
1:  10: " で5回実行"
1:  11: " 80ms"
1:  12: " で4回実行"
1:  13: " sid[0] ="
1:  14: " sid[1] ="
1:  15: " sid[2] ="
1:  16: "眠る前 ms="
1:  17: "get_ms_time"
1:  18: "sleep"
1:  19: "眠る後 ms="
1:  20: "thread_exit_waiting"
1:  21: " rtn[0] ="
1:  22: " rtn[1] ="
1:  23: " rtn[2] ="
1:  24: "### 全スレッド終了 ###"
1:*** 使用予定のスタックサイズ = 2116
1:*** 関数コードのディスアセンブラ size = 348
1:   0 push_string_const	 3
1:   3 call_function	 4 0 0 1
1:  12 pop	
1:  13 push_string_const	 5
1:  16 push_int_1byte	 40
1:  18 push_int_1byte	 6
1:  20 push_string_const	 6
1:  23 push_string_const	 7
1:  26 call_function	 8 0 0 5
1:  35 push_stack_array	 0
1:  38 push_int_1byte	 0
1:  40 pop_array_int	
1:  41 push_string_const	 5
1:  44 push_int_1byte	 60
1:  46 push_int_1byte	 5
1:  48 push_string_const	 9
1:  51 push_string_const	 10
1:  54 call_function	 8 0 0 5
1:  63 push_stack_array	 0
1:  66 push_int_1byte	 1
1:  68 pop_array_int	
1:  69 push_string_const	 5
1:  72 push_int_1byte	 80
1:  74 push_int_1byte	 4
1:  76 push_string_const	 11
1:  79 push_string_const	 12
1:  82 call_function	 8 0 0 5
1:  91 push_stack_array	 0
1:  94 push_int_1byte	 2
1:  96 pop_array_int	
1:  97 push_string_const	 13
1: 100 push_stack_array	 0
1: 103 push_int_1byte	 0
1: 105 push_array_int	 0
1: 107 cast_int_to_string	
1: 108 add_string	
1: 109 push_string_const	 14
1: 112 add_string	
1: 113 push_stack_array	 0
1: 116 push_int_1byte	 1
1: 118 push_array_int	 0
1: 120 cast_int_to_string	
1: 121 add_string	
1: 122 push_string_const	 15
1: 125 add_string	
1: 126 push_stack_array	 0
1: 129 push_int_1byte	 2
1: 131 push_array_int	 0
1: 133 cast_int_to_string	
1: 134 add_string	
1: 135 call_function	 4 0 0 1
1: 144 pop	
1: 145 push_string_const	 16
1: 148 call_function	 17 0 0 0
1: 157 cast_int_to_string	
1: 158 add_string	
1: 159 call_function	 4 0 0 1
1: 168 pop	
1: 169 push_int_2byte	 300
1: 172 call_function	 18 0 0 1
1: 181 pop	
1: 182 push_string_const	 19
1: 185 call_function	 17 0 0 0
1: 194 cast_int_to_string	
1: 195 add_string	
1: 196 call_function	 4 0 0 1
1: 205 pop	
1: 206 push_stack_array	 0
1: 209 push_int_1byte	 0
1: 211 push_array_int	 0
1: 213 push_int_1byte	 0
1: 215 push_int_1byte	 10
1: 217 call_function	 20 0 0 3
1: 226 push_stack_array	 1
1: 229 push_int_1byte	 0
1: 231 pop_array_int	
1: 232 push_stack_array	 0
1: 235 push_int_1byte	 1
1: 237 push_array_int	 0
1: 239 push_int_1byte	 0
1: 241 push_int_1byte	 10
1: 243 call_function	 20 0 0 3
1: 252 push_stack_array	 1
1: 255 push_int_1byte	 1
1: 257 pop_array_int	
1: 258 push_stack_array	 0
1: 261 push_int_1byte	 2
1: 263 push_array_int	 0
1: 265 push_int_1byte	 0
1: 267 push_int_1byte	 10
1: 269 call_function	 20 0 0 3
1: 278 push_stack_array	 1
1: 281 push_int_1byte	 2
1: 283 pop_array_int	
1: 284 push_string_const	 21
1: 287 push_stack_array	 1
1: 290 push_int_1byte	 0
1: 292 push_array_int	 0
1: 294 cast_int_to_string	
1: 295 add_string	
1: 296 push_string_const	 22
1: 299 add_string	
1: 300 push_stack_array	 1
1: 303 push_int_1byte	 1
1: 305 push_array_int	 0
1: 307 cast_int_to_string	
1: 308 add_string	
1: 309 push_string_const	 23
1: 312 add_string	
1: 313 push_stack_array	 1
1: 316 push_int_1byte	 2
1: 318 push_array_int	 0
1: 320 cast_int_to_string	
1: 321 add_string	
1: 322 call_function	 4 0 0 1
1: 331 pop	
1: 332 push_string_const	 24
1: 335 call_function	 4 0 0 1
1: 344 pop	
1: 345 push_int_1byte	 98
1: 347 return	
1:*** 行情報 数 = 14 ***
1:  36: from     0 size    13
1:  38: from    13 size    28
1:  39: from    41 size    28
1:  40: from    69 size    28
1:  41: from    97 size    48
1:  43: from   145 size    24
1:  44: from   169 size    13
1:  45: from   182 size    24
1:  49: from   206 size    26
1:  50: from   232 size    26
1:  51: from   258 size    26
1:  52: from   284 size    48
1:  53: from   332 size    13
1:  54: from   345 size     3
1:*** end of main_001() --------------
1:--------デバックログ中止--------
1:--------デバックログ開始--------
1:*** 一般関数情報ダンプ ******************
1:int  タイマ表示(int  sid, int  qid, int  p1, string  p2, string  p3)
1:*** ローカル変数の表示 no = 6 ***
1:   0:int  sid
1:   1:int  qid
1:   2:int  p1
1:   3:string  p2
1:   4:string  p3
1:   5:string  questr
1:*** 配列定数 数 = 0 **********
1:*** 文字列 数 = 19 ***
1:   0: "タイマ表示"
1:   1: "sid"
1:   2: "qid"
1:   3: "p1"
1:   4: "p2"
1:   5: "p3"
1:   6: "questr"
1:   7: " SID="
1:   8: " QID="
1:   9: "タイマ表示スレッド開始"
1:  10: " 回数="
1:  11: "println"
1:  12: "HAI000-HAI001"
1:  13: "sysval"
1:  14: "HAS000-HAS001"
1:  15: " cnt="
1:  16: "タイマ表示スレッド終了"
1:  17: "タイマ表示 終了指示により終了"
1:  18: "タイマ表示スレッド エラー終了"
1:*** 使用予定のスタックサイズ = 1612
1:*** 関数コードのディスアセンブラ size = 282
1:   0 push_string_const	 7
1:   3 push_stack_int	 0
1:   6 cast_int_to_string	
1:   7 add_string	
1:   8 push_string_const	 8
1:  11 add_string	
1:  12 push_stack_int	 1
1:  15 cast_int_to_string	
1:  16 add_string	
1:  17 pop_stack_string	 5
1:  20 push_stack_int	 1
1:  23 push_int_1byte	 1
1:  25 eq_int	
1:  26 jump_if_false	 127
1:  29 push_string_const	 9
1:  32 push_stack_string	 5
1:  35 add_string	
1:  36 push_string_const	 10
1:  39 add_string	
1:  40 push_stack_int	 2
1:  43 cast_int_to_string	
1:  44 add_string	
1:  45 push_stack_string	 3
1:  48 add_string	
1:  49 push_stack_string	 4
1:  52 add_string	
1:  53 call_function	 11 0 0 1
1:  62 pop	
1:  63 push_string_const	 12
1:  66 push_int_1byte	 1
1:  68 call_function	 13 0 0 2
1:  77 pop	
1:  78 push_int_1byte	 0
1:  80 pop_sysval_int	 1-364-0
1:  85 push_stack_int	 2
1:  88 pop_sysval_int	 1-364-1
1:  93 push_string_const	 14
1:  96 push_int_1byte	 1
1:  98 call_function	 13 0 0 2
1: 107 pop	
1: 108 push_stack_string	 3
1: 111 pop_sysval_str	 3-364-0
1: 116 push_stack_string	 4
1: 119 pop_sysval_str	 3-364-1
1: 124 jump	 279
1: 127 push_stack_int	 1
1: 130 push_int_1byte	 2
1: 132 eq_int	
1: 133 jump_if_false	 227
1: 136 push_sysval_int	 1-364-0
1: 141 increment	
1: 142 pop_sysval_int	 1-364-0
1: 147 push_string_const	 0
1: 150 push_stack_string	 5
1: 153 add_string	
1: 154 push_string_const	 15
1: 157 add_string	
1: 158 push_sysval_int	 1-364-0
1: 163 cast_int_to_string	
1: 164 add_string	
1: 165 push_sysval_str	 3-364-0
1: 170 add_string	
1: 171 push_sysval_str	 3-364-1
1: 176 add_string	
1: 177 call_function	 11 0 0 1
1: 186 pop	
1: 187 push_sysval_int	 1-364-0
1: 192 push_sysval_int	 1-364-1
1: 197 ge_int	
1: 198 jump_if_false	 224
1: 201 push_string_const	 16
1: 204 push_stack_string	 5
1: 207 add_string	
1: 208 call_function	 11 0 0 1
1: 217 pop	
1: 218 push_int_1byte	 1
1: 220 return	
1: 221 jump	 224
1: 224 jump	 279
1: 227 push_stack_int	 1
1: 230 push_int_1byte	 3
1: 232 eq_int	
1: 233 jump_if_false	 259
1: 236 push_string_const	 17
1: 239 push_stack_string	 5
1: 242 add_string	
1: 243 call_function	 11 0 0 1
1: 252 pop	
1: 253 push_int_1byte	 1
1: 255 return	
1: 256 jump	 279
1: 259 push_string_const	 18
1: 262 push_stack_string	 5
1: 265 add_string	
1: 266 call_function	 11 0 0 1
1: 275 pop	
1: 276 push_int_1byte	 2
1: 278 return	
1: 279 push_int_1byte	 0
1: 281 return	
1:*** 行情報 数 = 29 ***
1:  65: from     0 size    20
1:  66: from    20 size     6
1:  89: from    26 size     3
1:  68: from    29 size    34
1:  69: from    63 size    15
1:  70: from    78 size     7
1:  71: from    85 size     8
1:  72: from    93 size    15
1:  73: from   108 size     8
1:  74: from   116 size     8
1:  89: from   124 size     3
1:  75: from   127 size     6
1:  89: from   133 size     3
1:  77: from   136 size    11
1:  78: from   147 size    40
1:  79: from   187 size    11
1:  83: from   198 size     3
1:  80: from   201 size    17
1:  81: from   218 size     3
1:  83: from   221 size     3
1:  89: from   224 size     3
1:  83: from   227 size     6
1:  89: from   233 size     3
1:  84: from   236 size    17
1:  85: from   253 size     3
1:  89: from   256 size     3
1:  87: from   259 size    17
1:  88: from   276 size     3
1:  90: from   279 size     3
1:*** end of タイマ表示() --------------
1:--------デバックログ中止--------
1:--------デバックログ開始--------
1:*** 一般関数情報ダンプ ******************
1:int  println(string  str)
1:*** ローカル変数の表示 no = 1 ***
1:   0:string  str
1:*** 配列定数 数 = 0 **********
1:*** 文字列 数 = 4 ***
1:   0: "println"
1:   1: "str"
1:   2: "
"
1:   3: "print"
1:*** 使用予定のスタックサイズ = 356
1:*** 関数コードのディスアセンブラ size = 20
1:   0 push_stack_string	 0
1:   3 push_string_const	 2
1:   6 add_string	
1:   7 call_function	 3 0 0 1
1:  16 pop	
1:  17 push_int_1byte	 0
1:  19 return	
1:*** 行情報 数 = 2 ***
1:  95: from     0 size    17
1:  96: from    17 size     3
1:*** end of println() --------------