URL
https://opencores.org/ocsvn/c16/c16/trunk
Subversion Repositories c16
[/] [c16/] [trunk/] [test.asm] - Rev 26
Compare with Previous | Blame | View Log
IN_RX_DATA = 0x00 ;
IN_STATUS = 0x01 ;
IN_TEMPERAT = 0x02 ;
IN_DIP_SWITCH = 0x03 ;
IN_CLK_CTR_LOW = 0x05 ;
IN_CLK_CTR_HIGH = 0x06 ;
MEMTOP =0x2000
OUT_TX_DATA = 0x00 ;
OUT_LEDS = 0x02 ;
OUT_INT_MASK = 0x03 ;
OUT_RESET_TIMER = 0x04 ;
OUT_START_CLK_CTR = 0x05 ;
OUT_STOP_CLK_CTR = 0x06 ;
;---------------------------------------;
MOVE #MEMTOP, RR ;
MOVE RR, SP ;
EI ;
JMP Cmain ;
JMP Cinterrupt ;
;---------------------------------------;
mult_div: ;
MD_STP ; 1
MD_STP ; 2
MD_STP ; 3
MD_STP ; 4
MD_STP ; 5
MD_STP ; 6
MD_STP ; 7
MD_STP ; 8
MD_STP ; 9
MD_STP ; 10
MD_STP ; 11
MD_STP ; 12
MD_STP ; 13
MD_STP ; 14
MD_STP ; 15
MD_STP ; 16
RET ;
;---------------------------------------;
;;; { 0 Declaration
;;; { 1 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 1 TypeSpecifier (all)
Cserial_in_buffer: ;
.BYTE 0 ; VOID [0]
.BYTE 0 ; VOID [1]
.BYTE 0 ; VOID [2]
.BYTE 0 ; VOID [3]
.BYTE 0 ; VOID [4]
.BYTE 0 ; VOID [5]
.BYTE 0 ; VOID [6]
.BYTE 0 ; VOID [7]
.BYTE 0 ; VOID [8]
.BYTE 0 ; VOID [9]
.BYTE 0 ; VOID [10]
.BYTE 0 ; VOID [11]
.BYTE 0 ; VOID [12]
.BYTE 0 ; VOID [13]
.BYTE 0 ; VOID [14]
.BYTE 0 ; VOID [15]
;;; } 0 Declaration
;;; ------------------------------------;
;;; { 0 Declaration
;;; { 1 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 1 TypeSpecifier (all)
Cserial_in_get: ;
.BYTE 0
;;; } 0 Declaration
;;; ------------------------------------;
;;; { 0 Declaration
;;; { 1 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 1 TypeSpecifier (all)
Cserial_in_put: ;
.BYTE 0
;;; } 0 Declaration
;;; ------------------------------------;
;;; { 0 Declaration
;;; { 1 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 1 TypeSpecifier (all)
Cserial_in_length: ;
.BYTE 0
;;; } 0 Declaration
;;; ------------------------------------;
;;; { 0 Declaration
;;; { 1 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 1 TypeSpecifier (all)
Cserial_in_overflow: ;
.BYTE 0
;;; } 0 Declaration
;;; ------------------------------------;
;;; { 0 FunctionDefinition
;;; { 1 TypeName
;;; { 2 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 2 TypeSpecifier (all)
;;; { 2 List<DeclItem>
;;; { 3 DeclItem
;;; what = DECL_NAME
;;; name = rx_interrupt
;;; } 3 DeclItem
;;; } 2 List<DeclItem>
;;; } 1 TypeName
;;; { 1 List<DeclItem>
;;; { 2 DeclItem
;;; what = DECL_NAME
;;; name = rx_interrupt
;;; } 2 DeclItem
;;; { 2 DeclItem
;;; what = DECL_FUN
;;; } 2 DeclItem
;;; } 1 List<DeclItem>
Crx_interrupt:
;;; { 1 CompoundStatement
;;; { 2 InitDeclarator
;;; { 3 List<DeclItem>
;;; { 4 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 4 DeclItem
;;; } 3 List<DeclItem>
;;; { 3 Initializer (skalar)
IN (IN_RX_DATA), RU
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; } 3 Initializer (skalar)
;;; } 2 InitDeclarator
;;; { 2 List<IfElseStatement>
;;; { 3 IfElseStatement
;;; { 4 Expr l < r
;;; { 5 TypeName (internal)
;;; { 6 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 6 TypeSpecifier (all)
;;; } 5 TypeName (internal)
;;; { 5 Expression (variable name)
;;; expr_type = "identifier" (serial_in_length)
;-- load_rr_var serial_in_length, (8 bit)
MOVE (Cserial_in_length), RU
;;; } 5 Expression (variable name)
;-- l < r
SLO RR, #0x0010
;;; } 4 Expr l < r
;-- branch_false
JMP RRZ, L2_else_1
;;; { 4 CompoundStatement
;;; { 5 List<ExpressionStatement>
;;; { 6 ExpressionStatement
;;; { 7 Expr l = r
;;; { 8 TypeName
;;; { 9 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 9 TypeSpecifier (all)
;;; { 9 List<DeclItem>
;;; { 10 DeclItem
;;; what = DECL_NAME
;;; name = serial_in_buffer
;;; } 10 DeclItem
;;; } 9 List<DeclItem>
;;; } 8 TypeName
;;; { 8 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -1 (8 bit)
MOVE 0(SP), RS
;;; } 8 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 8 Expr l[r]
;;; { 9 Expression (variable name)
;;; expr_type = "identifier" (serial_in_put)
;-- load_rr_var serial_in_put, (8 bit)
MOVE (Cserial_in_put), RU
;;; } 9 Expression (variable name)
;-- scale_rr *1
;-- add_address serial_in_buffer
ADD RR, #Cserial_in_buffer
;;; } 8 Expr l[r]
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RU
;-- assign (8 bit)
MOVE R, (LL)
;;; } 7 Expr l = r
;;; } 6 ExpressionStatement
;;; { 6 ExpressionStatement
;;; { 7 Expr l = r
;;; { 8 TypeName
;;; { 9 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 9 TypeSpecifier (all)
;;; { 9 List<DeclItem>
;;; { 10 DeclItem
;;; what = DECL_NAME
;;; name = serial_in_put
;;; } 10 DeclItem
;;; } 9 List<DeclItem>
;;; } 8 TypeName
;;; { 8 Expr l & r
;;; { 9 TypeName (internal)
;;; { 10 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 10 TypeSpecifier (all)
;;; } 9 TypeName (internal)
;;; { 9 Expr ++r
;;; { 10 Expression (variable name)
;;; expr_type = "identifier" (serial_in_put)
;-- load_rr_var serial_in_put, (8 bit)
MOVE (Cserial_in_put), RU
;;; } 10 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var serial_in_put
MOVE R, (Cserial_in_put)
;;; } 9 Expr ++r
;-- l & r
AND RR, #0x000F
;;; } 8 Expr l & r
;-- store_rr_var serial_in_put
MOVE R, (Cserial_in_put)
;;; } 7 Expr l = r
;;; } 6 ExpressionStatement
;;; { 6 ExpressionStatement
;;; { 7 Expr ++r
;;; { 8 Expression (variable name)
;;; expr_type = "identifier" (serial_in_length)
;-- load_rr_var serial_in_length, (8 bit)
MOVE (Cserial_in_length), RU
;;; } 8 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var serial_in_length
MOVE R, (Cserial_in_length)
;;; } 7 Expr ++r
;;; } 6 ExpressionStatement
;;; } 5 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 4 CompoundStatement
;-- branch
JMP L2_endif_1
L2_else_1:
;;; { 4 CompoundStatement
;;; { 5 List<ExpressionStatement>
;;; { 6 ExpressionStatement
;;; { 7 Expr l = r
;;; { 8 TypeName
;;; { 9 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 9 TypeSpecifier (all)
;;; { 9 List<DeclItem>
;;; { 10 DeclItem
;;; what = DECL_NAME
;;; name = serial_in_overflow
;;; } 10 DeclItem
;;; } 9 List<DeclItem>
;;; } 8 TypeName
;;; { 8 NumericExpression (constant 255 = 0xFF)
;-- load_rr_constant
MOVE #0x00FF, RR
;;; } 8 NumericExpression (constant 255 = 0xFF)
;-- store_rr_var serial_in_overflow
MOVE R, (Cserial_in_overflow)
;;; } 7 Expr l = r
;;; } 6 ExpressionStatement
;;; } 5 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 4 CompoundStatement
L2_endif_1:
;;; } 3 IfElseStatement
;;; } 2 List<IfElseStatement>
;-- pop 1 bytes
ADD SP, #1
;;; } 1 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 1 Declaration
;;; { 2 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 2 TypeSpecifier (all)
Cserial_out_buffer: ;
.BYTE 0 ; VOID [0]
.BYTE 0 ; VOID [1]
.BYTE 0 ; VOID [2]
.BYTE 0 ; VOID [3]
.BYTE 0 ; VOID [4]
.BYTE 0 ; VOID [5]
.BYTE 0 ; VOID [6]
.BYTE 0 ; VOID [7]
.BYTE 0 ; VOID [8]
.BYTE 0 ; VOID [9]
.BYTE 0 ; VOID [10]
.BYTE 0 ; VOID [11]
.BYTE 0 ; VOID [12]
.BYTE 0 ; VOID [13]
.BYTE 0 ; VOID [14]
.BYTE 0 ; VOID [15]
;;; } 1 Declaration
;;; ------------------------------------;
;;; { 1 Declaration
;;; { 2 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 2 TypeSpecifier (all)
Cserial_out_get: ;
.BYTE 0
;;; } 1 Declaration
;;; ------------------------------------;
;;; { 1 Declaration
;;; { 2 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 2 TypeSpecifier (all)
Cserial_out_put: ;
.BYTE 0
;;; } 1 Declaration
;;; ------------------------------------;
;;; { 1 Declaration
;;; { 2 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 2 TypeSpecifier (all)
Cserial_out_length: ;
.BYTE 0
;;; } 1 Declaration
;;; ------------------------------------;
;;; { 1 FunctionDefinition
;;; { 2 TypeName
;;; { 3 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 3 TypeSpecifier (all)
;;; { 3 List<DeclItem>
;;; { 4 DeclItem
;;; what = DECL_NAME
;;; name = tx_interrupt
;;; } 4 DeclItem
;;; } 3 List<DeclItem>
;;; } 2 TypeName
;;; { 2 List<DeclItem>
;;; { 3 DeclItem
;;; what = DECL_NAME
;;; name = tx_interrupt
;;; } 3 DeclItem
;;; { 3 DeclItem
;;; what = DECL_FUN
;;; } 3 DeclItem
;;; } 2 List<DeclItem>
Ctx_interrupt:
;;; { 2 CompoundStatement
;;; { 3 List<IfElseStatement>
;;; { 4 IfElseStatement
;;; { 5 Expression (variable name)
;;; expr_type = "identifier" (serial_out_length)
;-- load_rr_var serial_out_length, (8 bit)
MOVE (Cserial_out_length), RU
;;; } 5 Expression (variable name)
;-- branch_false
JMP RRZ, L3_else_2
;;; { 5 CompoundStatement
;;; { 6 List<ExpressionStatement>
;;; { 7 ExpressionStatement
;;; { 8 Expr l[r]
;;; { 9 TypeName
;;; { 10 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 10 TypeSpecifier (all)
;;; { 10 List<DeclItem>
;;; { 11 DeclItem
;;; what = DECL_NAME
;;; name = serial_out_buffer
;;; } 11 DeclItem
;;; } 10 List<DeclItem>
;;; } 9 TypeName
;;; { 9 Expr l[r]
;;; { 10 Expression (variable name)
;;; expr_type = "identifier" (serial_out_get)
;-- load_rr_var serial_out_get, (8 bit)
MOVE (Cserial_out_get), RU
;;; } 10 Expression (variable name)
;-- scale_rr *1
;-- add_address serial_out_buffer
ADD RR, #Cserial_out_buffer
;;; } 9 Expr l[r]
;-- content
MOVE (RR), RU
;;; } 8 Expr l[r]
;;; } 7 ExpressionStatement
;;; { 7 ExpressionStatement
OUT R, (OUT_TX_DATA)
;;; } 7 ExpressionStatement
;;; { 7 ExpressionStatement
;;; { 8 Expr l = r
;;; { 9 TypeName
;;; { 10 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 10 TypeSpecifier (all)
;;; { 10 List<DeclItem>
;;; { 11 DeclItem
;;; what = DECL_NAME
;;; name = serial_out_get
;;; } 11 DeclItem
;;; } 10 List<DeclItem>
;;; } 9 TypeName
;;; { 9 Expr l & r
;;; { 10 TypeName (internal)
;;; { 11 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 11 TypeSpecifier (all)
;;; } 10 TypeName (internal)
;;; { 10 Expr ++r
;;; { 11 Expression (variable name)
;;; expr_type = "identifier" (serial_out_get)
;-- load_rr_var serial_out_get, (8 bit)
MOVE (Cserial_out_get), RU
;;; } 11 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var serial_out_get
MOVE R, (Cserial_out_get)
;;; } 10 Expr ++r
;-- l & r
AND RR, #0x000F
;;; } 9 Expr l & r
;-- store_rr_var serial_out_get
MOVE R, (Cserial_out_get)
;;; } 8 Expr l = r
;;; } 7 ExpressionStatement
;;; { 7 ExpressionStatement
;;; { 8 Expr --r
;;; { 9 Expression (variable name)
;;; expr_type = "identifier" (serial_out_length)
;-- load_rr_var serial_out_length, (8 bit)
MOVE (Cserial_out_length), RU
;;; } 9 Expression (variable name)
;-- --
SUB RR, #0x0001
;-- store_rr_var serial_out_length
MOVE R, (Cserial_out_length)
;;; } 8 Expr --r
;;; } 7 ExpressionStatement
;;; } 6 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 5 CompoundStatement
;-- branch
JMP L3_endif_2
L3_else_2:
;;; { 5 CompoundStatement
;;; { 6 List<ExpressionStatement>
;;; { 7 ExpressionStatement
MOVE #0x05, RR
;;; } 7 ExpressionStatement
;;; { 7 ExpressionStatement
OUT R, (OUT_INT_MASK)
;;; } 7 ExpressionStatement
;;; } 6 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 5 CompoundStatement
L3_endif_2:
;;; } 4 IfElseStatement
;;; } 3 List<IfElseStatement>
;-- pop 0 bytes
;;; } 2 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 2 Declaration
;;; { 3 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 3 TypeSpecifier (all)
Cmilliseconds: ;
.WORD 0
;;; } 2 Declaration
;;; ------------------------------------;
;;; { 2 Declaration
;;; { 3 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 3 TypeSpecifier (all)
Cseconds_low: ;
.WORD 0
;;; } 2 Declaration
;;; ------------------------------------;
;;; { 2 Declaration
;;; { 3 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 3 TypeSpecifier (all)
Cseconds_mid: ;
.WORD 0
;;; } 2 Declaration
;;; ------------------------------------;
;;; { 2 Declaration
;;; { 3 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 3 TypeSpecifier (all)
Cseconds_high: ;
.WORD 0
;;; } 2 Declaration
;;; ------------------------------------;
;;; { 2 Declaration
;;; { 3 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 3 TypeSpecifier (all)
Cseconds_changed: ;
.BYTE 0
;;; } 2 Declaration
;;; ------------------------------------;
;;; { 2 FunctionDefinition
;;; { 3 TypeName
;;; { 4 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 4 TypeSpecifier (all)
;;; { 4 List<DeclItem>
;;; { 5 DeclItem
;;; what = DECL_NAME
;;; name = timer_interrupt
;;; } 5 DeclItem
;;; } 4 List<DeclItem>
;;; } 3 TypeName
;;; { 3 List<DeclItem>
;;; { 4 DeclItem
;;; what = DECL_NAME
;;; name = timer_interrupt
;;; } 4 DeclItem
;;; { 4 DeclItem
;;; what = DECL_FUN
;;; } 4 DeclItem
;;; } 3 List<DeclItem>
Ctimer_interrupt:
;;; { 3 CompoundStatement
;;; { 4 List<ExpressionStatement>
;;; { 5 ExpressionStatement
OUT R, (OUT_RESET_TIMER)
;;; } 5 ExpressionStatement
;;; { 5 IfElseStatement
;;; { 6 Expr l == r
;;; { 7 TypeName (internal)
;;; { 8 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 8 TypeSpecifier (all)
;;; } 7 TypeName (internal)
;;; { 7 Expr ++r
;;; { 8 Expression (variable name)
;;; expr_type = "identifier" (milliseconds)
;-- load_rr_var milliseconds, (16 bit)
MOVE (Cmilliseconds), RR
;;; } 8 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var milliseconds
MOVE RR, (Cmilliseconds)
;;; } 7 Expr ++r
;-- l == r
SEQ RR, #0x03E8
;;; } 6 Expr l == r
;-- branch_false
JMP RRZ, L4_endif_3
;;; { 6 CompoundStatement
;;; { 7 List<ExpressionStatement>
;;; { 8 ExpressionStatement
;;; { 9 Expr l = r
;;; { 10 TypeName
;;; { 11 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 11 TypeSpecifier (all)
;;; { 11 List<DeclItem>
;;; { 12 DeclItem
;;; what = DECL_NAME
;;; name = milliseconds
;;; } 12 DeclItem
;;; } 11 List<DeclItem>
;;; } 10 TypeName
;;; { 10 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 10 NumericExpression (constant 0 = 0x0)
;-- store_rr_var milliseconds
MOVE RR, (Cmilliseconds)
;;; } 9 Expr l = r
;;; } 8 ExpressionStatement
;;; { 8 ExpressionStatement
;;; { 9 Expr l = r
;;; { 10 TypeName
;;; { 11 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 11 TypeSpecifier (all)
;;; { 11 List<DeclItem>
;;; { 12 DeclItem
;;; what = DECL_NAME
;;; name = seconds_changed
;;; } 12 DeclItem
;;; } 11 List<DeclItem>
;;; } 10 TypeName
;;; { 10 NumericExpression (constant 255 = 0xFF)
;-- load_rr_constant
MOVE #0x00FF, RR
;;; } 10 NumericExpression (constant 255 = 0xFF)
;-- store_rr_var seconds_changed
MOVE R, (Cseconds_changed)
;;; } 9 Expr l = r
;;; } 8 ExpressionStatement
;;; { 8 IfElseStatement
;;; { 9 Expr l == r
;;; { 10 TypeName (internal)
;;; { 11 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 11 TypeSpecifier (all)
;;; } 10 TypeName (internal)
;;; { 10 Expr ++r
;;; { 11 Expression (variable name)
;;; expr_type = "identifier" (seconds_low)
;-- load_rr_var seconds_low, (16 bit)
MOVE (Cseconds_low), RR
;;; } 11 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var seconds_low
MOVE RR, (Cseconds_low)
;;; } 10 Expr ++r
;-- l == r
SEQ RR, #0x0000
;;; } 9 Expr l == r
;-- branch_false
JMP RRZ, L4_endif_4
;;; { 9 CompoundStatement
;;; { 10 List<IfElseStatement>
;;; { 11 IfElseStatement
;;; { 12 Expr l == r
;;; { 13 TypeName (internal)
;;; { 14 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 14 TypeSpecifier (all)
;;; } 13 TypeName (internal)
;;; { 13 Expr ++r
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (seconds_mid)
;-- load_rr_var seconds_mid, (16 bit)
MOVE (Cseconds_mid), RR
;;; } 14 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var seconds_mid
MOVE RR, (Cseconds_mid)
;;; } 13 Expr ++r
;-- l == r
SEQ RR, #0x0000
;;; } 12 Expr l == r
;-- branch_false
JMP RRZ, L4_endif_5
;;; { 12 ExpressionStatement
;;; { 13 Expr ++r
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (seconds_high)
;-- load_rr_var seconds_high, (16 bit)
MOVE (Cseconds_high), RR
;;; } 14 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var seconds_high
MOVE RR, (Cseconds_high)
;;; } 13 Expr ++r
;;; } 12 ExpressionStatement
L4_endif_5:
;;; } 11 IfElseStatement
;;; } 10 List<IfElseStatement>
;-- pop 0 bytes
;;; } 9 CompoundStatement
L4_endif_4:
;;; } 8 IfElseStatement
;;; } 7 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 6 CompoundStatement
L4_endif_3:
;;; } 5 IfElseStatement
;;; } 4 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 3 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 3 FunctionDefinition
;;; { 4 TypeName
;;; { 5 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 5 TypeSpecifier (all)
;;; { 5 List<DeclItem>
;;; { 6 DeclItem
;;; what = DECL_NAME
;;; name = interrupt
;;; } 6 DeclItem
;;; } 5 List<DeclItem>
;;; } 4 TypeName
;;; { 4 List<DeclItem>
;;; { 5 DeclItem
;;; what = DECL_NAME
;;; name = interrupt
;;; } 5 DeclItem
;;; { 5 DeclItem
;;; what = DECL_FUN
;;; } 5 DeclItem
;;; } 4 List<DeclItem>
Cinterrupt:
;;; { 4 CompoundStatement
;;; { 5 List<ExpressionStatement>
;;; { 6 ExpressionStatement
MOVE RR, -(SP)
;;; } 6 ExpressionStatement
;;; { 6 ExpressionStatement
MOVE LL, RR
;;; } 6 ExpressionStatement
;;; { 6 ExpressionStatement
MOVE RR, -(SP)
;;; } 6 ExpressionStatement
;;; { 6 IfElseStatement
;;; { 7 Expr l & r
;;; { 8 TypeName (internal)
;;; { 9 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 9 TypeSpecifier (all)
;;; } 8 TypeName (internal)
IN (IN_STATUS), RU
;-- l & r
AND RR, #0x0010
;;; } 7 Expr l & r
;-- branch_false
JMP RRZ, L5_endif_6
;;; { 7 ExpressionStatement
;;; { 8 Expr l(r)
;;; { 9 TypeName
;;; { 10 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 10 TypeSpecifier (all)
;;; { 10 List<DeclItem>
;;; { 11 DeclItem
;;; what = DECL_NAME
;;; name = rx_interrupt
;;; } 11 DeclItem
;;; } 10 List<DeclItem>
;;; } 9 TypeName
;-- push 0 bytes
;-- call
CALL Crx_interrupt
;-- pop 0 bytes
;;; } 8 Expr l(r)
;;; } 7 ExpressionStatement
L5_endif_6:
;;; } 6 IfElseStatement
;;; { 6 IfElseStatement
;;; { 7 Expr l & r
;;; { 8 TypeName (internal)
;;; { 9 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 9 TypeSpecifier (all)
;;; } 8 TypeName (internal)
IN (IN_STATUS), RU
;-- l & r
AND RR, #0x0020
;;; } 7 Expr l & r
;-- branch_false
JMP RRZ, L5_endif_7
;;; { 7 ExpressionStatement
;;; { 8 Expr l(r)
;;; { 9 TypeName
;;; { 10 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 10 TypeSpecifier (all)
;;; { 10 List<DeclItem>
;;; { 11 DeclItem
;;; what = DECL_NAME
;;; name = tx_interrupt
;;; } 11 DeclItem
;;; } 10 List<DeclItem>
;;; } 9 TypeName
;-- push 0 bytes
;-- call
CALL Ctx_interrupt
;-- pop 0 bytes
;;; } 8 Expr l(r)
;;; } 7 ExpressionStatement
L5_endif_7:
;;; } 6 IfElseStatement
;;; { 6 IfElseStatement
;;; { 7 Expr l & r
;;; { 8 TypeName (internal)
;;; { 9 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 9 TypeSpecifier (all)
;;; } 8 TypeName (internal)
IN (IN_STATUS), RU
;-- l & r
AND RR, #0x0040
;;; } 7 Expr l & r
;-- branch_false
JMP RRZ, L5_endif_8
;;; { 7 ExpressionStatement
;;; { 8 Expr l(r)
;;; { 9 TypeName
;;; { 10 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 10 TypeSpecifier (all)
;;; { 10 List<DeclItem>
;;; { 11 DeclItem
;;; what = DECL_NAME
;;; name = timer_interrupt
;;; } 11 DeclItem
;;; } 10 List<DeclItem>
;;; } 9 TypeName
;-- push 0 bytes
;-- call
CALL Ctimer_interrupt
;-- pop 0 bytes
;;; } 8 Expr l(r)
;;; } 7 ExpressionStatement
L5_endif_8:
;;; } 6 IfElseStatement
;;; { 6 ExpressionStatement
MOVE (SP)+, RR
;;; } 6 ExpressionStatement
;;; { 6 ExpressionStatement
MOVE RR, LL
;;; } 6 ExpressionStatement
;;; { 6 ExpressionStatement
MOVE (SP)+, RR
;;; } 6 ExpressionStatement
;;; { 6 ExpressionStatement
RETI
;;; } 6 ExpressionStatement
;;; } 5 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 4 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 4 FunctionDefinition
;;; { 5 TypeName
;;; { 6 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 6 TypeSpecifier (all)
;;; { 6 List<DeclItem>
;;; { 7 DeclItem
;;; what = DECL_NAME
;;; name = strlen
;;; } 7 DeclItem
;;; } 6 List<DeclItem>
;;; } 5 TypeName
;;; { 5 List<DeclItem>
;;; { 6 DeclItem
;;; what = DECL_NAME
;;; name = strlen
;;; } 6 DeclItem
;;; { 6 DeclItem
;;; what = DECL_FUN
;;; { 7 List<ParameterDeclaration>
;;; { 8 ParameterDeclaration
;;; isEllipsis = false
;;; { 9 TypeName
;;; { 10 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 10 TypeSpecifier (all)
;;; { 10 List<DeclItem>
;;; { 11 DeclItem
;;; what = DECL_POINTER
;;; { 12 List<Ptr>
;;; { 13 Ptr
;;; } 13 Ptr
;;; } 12 List<Ptr>
;;; } 11 DeclItem
;;; { 11 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 11 DeclItem
;;; } 10 List<DeclItem>
;;; } 9 TypeName
;;; } 8 ParameterDeclaration
;;; } 7 List<ParameterDeclaration>
;;; } 6 DeclItem
;;; } 5 List<DeclItem>
Cstrlen:
;;; { 5 CompoundStatement
;;; { 6 InitDeclarator
;;; { 7 List<DeclItem>
;;; { 8 DeclItem
;;; what = DECL_POINTER
;;; { 9 List<Ptr>
;;; { 10 Ptr
;;; } 10 Ptr
;;; } 9 List<Ptr>
;;; } 8 DeclItem
;;; { 8 DeclItem
;;; what = DECL_NAME
;;; name = from
;;; } 8 DeclItem
;;; } 7 List<DeclItem>
;;; { 7 Initializer (skalar)
;;; { 8 Expression (variable name)
;;; expr_type = "identifier" (buffer)
;-- load_rr_var buffer = 2(FP), SP at 0 (16 bit)
MOVE 2(SP), RR
;;; } 8 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 7 Initializer (skalar)
;;; } 6 InitDeclarator
;;; { 6 List<while Statement>
;;; { 7 while Statement
;-- branch
JMP L6_cont_9
L6_loop_9:
;;; { 8 ExpressionStatement
;;; { 9 Expr l - r
;;; { 10 Expr ++r
;;; { 11 Expression (variable name)
;;; expr_type = "identifier" (buffer)
;-- load_rr_var buffer = 2(FP), SP at -2 (16 bit)
MOVE 4(SP), RR
;;; } 11 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var buffer = 2(FP), SP at -2
MOVE RR, 4(SP)
;;; } 10 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 9 Expr l - r
;;; } 8 ExpressionStatement
L6_cont_9:
;;; { 8 Expr * r
;;; { 9 Expression (variable name)
;;; expr_type = "identifier" (buffer)
;-- load_rr_var buffer = 2(FP), SP at -2 (16 bit)
MOVE 4(SP), RR
;;; } 9 Expression (variable name)
;-- content
MOVE (RR), RS
;;; } 8 Expr * r
;-- branch_true
JMP RRNZ, L6_loop_9
L6_brk_10:
;;; } 7 while Statement
;;; { 7 return Statement
;;; { 8 Expr l - r
;;; { 9 Expression (variable name)
;;; expr_type = "identifier" (buffer)
;-- load_rr_var buffer = 2(FP), SP at -2 (16 bit)
MOVE 4(SP), RR
;;; } 9 Expression (variable name)
;-- move_rr_to_ll
MOVE RR, LL
;;; { 9 Expression (variable name)
;;; expr_type = "identifier" (from)
;-- load_rr_var from = -2(FP), SP at -2 (16 bit)
MOVE 0(SP), RR
;;; } 9 Expression (variable name)
;-- scale_rr *1
;-- l - r
SUB LL, RR
;-- scale *1
;;; } 8 Expr l - r
;-- ret
ADD SP, #2
RET
;;; } 7 return Statement
;;; } 6 List<while Statement>
;-- pop 2 bytes
ADD SP, #2
;;; } 5 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 5 FunctionDefinition
;;; { 6 TypeName
;;; { 7 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 7 TypeSpecifier (all)
;;; { 7 List<DeclItem>
;;; { 8 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 8 DeclItem
;;; } 7 List<DeclItem>
;;; } 6 TypeName
;;; { 6 List<DeclItem>
;;; { 7 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 7 DeclItem
;;; { 7 DeclItem
;;; what = DECL_FUN
;;; { 8 List<ParameterDeclaration>
;;; { 9 ParameterDeclaration
;;; isEllipsis = false
;;; { 10 TypeName
;;; { 11 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 11 TypeSpecifier (all)
;;; { 11 List<DeclItem>
;;; { 12 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 12 DeclItem
;;; } 11 List<DeclItem>
;;; } 10 TypeName
;;; } 9 ParameterDeclaration
;;; } 8 List<ParameterDeclaration>
;;; } 7 DeclItem
;;; } 6 List<DeclItem>
Cputchr:
;;; { 6 CompoundStatement
;;; { 7 List<while Statement>
;;; { 8 while Statement
L7_loop_11:
;;; { 9 ExpressionStatement
;;; } 9 ExpressionStatement
L7_cont_11:
;;; { 9 Expr l == r
;;; { 10 TypeName (internal)
;;; { 11 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 11 TypeSpecifier (all)
;;; } 10 TypeName (internal)
;;; { 10 Expression (variable name)
;;; expr_type = "identifier" (serial_out_length)
;-- load_rr_var serial_out_length, (8 bit)
MOVE (Cserial_out_length), RU
;;; } 10 Expression (variable name)
;-- l == r
SEQ RR, #0x0010
;;; } 9 Expr l == r
;-- branch_true
JMP RRNZ, L7_loop_11
L7_brk_12:
;;; } 8 while Statement
;;; { 8 ExpressionStatement
;;; { 9 Expr l = r
;;; { 10 TypeName
;;; { 11 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 11 TypeSpecifier (all)
;;; { 11 List<DeclItem>
;;; { 12 DeclItem
;;; what = DECL_NAME
;;; name = serial_out_buffer
;;; } 12 DeclItem
;;; } 11 List<DeclItem>
;;; } 10 TypeName
;;; { 10 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = 2(FP), SP at 0 (8 bit)
MOVE 2(SP), RS
;;; } 10 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 10 Expr l[r]
;;; { 11 Expression (variable name)
;;; expr_type = "identifier" (serial_out_put)
;-- load_rr_var serial_out_put, (8 bit)
MOVE (Cserial_out_put), RU
;;; } 11 Expression (variable name)
;-- scale_rr *1
;-- add_address serial_out_buffer
ADD RR, #Cserial_out_buffer
;;; } 10 Expr l[r]
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RU
;-- assign (8 bit)
MOVE R, (LL)
;;; } 9 Expr l = r
;;; } 8 ExpressionStatement
;;; { 8 ExpressionStatement
;;; { 9 Expr l = r
;;; { 10 TypeName
;;; { 11 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 11 TypeSpecifier (all)
;;; { 11 List<DeclItem>
;;; { 12 DeclItem
;;; what = DECL_NAME
;;; name = serial_out_put
;;; } 12 DeclItem
;;; } 11 List<DeclItem>
;;; } 10 TypeName
;;; { 10 Expr l & r
;;; { 11 TypeName (internal)
;;; { 12 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 12 TypeSpecifier (all)
;;; } 11 TypeName (internal)
;;; { 11 Expr ++r
;;; { 12 Expression (variable name)
;;; expr_type = "identifier" (serial_out_put)
;-- load_rr_var serial_out_put, (8 bit)
MOVE (Cserial_out_put), RU
;;; } 12 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var serial_out_put
MOVE R, (Cserial_out_put)
;;; } 11 Expr ++r
;-- l & r
AND RR, #0x000F
;;; } 10 Expr l & r
;-- store_rr_var serial_out_put
MOVE R, (Cserial_out_put)
;;; } 9 Expr l = r
;;; } 8 ExpressionStatement
;;; { 8 ExpressionStatement
DI
;;; } 8 ExpressionStatement
;;; { 8 ExpressionStatement
;;; { 9 Expr ++r
;;; { 10 Expression (variable name)
;;; expr_type = "identifier" (serial_out_length)
;-- load_rr_var serial_out_length, (8 bit)
MOVE (Cserial_out_length), RU
;;; } 10 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var serial_out_length
MOVE R, (Cserial_out_length)
;;; } 9 Expr ++r
;;; } 8 ExpressionStatement
;;; { 8 ExpressionStatement
EI
;;; } 8 ExpressionStatement
;;; { 8 ExpressionStatement
MOVE #0x07, RR
;;; } 8 ExpressionStatement
;;; { 8 ExpressionStatement
OUT R, (OUT_INT_MASK)
;;; } 8 ExpressionStatement
;;; { 8 ExpressionStatement
;;; { 9 NumericExpression (constant 1 = 0x1)
;-- load_rr_constant
MOVE #0x0001, RR
;;; } 9 NumericExpression (constant 1 = 0x1)
;;; } 8 ExpressionStatement
;;; } 7 List<while Statement>
;-- pop 0 bytes
;;; } 6 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 6 FunctionDefinition
;;; { 7 TypeName
;;; { 8 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 8 TypeSpecifier (all)
;;; { 8 List<DeclItem>
;;; { 9 DeclItem
;;; what = DECL_NAME
;;; name = print_string
;;; } 9 DeclItem
;;; } 8 List<DeclItem>
;;; } 7 TypeName
;;; { 7 List<DeclItem>
;;; { 8 DeclItem
;;; what = DECL_NAME
;;; name = print_string
;;; } 8 DeclItem
;;; { 8 DeclItem
;;; what = DECL_FUN
;;; { 9 List<ParameterDeclaration>
;;; { 10 ParameterDeclaration
;;; isEllipsis = false
;;; { 11 TypeName
;;; { 12 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 12 TypeSpecifier (all)
;;; { 12 List<DeclItem>
;;; { 13 DeclItem
;;; what = DECL_POINTER
;;; { 14 List<Ptr>
;;; { 15 Ptr
;;; } 15 Ptr
;;; } 14 List<Ptr>
;;; } 13 DeclItem
;;; { 13 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 13 DeclItem
;;; } 12 List<DeclItem>
;;; } 11 TypeName
;;; } 10 ParameterDeclaration
;;; } 9 List<ParameterDeclaration>
;;; } 8 DeclItem
;;; } 7 List<DeclItem>
Cprint_string:
;;; { 7 CompoundStatement
;;; { 8 List<while Statement>
;;; { 9 while Statement
;-- branch
JMP L8_cont_13
L8_loop_13:
;;; { 10 ExpressionStatement
;;; { 11 Expr l(r)
;;; { 12 TypeName
;;; { 13 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 13 TypeSpecifier (all)
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;;; } 12 TypeName
;;; { 12 ParameterDeclaration
;;; isEllipsis = false
;;; { 13 TypeName
;;; { 14 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 14 TypeSpecifier (all)
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;;; } 13 TypeName
;;; } 12 ParameterDeclaration
;;; { 12 Expr * r
;;; { 13 Expr l - r
;;; { 14 Expr ++r
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (buffer)
;-- load_rr_var buffer = 2(FP), SP at 0 (16 bit)
MOVE 2(SP), RR
;;; } 15 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var buffer = 2(FP), SP at 0
MOVE RR, 2(SP)
;;; } 14 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 13 Expr l - r
;-- content
MOVE (RR), RS
;;; } 12 Expr * r
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 11 Expr l(r)
;;; } 10 ExpressionStatement
L8_cont_13:
;;; { 10 Expr * r
;;; { 11 Expression (variable name)
;;; expr_type = "identifier" (buffer)
;-- load_rr_var buffer = 2(FP), SP at 0 (16 bit)
MOVE 2(SP), RR
;;; } 11 Expression (variable name)
;-- content
MOVE (RR), RS
;;; } 10 Expr * r
;-- branch_true
JMP RRNZ, L8_loop_13
L8_brk_14:
;;; } 9 while Statement
;;; } 8 List<while Statement>
;-- pop 0 bytes
;;; } 7 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 7 FunctionDefinition
;;; { 8 TypeName
;;; { 9 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 9 TypeSpecifier (all)
;;; { 9 List<DeclItem>
;;; { 10 DeclItem
;;; what = DECL_NAME
;;; name = print_hex
;;; } 10 DeclItem
;;; } 9 List<DeclItem>
;;; } 8 TypeName
;;; { 8 List<DeclItem>
;;; { 9 DeclItem
;;; what = DECL_NAME
;;; name = print_hex
;;; } 9 DeclItem
;;; { 9 DeclItem
;;; what = DECL_FUN
;;; { 10 List<ParameterDeclaration>
;;; { 11 ParameterDeclaration
;;; isEllipsis = false
;;; { 12 TypeName
;;; { 13 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 13 TypeSpecifier (all)
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_POINTER
;;; { 15 List<Ptr>
;;; { 16 Ptr
;;; } 16 Ptr
;;; } 15 List<Ptr>
;;; } 14 DeclItem
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;;; } 12 TypeName
;;; } 11 ParameterDeclaration
;;; { 11 ParameterDeclaration
;;; isEllipsis = false
;;; { 12 TypeName
;;; { 13 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 13 TypeSpecifier (all)
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = value
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;;; } 12 TypeName
;;; } 11 ParameterDeclaration
;;; { 11 ParameterDeclaration
;;; isEllipsis = false
;;; { 12 TypeName
;;; { 13 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 13 TypeSpecifier (all)
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_POINTER
;;; { 15 List<Ptr>
;;; { 16 Ptr
;;; } 16 Ptr
;;; } 15 List<Ptr>
;;; } 14 DeclItem
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = hex
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;;; } 12 TypeName
;;; } 11 ParameterDeclaration
;;; } 10 List<ParameterDeclaration>
;;; } 9 DeclItem
;;; } 8 List<DeclItem>
Cprint_hex:
;;; { 8 CompoundStatement
;;; { 9 List<IfElseStatement>
;;; { 10 IfElseStatement
;;; { 11 Expr l >= r
;;; { 12 TypeName (internal)
;;; { 13 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 13 TypeSpecifier (all)
;;; } 12 TypeName (internal)
;;; { 12 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 12 Expression (variable name)
;-- l >= r
SHS RR, #0x1000
;;; } 11 Expr l >= r
;-- branch_false
JMP RRZ, L9_endif_15
;;; { 11 ExpressionStatement
;;; { 12 Expr l = r
;;; { 13 TypeName
;;; { 14 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 14 TypeSpecifier (all)
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;;; } 13 TypeName
;;; { 13 Expr l[r]
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = hex
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; { 14 Expr l[r]
;;; { 15 Expr l & r
;;; { 16 TypeName (internal)
;;; { 17 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 17 TypeSpecifier (all)
;;; } 16 TypeName (internal)
;;; { 16 Expr l >> r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 17 Expression (variable name)
;-- l >> r
ASR RR, #0x000C
;;; } 16 Expr l >> r
;-- l & r
AND RR, #0x000F
;;; } 15 Expr l & r
;-- scale_rr *1
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (hex)
;-- load_rr_var hex = 6(FP), SP at -2 (16 bit)
MOVE 8(SP), RR
;;; } 15 Expression (variable name)
;-- pop_ll (16 bit)
MOVE (SP)+, LL
;-- + (element)
ADD LL, RR
;;; } 14 Expr l[r]
;-- content
MOVE (RR), RS
;;; } 13 Expr l[r]
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 13 Expr * r
;;; { 14 Expr l - r
;;; { 15 Expr ++r
;;; { 16 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 16 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var dest = 2(FP), SP at -1
MOVE RR, 3(SP)
;;; } 15 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 14 Expr l - r
;;; } 13 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 12 Expr l = r
;;; } 11 ExpressionStatement
L9_endif_15:
;;; } 10 IfElseStatement
;;; { 10 IfElseStatement
;;; { 11 Expr l >= r
;;; { 12 TypeName (internal)
;;; { 13 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 13 TypeSpecifier (all)
;;; } 12 TypeName (internal)
;;; { 12 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 12 Expression (variable name)
;-- l >= r
SHS RR, #0x0100
;;; } 11 Expr l >= r
;-- branch_false
JMP RRZ, L9_endif_16
;;; { 11 ExpressionStatement
;;; { 12 Expr l = r
;;; { 13 TypeName
;;; { 14 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 14 TypeSpecifier (all)
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;;; } 13 TypeName
;;; { 13 Expr l[r]
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = hex
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; { 14 Expr l[r]
;;; { 15 Expr l & r
;;; { 16 TypeName (internal)
;;; { 17 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 17 TypeSpecifier (all)
;;; } 16 TypeName (internal)
;;; { 16 Expr l >> r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 17 Expression (variable name)
;-- l >> r
ASR RR, #0x0008
;;; } 16 Expr l >> r
;-- l & r
AND RR, #0x000F
;;; } 15 Expr l & r
;-- scale_rr *1
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (hex)
;-- load_rr_var hex = 6(FP), SP at -2 (16 bit)
MOVE 8(SP), RR
;;; } 15 Expression (variable name)
;-- pop_ll (16 bit)
MOVE (SP)+, LL
;-- + (element)
ADD LL, RR
;;; } 14 Expr l[r]
;-- content
MOVE (RR), RS
;;; } 13 Expr l[r]
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 13 Expr * r
;;; { 14 Expr l - r
;;; { 15 Expr ++r
;;; { 16 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 16 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var dest = 2(FP), SP at -1
MOVE RR, 3(SP)
;;; } 15 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 14 Expr l - r
;;; } 13 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 12 Expr l = r
;;; } 11 ExpressionStatement
L9_endif_16:
;;; } 10 IfElseStatement
;;; { 10 IfElseStatement
;;; { 11 Expr l >= r
;;; { 12 TypeName (internal)
;;; { 13 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 13 TypeSpecifier (all)
;;; } 12 TypeName (internal)
;;; { 12 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 12 Expression (variable name)
;-- l >= r
SHS RR, #0x0010
;;; } 11 Expr l >= r
;-- branch_false
JMP RRZ, L9_endif_17
;;; { 11 ExpressionStatement
;;; { 12 Expr l = r
;;; { 13 TypeName
;;; { 14 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 14 TypeSpecifier (all)
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;;; } 13 TypeName
;;; { 13 Expr l[r]
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = hex
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; { 14 Expr l[r]
;;; { 15 Expr l & r
;;; { 16 TypeName (internal)
;;; { 17 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 17 TypeSpecifier (all)
;;; } 16 TypeName (internal)
;;; { 16 Expr l >> r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 17 Expression (variable name)
;-- l >> r
ASR RR, #0x0004
;;; } 16 Expr l >> r
;-- l & r
AND RR, #0x000F
;;; } 15 Expr l & r
;-- scale_rr *1
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (hex)
;-- load_rr_var hex = 6(FP), SP at -2 (16 bit)
MOVE 8(SP), RR
;;; } 15 Expression (variable name)
;-- pop_ll (16 bit)
MOVE (SP)+, LL
;-- + (element)
ADD LL, RR
;;; } 14 Expr l[r]
;-- content
MOVE (RR), RS
;;; } 13 Expr l[r]
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 13 Expr * r
;;; { 14 Expr l - r
;;; { 15 Expr ++r
;;; { 16 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 16 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var dest = 2(FP), SP at -1
MOVE RR, 3(SP)
;;; } 15 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 14 Expr l - r
;;; } 13 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 12 Expr l = r
;;; } 11 ExpressionStatement
L9_endif_17:
;;; } 10 IfElseStatement
;;; { 10 ExpressionStatement
;;; { 11 Expr l = r
;;; { 12 TypeName
;;; { 13 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 13 TypeSpecifier (all)
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;;; } 12 TypeName
;;; { 12 Expr l[r]
;;; { 13 TypeName
;;; { 14 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 14 TypeSpecifier (all)
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = hex
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;;; } 13 TypeName
;;; { 13 Expr l[r]
;;; { 14 Expr l & r
;;; { 15 TypeName (internal)
;;; { 16 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 16 TypeSpecifier (all)
;;; } 15 TypeName (internal)
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 15 Expression (variable name)
;-- l & r
AND RR, #0x000F
;;; } 14 Expr l & r
;-- scale_rr *1
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (hex)
;-- load_rr_var hex = 6(FP), SP at -2 (16 bit)
MOVE 8(SP), RR
;;; } 14 Expression (variable name)
;-- pop_ll (16 bit)
MOVE (SP)+, LL
;-- + (element)
ADD LL, RR
;;; } 13 Expr l[r]
;-- content
MOVE (RR), RS
;;; } 12 Expr l[r]
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 12 Expr * r
;;; { 13 Expr l - r
;;; { 14 Expr ++r
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 15 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var dest = 2(FP), SP at -1
MOVE RR, 3(SP)
;;; } 14 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 13 Expr l - r
;;; } 12 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 11 Expr l = r
;;; } 10 ExpressionStatement
;;; { 10 ExpressionStatement
;;; { 11 Expr l = r
;;; { 12 TypeName
;;; { 13 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 13 TypeSpecifier (all)
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;;; } 12 TypeName
;;; { 12 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 12 NumericExpression (constant 0 = 0x0)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 12 Expr * r
;;; { 13 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 13 Expression (variable name)
;;; } 12 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 11 Expr l = r
;;; } 10 ExpressionStatement
;;; } 9 List<IfElseStatement>
;-- pop 0 bytes
;;; } 8 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 8 FunctionDefinition
;;; { 9 TypeName
;;; { 10 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 10 TypeSpecifier (all)
;;; { 10 List<DeclItem>
;;; { 11 DeclItem
;;; what = DECL_NAME
;;; name = print_unsigned
;;; } 11 DeclItem
;;; } 10 List<DeclItem>
;;; } 9 TypeName
;;; { 9 List<DeclItem>
;;; { 10 DeclItem
;;; what = DECL_NAME
;;; name = print_unsigned
;;; } 10 DeclItem
;;; { 10 DeclItem
;;; what = DECL_FUN
;;; { 11 List<ParameterDeclaration>
;;; { 12 ParameterDeclaration
;;; isEllipsis = false
;;; { 13 TypeName
;;; { 14 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 14 TypeSpecifier (all)
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_POINTER
;;; { 16 List<Ptr>
;;; { 17 Ptr
;;; } 17 Ptr
;;; } 16 List<Ptr>
;;; } 15 DeclItem
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;;; } 13 TypeName
;;; } 12 ParameterDeclaration
;;; { 12 ParameterDeclaration
;;; isEllipsis = false
;;; { 13 TypeName
;;; { 14 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 14 TypeSpecifier (all)
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = value
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;;; } 13 TypeName
;;; } 12 ParameterDeclaration
;;; } 11 List<ParameterDeclaration>
;;; } 10 DeclItem
;;; } 9 List<DeclItem>
Cprint_unsigned:
;;; { 9 CompoundStatement
;;; { 10 List<IfElseStatement>
;;; { 11 IfElseStatement
;;; { 12 Expr l >= r
;;; { 13 TypeName (internal)
;;; { 14 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 14 TypeSpecifier (all)
;;; } 13 TypeName (internal)
;;; { 13 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 13 Expression (variable name)
;-- l >= r
SHS RR, #0x2710
;;; } 12 Expr l >= r
;-- branch_false
JMP RRZ, L10_endif_18
;;; { 12 CompoundStatement
;;; { 13 List<ExpressionStatement>
;;; { 14 ExpressionStatement
;;; { 15 Expr l = r
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 Expr l + r
;;; { 17 Expr l / r
;;; { 18 TypeName (internal)
;;; { 19 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 19 TypeSpecifier (all)
;;; } 18 TypeName (internal)
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 18 Expression (variable name)
;-- l / r
MOVE RR, LL
MOVE #0x2710, RR
;-- l / r
DI
DIV_IU
CALL mult_div
MD_FIN
EI
;;; } 17 Expr l / r
;-- l + r
ADD RR, #0x0030
;;; } 16 Expr l + r
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 16 Expr * r
;;; { 17 Expr l - r
;;; { 18 Expr ++r
;;; { 19 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 19 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var dest = 2(FP), SP at -1
MOVE RR, 3(SP)
;;; } 18 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 17 Expr l - r
;;; } 16 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 15 Expr l = r
;;; } 14 ExpressionStatement
;;; { 14 ExpressionStatement
;;; { 15 Expr l %= r
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = value
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 Expr l % r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 17 Expression (variable name)
;-- l % r
MOVE RR, LL
MOVE #0x2710, RR
;-- l % r
DI
DIV_IU
CALL mult_div
MOD_FIN
EI
;;; } 16 Expr l % r
;-- store_rr_var value = 4(FP), SP at 0
MOVE RR, 4(SP)
;;; } 15 Expr l %= r
;;; } 14 ExpressionStatement
;;; } 13 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 12 CompoundStatement
L10_endif_18:
;;; } 11 IfElseStatement
;;; { 11 IfElseStatement
;;; { 12 Expr l >= r
;;; { 13 TypeName (internal)
;;; { 14 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 14 TypeSpecifier (all)
;;; } 13 TypeName (internal)
;;; { 13 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 13 Expression (variable name)
;-- l >= r
SHS RR, #0x03E8
;;; } 12 Expr l >= r
;-- branch_false
JMP RRZ, L10_endif_19
;;; { 12 CompoundStatement
;;; { 13 List<ExpressionStatement>
;;; { 14 ExpressionStatement
;;; { 15 Expr l = r
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 Expr l + r
;;; { 17 Expr l / r
;;; { 18 TypeName (internal)
;;; { 19 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 19 TypeSpecifier (all)
;;; } 18 TypeName (internal)
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 18 Expression (variable name)
;-- l / r
MOVE RR, LL
MOVE #0x03E8, RR
;-- l / r
DI
DIV_IU
CALL mult_div
MD_FIN
EI
;;; } 17 Expr l / r
;-- l + r
ADD RR, #0x0030
;;; } 16 Expr l + r
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 16 Expr * r
;;; { 17 Expr l - r
;;; { 18 Expr ++r
;;; { 19 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 19 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var dest = 2(FP), SP at -1
MOVE RR, 3(SP)
;;; } 18 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 17 Expr l - r
;;; } 16 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 15 Expr l = r
;;; } 14 ExpressionStatement
;;; { 14 ExpressionStatement
;;; { 15 Expr l %= r
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = value
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 Expr l % r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 17 Expression (variable name)
;-- l % r
MOVE RR, LL
MOVE #0x03E8, RR
;-- l % r
DI
DIV_IU
CALL mult_div
MOD_FIN
EI
;;; } 16 Expr l % r
;-- store_rr_var value = 4(FP), SP at 0
MOVE RR, 4(SP)
;;; } 15 Expr l %= r
;;; } 14 ExpressionStatement
;;; } 13 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 12 CompoundStatement
L10_endif_19:
;;; } 11 IfElseStatement
;;; { 11 IfElseStatement
;;; { 12 Expr l >= r
;;; { 13 TypeName (internal)
;;; { 14 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 14 TypeSpecifier (all)
;;; } 13 TypeName (internal)
;;; { 13 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 13 Expression (variable name)
;-- l >= r
SHS RR, #0x0064
;;; } 12 Expr l >= r
;-- branch_false
JMP RRZ, L10_endif_20
;;; { 12 CompoundStatement
;;; { 13 List<ExpressionStatement>
;;; { 14 ExpressionStatement
;;; { 15 Expr l = r
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 Expr l + r
;;; { 17 Expr l / r
;;; { 18 TypeName (internal)
;;; { 19 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 19 TypeSpecifier (all)
;;; } 18 TypeName (internal)
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 18 Expression (variable name)
;-- l / r
MOVE RR, LL
MOVE #0x0064, RR
;-- l / r
DI
DIV_IU
CALL mult_div
MD_FIN
EI
;;; } 17 Expr l / r
;-- l + r
ADD RR, #0x0030
;;; } 16 Expr l + r
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 16 Expr * r
;;; { 17 Expr l - r
;;; { 18 Expr ++r
;;; { 19 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 19 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var dest = 2(FP), SP at -1
MOVE RR, 3(SP)
;;; } 18 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 17 Expr l - r
;;; } 16 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 15 Expr l = r
;;; } 14 ExpressionStatement
;;; { 14 ExpressionStatement
;;; { 15 Expr l %= r
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = value
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 Expr l % r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 17 Expression (variable name)
;-- l % r
MOVE RR, LL
MOVE #0x0064, RR
;-- l % r
DI
DIV_IU
CALL mult_div
MOD_FIN
EI
;;; } 16 Expr l % r
;-- store_rr_var value = 4(FP), SP at 0
MOVE RR, 4(SP)
;;; } 15 Expr l %= r
;;; } 14 ExpressionStatement
;;; } 13 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 12 CompoundStatement
L10_endif_20:
;;; } 11 IfElseStatement
;;; { 11 IfElseStatement
;;; { 12 Expr l >= r
;;; { 13 TypeName (internal)
;;; { 14 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 14 TypeSpecifier (all)
;;; } 13 TypeName (internal)
;;; { 13 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 13 Expression (variable name)
;-- l >= r
SHS RR, #0x000A
;;; } 12 Expr l >= r
;-- branch_false
JMP RRZ, L10_endif_21
;;; { 12 CompoundStatement
;;; { 13 List<ExpressionStatement>
;;; { 14 ExpressionStatement
;;; { 15 Expr l = r
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 Expr l + r
;;; { 17 Expr l / r
;;; { 18 TypeName (internal)
;;; { 19 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 19 TypeSpecifier (all)
;;; } 18 TypeName (internal)
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 18 Expression (variable name)
;-- l / r
MOVE RR, LL
MOVE #0x000A, RR
;-- l / r
DI
DIV_IU
CALL mult_div
MD_FIN
EI
;;; } 17 Expr l / r
;-- l + r
ADD RR, #0x0030
;;; } 16 Expr l + r
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 16 Expr * r
;;; { 17 Expr l - r
;;; { 18 Expr ++r
;;; { 19 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 19 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var dest = 2(FP), SP at -1
MOVE RR, 3(SP)
;;; } 18 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 17 Expr l - r
;;; } 16 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 15 Expr l = r
;;; } 14 ExpressionStatement
;;; { 14 ExpressionStatement
;;; { 15 Expr l %= r
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = value
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 Expr l % r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 17 Expression (variable name)
;-- l % r
MOVE RR, LL
MOVE #0x000A, RR
;-- l % r
DI
DIV_IU
CALL mult_div
MOD_FIN
EI
;;; } 16 Expr l % r
;-- store_rr_var value = 4(FP), SP at 0
MOVE RR, 4(SP)
;;; } 15 Expr l %= r
;;; } 14 ExpressionStatement
;;; } 13 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 12 CompoundStatement
L10_endif_21:
;;; } 11 IfElseStatement
;;; { 11 ExpressionStatement
;;; { 12 Expr l = r
;;; { 13 TypeName
;;; { 14 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 14 TypeSpecifier (all)
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;;; } 13 TypeName
;;; { 13 Expr l + r
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (value)
;-- load_rr_var value = 4(FP), SP at 0 (16 bit)
MOVE 4(SP), RR
;;; } 14 Expression (variable name)
;-- l + r
ADD RR, #0x0030
;;; } 13 Expr l + r
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 13 Expr * r
;;; { 14 Expr l - r
;;; { 15 Expr ++r
;;; { 16 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 16 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var dest = 2(FP), SP at -1
MOVE RR, 3(SP)
;;; } 15 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 14 Expr l - r
;;; } 13 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 12 Expr l = r
;;; } 11 ExpressionStatement
;;; { 11 ExpressionStatement
;;; { 12 Expr l = r
;;; { 13 TypeName
;;; { 14 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 14 TypeSpecifier (all)
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;;; } 13 TypeName
;;; { 13 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 13 NumericExpression (constant 0 = 0x0)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 13 Expr * r
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (dest)
;-- load_rr_var dest = 2(FP), SP at -1 (16 bit)
MOVE 3(SP), RR
;;; } 14 Expression (variable name)
;;; } 13 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RS
;-- assign (8 bit)
MOVE R, (LL)
;;; } 12 Expr l = r
;;; } 11 ExpressionStatement
;;; } 10 List<IfElseStatement>
;-- pop 0 bytes
;;; } 9 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 9 FunctionDefinition
;;; { 10 TypeName
;;; { 11 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 11 TypeSpecifier (all)
;;; { 11 List<DeclItem>
;;; { 12 DeclItem
;;; what = DECL_NAME
;;; name = print_item
;;; } 12 DeclItem
;;; } 11 List<DeclItem>
;;; } 10 TypeName
;;; { 10 List<DeclItem>
;;; { 11 DeclItem
;;; what = DECL_NAME
;;; name = print_item
;;; } 11 DeclItem
;;; { 11 DeclItem
;;; what = DECL_FUN
;;; { 12 List<ParameterDeclaration>
;;; { 13 ParameterDeclaration
;;; isEllipsis = false
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_POINTER
;;; { 17 List<Ptr>
;;; { 18 Ptr
;;; } 18 Ptr
;;; } 17 List<Ptr>
;;; } 16 DeclItem
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; } 13 ParameterDeclaration
;;; { 13 ParameterDeclaration
;;; isEllipsis = false
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = flags
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; } 13 ParameterDeclaration
;;; { 13 ParameterDeclaration
;;; isEllipsis = false
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; } 13 ParameterDeclaration
;;; { 13 ParameterDeclaration
;;; isEllipsis = false
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = pad
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; } 13 ParameterDeclaration
;;; { 13 ParameterDeclaration
;;; isEllipsis = false
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_POINTER
;;; { 17 List<Ptr>
;;; { 18 Ptr
;;; } 18 Ptr
;;; } 17 List<Ptr>
;;; } 16 DeclItem
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = alt
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; } 13 ParameterDeclaration
;;; { 13 ParameterDeclaration
;;; isEllipsis = false
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = field_w
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; } 13 ParameterDeclaration
;;; { 13 ParameterDeclaration
;;; isEllipsis = false
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = min_w
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; } 13 ParameterDeclaration
;;; { 13 ParameterDeclaration
;;; isEllipsis = false
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = min_p
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; } 13 ParameterDeclaration
;;; } 12 List<ParameterDeclaration>
;;; } 11 DeclItem
;;; } 10 List<DeclItem>
Cprint_item:
;;; { 10 CompoundStatement
;;; { 11 InitDeclarator
;;; { 12 List<DeclItem>
;;; { 13 DeclItem
;;; what = DECL_NAME
;;; name = filllen
;;; } 13 DeclItem
;;; } 12 List<DeclItem>
;;; { 12 Initializer (skalar)
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 12 Initializer (skalar)
;;; } 11 InitDeclarator
;;; { 11 InitDeclarator
;;; { 12 List<DeclItem>
;;; { 13 DeclItem
;;; what = DECL_NAME
;;; name = signlen
;;; } 13 DeclItem
;;; } 12 List<DeclItem>
;;; { 12 Initializer (skalar)
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 12 Initializer (skalar)
;;; } 11 InitDeclarator
;;; { 11 InitDeclarator
;;; { 12 List<DeclItem>
;;; { 13 DeclItem
;;; what = DECL_NAME
;;; name = altlen
;;; } 13 DeclItem
;;; } 12 List<DeclItem>
;;; { 12 Initializer (skalar)
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 12 Initializer (skalar)
;;; } 11 InitDeclarator
;;; { 11 InitDeclarator
;;; { 12 List<DeclItem>
;;; { 13 DeclItem
;;; what = DECL_NAME
;;; name = padlen
;;; } 13 DeclItem
;;; } 12 List<DeclItem>
;;; { 12 Initializer (skalar)
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 12 Initializer (skalar)
;;; } 11 InitDeclarator
;;; { 11 InitDeclarator
;;; { 12 List<DeclItem>
;;; { 13 DeclItem
;;; what = DECL_NAME
;;; name = buflen
;;; } 13 DeclItem
;;; } 12 List<DeclItem>
;;; { 12 Initializer (skalar)
;;; { 13 Expr l(r)
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = strlen
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; { 14 ParameterDeclaration
;;; isEllipsis = false
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_POINTER
;;; { 18 List<Ptr>
;;; { 19 Ptr
;;; } 19 Ptr
;;; } 18 List<Ptr>
;;; } 17 DeclItem
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; } 14 ParameterDeclaration
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (buffer)
;-- load_rr_var buffer = 2(FP), SP at -8 (16 bit)
MOVE 10(SP), RR
;;; } 14 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cstrlen
;-- pop 2 bytes
ADD SP, #2
;;; } 13 Expr l(r)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 12 Initializer (skalar)
;;; } 11 InitDeclarator
;;; { 11 InitDeclarator
;;; { 12 List<DeclItem>
;;; { 13 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 13 DeclItem
;;; } 12 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 11 InitDeclarator
;;; { 11 InitDeclarator
;;; { 12 List<DeclItem>
;;; { 13 DeclItem
;;; what = DECL_NAME
;;; name = i
;;; } 13 DeclItem
;;; } 12 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 11 InitDeclarator
;;; { 11 List<IfElseStatement>
;;; { 12 IfElseStatement
;;; { 13 Expr l > r
;;; { 14 TypeName (internal)
;;; { 15 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 15 TypeSpecifier (all)
;;; } 14 TypeName (internal)
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (min_w)
;-- load_rr_var min_w = 11(FP), SP at -14 (16 bit)
MOVE 25(SP), RR
;;; } 14 Expression (variable name)
;-- move_rr_to_ll
MOVE RR, LL
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (buflen)
;-- load_rr_var buflen = -10(FP), SP at -14 (16 bit)
MOVE 4(SP), RR
;;; } 14 Expression (variable name)
;-- l > r
SGT LL, RR
;;; } 13 Expr l > r
;-- branch_false
JMP RRZ, L11_endif_22
;;; { 13 ExpressionStatement
;;; { 14 Expr l = r
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = padlen
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; { 15 Expr l - r
;;; { 16 Expression (variable name)
;;; expr_type = "identifier" (min_w)
;-- load_rr_var min_w = 11(FP), SP at -14 (16 bit)
MOVE 25(SP), RR
;;; } 16 Expression (variable name)
;-- move_rr_to_ll
MOVE RR, LL
;;; { 16 Expression (variable name)
;;; expr_type = "identifier" (buflen)
;-- load_rr_var buflen = -10(FP), SP at -14 (16 bit)
MOVE 4(SP), RR
;;; } 16 Expression (variable name)
;-- scale_rr *1
;-- l - r
SUB LL, RR
;-- scale *1
;;; } 15 Expr l - r
;-- store_rr_var padlen = -8(FP), SP at -14
MOVE RR, 6(SP)
;;; } 14 Expr l = r
;;; } 13 ExpressionStatement
L11_endif_22:
;;; } 12 IfElseStatement
;;; { 12 IfElseStatement
;;; { 13 Expression (variable name)
;;; expr_type = "identifier" (sign)
;-- load_rr_var sign = 5(FP), SP at -14 (8 bit)
MOVE 19(SP), RS
;;; } 13 Expression (variable name)
;-- branch_false
JMP RRZ, L11_endif_23
;;; { 13 ExpressionStatement
;;; { 14 Expr l = r
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = signlen
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; { 15 NumericExpression (constant 1 = 0x1)
;-- load_rr_constant
MOVE #0x0001, RR
;;; } 15 NumericExpression (constant 1 = 0x1)
;-- store_rr_var signlen = -4(FP), SP at -14
MOVE RR, 10(SP)
;;; } 14 Expr l = r
;;; } 13 ExpressionStatement
L11_endif_23:
;;; } 12 IfElseStatement
;;; { 12 IfElseStatement
;;; { 13 Expr l && r
;;; { 14 TypeName (internal)
;;; { 15 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 15 TypeSpecifier (all)
;;; } 14 TypeName (internal)
;;; { 14 IfElseStatement
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (alt)
;-- load_rr_var alt = 7(FP), SP at -14 (16 bit)
MOVE 21(SP), RR
;;; } 15 Expression (variable name)
;-- branch_false
JMP RRZ, L11_endif_25
;;; { 15 ExpressionStatement
;;; { 16 Expr l & r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = 4(FP), SP at -14 (8 bit)
MOVE 18(SP), RS
;;; } 17 Expression (variable name)
;-- l & r
AND RR, #0x0001
;;; } 16 Expr l & r
;;; } 15 ExpressionStatement
L11_endif_25:
;;; } 14 IfElseStatement
;;; } 13 Expr l && r
;-- branch_false
JMP RRZ, L11_endif_24
;;; { 13 ExpressionStatement
;;; { 14 Expr l = r
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = altlen
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; { 15 Expr l(r)
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = strlen
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 ParameterDeclaration
;;; isEllipsis = false
;;; { 17 TypeName
;;; { 18 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 18 TypeSpecifier (all)
;;; { 18 List<DeclItem>
;;; { 19 DeclItem
;;; what = DECL_POINTER
;;; { 20 List<Ptr>
;;; { 21 Ptr
;;; } 21 Ptr
;;; } 20 List<Ptr>
;;; } 19 DeclItem
;;; { 19 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 19 DeclItem
;;; } 18 List<DeclItem>
;;; } 17 TypeName
;;; } 16 ParameterDeclaration
;;; { 16 Expression (variable name)
;;; expr_type = "identifier" (alt)
;-- load_rr_var alt = 7(FP), SP at -14 (16 bit)
MOVE 21(SP), RR
;;; } 16 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cstrlen
;-- pop 2 bytes
ADD SP, #2
;;; } 15 Expr l(r)
;-- store_rr_var altlen = -6(FP), SP at -14
MOVE RR, 8(SP)
;;; } 14 Expr l = r
;;; } 13 ExpressionStatement
L11_endif_24:
;;; } 12 IfElseStatement
;;; { 12 ExpressionStatement
;;; { 13 Expr l = r
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; { 14 Expr l + r
;;; { 15 Expr l + r
;;; { 16 Expr l + r
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (signlen)
;-- load_rr_var signlen = -4(FP), SP at -14 (16 bit)
MOVE 10(SP), RR
;;; } 17 Expression (variable name)
;-- move_rr_to_ll
MOVE RR, LL
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (altlen)
;-- load_rr_var altlen = -6(FP), SP at -14 (16 bit)
MOVE 8(SP), RR
;;; } 17 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 16 Expr l + r
;-- move_rr_to_ll
MOVE RR, LL
;;; { 16 Expression (variable name)
;;; expr_type = "identifier" (padlen)
;-- load_rr_var padlen = -8(FP), SP at -14 (16 bit)
MOVE 6(SP), RR
;;; } 16 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 15 Expr l + r
;-- move_rr_to_ll
MOVE RR, LL
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (buflen)
;-- load_rr_var buflen = -10(FP), SP at -14 (16 bit)
MOVE 4(SP), RR
;;; } 15 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 14 Expr l + r
;-- store_rr_var len = -12(FP), SP at -14
MOVE RR, 2(SP)
;;; } 13 Expr l = r
;;; } 12 ExpressionStatement
;;; { 12 IfElseStatement
;;; { 13 Expr l & r
;;; { 14 TypeName (internal)
;;; { 15 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 15 TypeSpecifier (all)
;;; } 14 TypeName (internal)
;;; { 14 Expr ~ r
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = 4(FP), SP at -14 (8 bit)
MOVE 18(SP), RS
;;; } 15 Expression (variable name)
;-- 16 bit ~ r
NOT RR
;;; } 14 Expr ~ r
;-- l & r
AND RR, #0x0002
;;; } 13 Expr l & r
;-- branch_false
JMP RRZ, L11_endif_26
;;; { 13 CompoundStatement
;;; { 14 List<for Statement>
;;; { 15 for Statement
;;; { 16 ExpressionStatement
;;; { 17 Expr l = r
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = i
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_rr_var len = -12(FP), SP at -14 (16 bit)
MOVE 2(SP), RR
;;; } 18 Expression (variable name)
;-- store_rr_var i = -14(FP), SP at -14
MOVE RR, 0(SP)
;;; } 17 Expr l = r
;;; } 16 ExpressionStatement
;-- branch
JMP L11_tst_27
L11_loop_27:
;;; { 16 ExpressionStatement
;;; { 17 Expr l(r)
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 ParameterDeclaration
;;; isEllipsis = false
;;; { 19 TypeName
;;; { 20 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 20 TypeSpecifier (all)
;;; { 20 List<DeclItem>
;;; { 21 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 21 DeclItem
;;; } 20 List<DeclItem>
;;; } 19 TypeName
;;; } 18 ParameterDeclaration
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (pad)
;-- load_rr_var pad = 6(FP), SP at -14 (8 bit)
MOVE 20(SP), RS
;;; } 18 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 17 Expr l(r)
;;; } 16 ExpressionStatement
L11_cont_27:
;;; { 16 Expr l - r
;;; { 17 Expr ++r
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (i)
;-- load_rr_var i = -14(FP), SP at -14 (16 bit)
MOVE 0(SP), RR
;;; } 18 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var i = -14(FP), SP at -14
MOVE RR, 0(SP)
;;; } 17 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 16 Expr l - r
L11_tst_27:
;;; { 16 Expr l < r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (i)
;-- load_rr_var i = -14(FP), SP at -14 (16 bit)
MOVE 0(SP), RR
;;; } 17 Expression (variable name)
;-- move_rr_to_ll
MOVE RR, LL
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (field_w)
;-- load_rr_var field_w = 9(FP), SP at -14 (16 bit)
MOVE 23(SP), RR
;;; } 17 Expression (variable name)
;-- l < r
SLT LL, RR
;;; } 16 Expr l < r
;-- branch_true
JMP RRNZ, L11_loop_27
L11_brk_28:
;;; } 15 for Statement
;;; } 14 List<for Statement>
;-- pop 0 bytes
;;; } 13 CompoundStatement
L11_endif_26:
;;; } 12 IfElseStatement
;;; { 12 IfElseStatement
;;; { 13 Expression (variable name)
;;; expr_type = "identifier" (sign)
;-- load_rr_var sign = 5(FP), SP at -14 (8 bit)
MOVE 19(SP), RS
;;; } 13 Expression (variable name)
;-- branch_false
JMP RRZ, L11_endif_29
;;; { 13 ExpressionStatement
;;; { 14 Expr l(r)
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; { 15 ParameterDeclaration
;;; isEllipsis = false
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; } 15 ParameterDeclaration
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (sign)
;-- load_rr_var sign = 5(FP), SP at -14 (8 bit)
MOVE 19(SP), RS
;;; } 15 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 14 Expr l(r)
;;; } 13 ExpressionStatement
L11_endif_29:
;;; } 12 IfElseStatement
;;; { 12 IfElseStatement
;;; { 13 Expression (variable name)
;;; expr_type = "identifier" (alt)
;-- load_rr_var alt = 7(FP), SP at -14 (16 bit)
MOVE 21(SP), RR
;;; } 13 Expression (variable name)
;-- branch_false
JMP RRZ, L11_endif_30
;;; { 13 CompoundStatement
;;; { 14 List<IfElseStatement>
;;; { 15 IfElseStatement
;;; { 16 Expr l & r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = 4(FP), SP at -14 (8 bit)
MOVE 18(SP), RS
;;; } 17 Expression (variable name)
;-- l & r
AND RR, #0x0001
;;; } 16 Expr l & r
;-- branch_false
JMP RRZ, L11_endif_31
;;; { 16 ExpressionStatement
;;; { 17 Expr l(r)
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = print_string
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 ParameterDeclaration
;;; isEllipsis = false
;;; { 19 TypeName
;;; { 20 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 20 TypeSpecifier (all)
;;; { 20 List<DeclItem>
;;; { 21 DeclItem
;;; what = DECL_POINTER
;;; { 22 List<Ptr>
;;; { 23 Ptr
;;; } 23 Ptr
;;; } 22 List<Ptr>
;;; } 21 DeclItem
;;; { 21 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 21 DeclItem
;;; } 20 List<DeclItem>
;;; } 19 TypeName
;;; } 18 ParameterDeclaration
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (alt)
;-- load_rr_var alt = 7(FP), SP at -14 (16 bit)
MOVE 21(SP), RR
;;; } 18 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 0 bytes
;-- call
CALL Cprint_string
;-- pop 2 bytes
ADD SP, #2
;;; } 17 Expr l(r)
;;; } 16 ExpressionStatement
L11_endif_31:
;;; } 15 IfElseStatement
;;; } 14 List<IfElseStatement>
;-- pop 0 bytes
;;; } 13 CompoundStatement
L11_endif_30:
;;; } 12 IfElseStatement
;;; { 12 for Statement
;;; { 13 ExpressionStatement
;;; { 14 Expr l = r
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = i
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; { 15 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 15 NumericExpression (constant 0 = 0x0)
;-- store_rr_var i = -14(FP), SP at -14
MOVE RR, 0(SP)
;;; } 14 Expr l = r
;;; } 13 ExpressionStatement
;-- branch
JMP L11_tst_32
L11_loop_32:
;;; { 13 ExpressionStatement
;;; { 14 Expr l(r)
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; { 15 ParameterDeclaration
;;; isEllipsis = false
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; } 15 ParameterDeclaration
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (min_p)
;-- load_rr_var min_p = 13(FP), SP at -14 (8 bit)
MOVE 27(SP), RS
;;; } 15 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 14 Expr l(r)
;;; } 13 ExpressionStatement
L11_cont_32:
;;; { 13 Expr l - r
;;; { 14 Expr ++r
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (i)
;-- load_rr_var i = -14(FP), SP at -14 (16 bit)
MOVE 0(SP), RR
;;; } 15 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var i = -14(FP), SP at -14
MOVE RR, 0(SP)
;;; } 14 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 13 Expr l - r
L11_tst_32:
;;; { 13 Expr l < r
;;; { 14 TypeName (internal)
;;; { 15 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 15 TypeSpecifier (all)
;;; } 14 TypeName (internal)
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (i)
;-- load_rr_var i = -14(FP), SP at -14 (16 bit)
MOVE 0(SP), RR
;;; } 14 Expression (variable name)
;-- move_rr_to_ll
MOVE RR, LL
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (padlen)
;-- load_rr_var padlen = -8(FP), SP at -14 (16 bit)
MOVE 6(SP), RR
;;; } 14 Expression (variable name)
;-- l < r
SLT LL, RR
;;; } 13 Expr l < r
;-- branch_true
JMP RRNZ, L11_loop_32
L11_brk_33:
;;; } 12 for Statement
;;; { 12 ExpressionStatement
;;; { 13 Expr l(r)
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = print_string
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; { 14 ParameterDeclaration
;;; isEllipsis = false
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_POINTER
;;; { 18 List<Ptr>
;;; { 19 Ptr
;;; } 19 Ptr
;;; } 18 List<Ptr>
;;; } 17 DeclItem
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; } 14 ParameterDeclaration
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (buffer)
;-- load_rr_var buffer = 2(FP), SP at -14 (16 bit)
MOVE 16(SP), RR
;;; } 14 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 0 bytes
;-- call
CALL Cprint_string
;-- pop 2 bytes
ADD SP, #2
;;; } 13 Expr l(r)
;;; } 12 ExpressionStatement
;;; { 12 IfElseStatement
;;; { 13 Expr l & r
;;; { 14 TypeName (internal)
;;; { 15 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 15 TypeSpecifier (all)
;;; } 14 TypeName (internal)
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = 4(FP), SP at -14 (8 bit)
MOVE 18(SP), RS
;;; } 14 Expression (variable name)
;-- l & r
AND RR, #0x0002
;;; } 13 Expr l & r
;-- branch_false
JMP RRZ, L11_endif_34
;;; { 13 CompoundStatement
;;; { 14 List<for Statement>
;;; { 15 for Statement
;;; { 16 ExpressionStatement
;;; { 17 Expr l = r
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = i
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_rr_var len = -12(FP), SP at -14 (16 bit)
MOVE 2(SP), RR
;;; } 18 Expression (variable name)
;-- store_rr_var i = -14(FP), SP at -14
MOVE RR, 0(SP)
;;; } 17 Expr l = r
;;; } 16 ExpressionStatement
;-- branch
JMP L11_tst_35
L11_loop_35:
;;; { 16 ExpressionStatement
;;; { 17 Expr l(r)
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 ParameterDeclaration
;;; isEllipsis = false
;;; { 19 TypeName
;;; { 20 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 20 TypeSpecifier (all)
;;; { 20 List<DeclItem>
;;; { 21 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 21 DeclItem
;;; } 20 List<DeclItem>
;;; } 19 TypeName
;;; } 18 ParameterDeclaration
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (pad)
;-- load_rr_var pad = 6(FP), SP at -14 (8 bit)
MOVE 20(SP), RS
;;; } 18 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 17 Expr l(r)
;;; } 16 ExpressionStatement
L11_cont_35:
;;; { 16 Expr l - r
;;; { 17 Expr ++r
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (i)
;-- load_rr_var i = -14(FP), SP at -14 (16 bit)
MOVE 0(SP), RR
;;; } 18 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var i = -14(FP), SP at -14
MOVE RR, 0(SP)
;;; } 17 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 16 Expr l - r
L11_tst_35:
;;; { 16 Expr l < r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (i)
;-- load_rr_var i = -14(FP), SP at -14 (16 bit)
MOVE 0(SP), RR
;;; } 17 Expression (variable name)
;-- move_rr_to_ll
MOVE RR, LL
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (field_w)
;-- load_rr_var field_w = 9(FP), SP at -14 (16 bit)
MOVE 23(SP), RR
;;; } 17 Expression (variable name)
;-- l < r
SLT LL, RR
;;; } 16 Expr l < r
;-- branch_true
JMP RRNZ, L11_loop_35
L11_brk_36:
;;; } 15 for Statement
;;; } 14 List<for Statement>
;-- pop 0 bytes
;;; } 13 CompoundStatement
L11_endif_34:
;;; } 12 IfElseStatement
;;; { 12 return Statement
;;; { 13 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_rr_var len = -12(FP), SP at -14 (16 bit)
MOVE 2(SP), RR
;;; } 13 Expression (variable name)
;-- ret
ADD SP, #14
RET
;;; } 12 return Statement
;;; } 11 List<IfElseStatement>
;-- pop 14 bytes
ADD SP, #14
;;; } 10 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 10 FunctionDefinition
;;; { 11 TypeName
;;; { 12 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 12 TypeSpecifier (all)
;;; { 12 List<DeclItem>
;;; { 13 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 13 DeclItem
;;; } 12 List<DeclItem>
;;; } 11 TypeName
;;; { 11 List<DeclItem>
;;; { 12 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 12 DeclItem
;;; { 12 DeclItem
;;; what = DECL_FUN
;;; { 13 List
;;; { 14 ParameterDeclaration
;;; isEllipsis = true
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_POINTER
;;; { 18 List<Ptr>
;;; { 19 Ptr
;;; } 19 Ptr
;;; } 18 List<Ptr>
;;; } 17 DeclItem
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; } 14 ParameterDeclaration
;;; } 13 List
;;; } 12 DeclItem
;;; } 11 List<DeclItem>
Cprintf:
;;; { 11 CompoundStatement
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_POINTER
;;; { 15 List<Ptr>
;;; { 16 Ptr
;;; } 16 Ptr
;;; { 16 Ptr
;;; } 16 Ptr
;;; } 15 List<Ptr>
;;; } 14 DeclItem
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = args
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;;; { 13 Initializer (skalar)
;;; { 14 Expr l + r
;;; { 15 Expr & r
;-- load_address format = 2(FP), SP at 0
LEA 2(SP), RR
;;; } 15 Expr & r
;-- l + r
ADD RR, #0x0002
;;; } 14 Expr l + r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 13 Initializer (skalar)
;;; } 12 InitDeclarator
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;;; { 13 Initializer (skalar)
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 13 Initializer (skalar)
;;; } 12 InitDeclarator
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;-- push_zero 1 bytes
CLRB -(SP)
;;; } 12 InitDeclarator
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = flags
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;-- push_zero 1 bytes
CLRB -(SP)
;;; } 12 InitDeclarator
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;-- push_zero 1 bytes
CLRB -(SP)
;;; } 12 InitDeclarator
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = pad
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;-- push_zero 1 bytes
CLRB -(SP)
;;; } 12 InitDeclarator
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_POINTER
;;; { 15 List<Ptr>
;;; { 16 Ptr
;;; } 16 Ptr
;;; } 15 List<Ptr>
;;; } 14 DeclItem
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = alt
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 12 InitDeclarator
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = field_w
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 12 InitDeclarator
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = min_w
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 12 InitDeclarator
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_POINTER
;;; { 15 List<Ptr>
;;; { 16 Ptr
;;; } 16 Ptr
;;; } 15 List<Ptr>
;;; } 14 DeclItem
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 12 InitDeclarator
;;; { 12 InitDeclarator
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 14 DeclItem
;;; { 14 DeclItem
;;; what = DECL_ARRAY
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;-- push_zero 12 bytes
CLRW -(SP)
CLRW -(SP)
CLRW -(SP)
CLRW -(SP)
CLRW -(SP)
CLRW -(SP)
;;; } 12 InitDeclarator
;;; { 12 List<while Statement>
;;; { 13 while Statement
;-- branch
JMP L12_cont_37
L12_loop_37:
;;; { 14 CompoundStatement
;;; { 15 List<IfElseStatement>
;;; { 16 IfElseStatement
;;; { 17 Expr l != r
;;; { 18 TypeName (internal)
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; } 18 TypeName (internal)
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -5(FP), SP at -28 (8 bit)
MOVE 23(SP), RS
;;; } 18 Expression (variable name)
;-- l != r
SNE RR, #0x0025
;;; } 17 Expr l != r
;-- branch_false
JMP RRZ, L12_endif_39
;;; { 17 CompoundStatement
;;; { 18 List<ExpressionStatement>
;;; { 19 ExpressionStatement
;;; { 20 Expr l += r
;;; { 21 TypeName
;;; { 22 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 22 TypeSpecifier (all)
;;; { 22 List<DeclItem>
;;; { 23 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 23 DeclItem
;;; } 22 List<DeclItem>
;;; } 21 TypeName
;;; { 21 Expr l + r
;;; { 22 Expr l(r)
;;; { 23 TypeName
;;; { 24 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 24 TypeSpecifier (all)
;;; { 24 List<DeclItem>
;;; { 25 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 25 DeclItem
;;; } 24 List<DeclItem>
;;; } 23 TypeName
;;; { 23 ParameterDeclaration
;;; isEllipsis = false
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; } 23 ParameterDeclaration
;;; { 23 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -5(FP), SP at -28 (8 bit)
MOVE 23(SP), RS
;;; } 23 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 22 Expr l(r)
;;; { 22 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_ll_var len = -4(FP), SP at -28 (16 bit)
MOVE 24(SP), LL
;;; } 22 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 21 Expr l + r
;-- store_rr_var len = -4(FP), SP at -28
MOVE RR, 24(SP)
;;; } 20 Expr l += r
;;; } 19 ExpressionStatement
;;; { 19 break/continue Statement
;-- branch
JMP L12_cont_37
;;; } 19 break/continue Statement
;;; } 18 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 17 CompoundStatement
L12_endif_39:
;;; } 16 IfElseStatement
;;; { 16 ExpressionStatement
;;; { 17 Expr l = r
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = flags
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 18 NumericExpression (constant 0 = 0x0)
;-- store_rr_var flags = -6(FP), SP at -28
MOVE R, 22(SP)
;;; } 17 Expr l = r
;;; } 16 ExpressionStatement
;;; { 16 ExpressionStatement
;;; { 17 Expr l = r
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 18 NumericExpression (constant 0 = 0x0)
;-- store_rr_var sign = -7(FP), SP at -28
MOVE R, 21(SP)
;;; } 17 Expr l = r
;;; } 16 ExpressionStatement
;;; { 16 ExpressionStatement
;;; { 17 Expr l = r
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = pad
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 NumericExpression (constant 32 = 0x20)
;-- load_rr_constant
MOVE #0x0020, RR
;;; } 18 NumericExpression (constant 32 = 0x20)
;-- store_rr_var pad = -8(FP), SP at -28
MOVE R, 20(SP)
;;; } 17 Expr l = r
;;; } 16 ExpressionStatement
;;; { 16 ExpressionStatement
;;; { 17 Expr l = r
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = field_w
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 18 NumericExpression (constant 0 = 0x0)
;-- store_rr_var field_w = -12(FP), SP at -28
MOVE RR, 16(SP)
;;; } 17 Expr l = r
;;; } 16 ExpressionStatement
;;; { 16 ExpressionStatement
;;; { 17 Expr l = r
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = min_w
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 18 NumericExpression (constant 0 = 0x0)
;-- store_rr_var min_w = -14(FP), SP at -28
MOVE RR, 14(SP)
;;; } 17 Expr l = r
;;; } 16 ExpressionStatement
;;; { 16 ExpressionStatement
;;; { 17 Expr l = r
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_POINTER
;;; { 21 List<Ptr>
;;; { 22 Ptr
;;; } 22 Ptr
;;; } 21 List<Ptr>
;;; } 20 DeclItem
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 Expr & r
;-- load_address field_w = -12(FP), SP at -28
LEA 16(SP), RR
;;; } 18 Expr & r
;-- store_rr_var which_w = -16(FP), SP at -28
MOVE RR, 12(SP)
;;; } 17 Expr l = r
;;; } 16 ExpressionStatement
;;; { 16 for Statement
;;; { 17 ExpressionStatement
;;; } 17 ExpressionStatement
L12_loop_40:
;;; { 17 CompoundStatement
;;; { 18 List<SwitchStatement>
;;; { 19 SwitchStatement
;;; { 20 Expr l = r
;;; { 21 TypeName
;;; { 22 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 22 TypeSpecifier (all)
;;; { 22 List<DeclItem>
;;; { 23 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 23 DeclItem
;;; } 22 List<DeclItem>
;;; } 21 TypeName
;;; { 21 Expr * r
;;; { 22 Expr l - r
;;; { 23 Expr ++r
;;; { 24 Expression (variable name)
;;; expr_type = "identifier" (format)
;-- load_rr_var format = 2(FP), SP at -28 (16 bit)
MOVE 30(SP), RR
;;; } 24 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var format = 2(FP), SP at -28
MOVE RR, 30(SP)
;;; } 23 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 22 Expr l - r
;-- content
MOVE (RR), RS
;;; } 21 Expr * r
;-- store_rr_var c = -5(FP), SP at -28
MOVE R, 23(SP)
;;; } 20 Expr l = r
;-- move_rr_to_ll
MOVE RR, LL
;-- branch_case (8 bit)
SEQ LL, #0x0058
JMP RRNZ, L12_case_42_0058
;-- branch_case (8 bit)
SEQ LL, #0x0064
JMP RRNZ, L12_case_42_0064
;-- branch_case (8 bit)
SEQ LL, #0x0073
JMP RRNZ, L12_case_42_0073
;-- branch_case (8 bit)
SEQ LL, #0x0075
JMP RRNZ, L12_case_42_0075
;-- branch_case (8 bit)
SEQ LL, #0x0078
JMP RRNZ, L12_case_42_0078
;-- branch_case (8 bit)
SEQ LL, #0x0063
JMP RRNZ, L12_case_42_0063
;-- branch_case (8 bit)
SEQ LL, #0x0023
JMP RRNZ, L12_case_42_0023
;-- branch_case (8 bit)
SEQ LL, #0x002D
JMP RRNZ, L12_case_42_002D
;-- branch_case (8 bit)
SEQ LL, #0x0020
JMP RRNZ, L12_case_42_0020
;-- branch_case (8 bit)
SEQ LL, #0x002B
JMP RRNZ, L12_case_42_002B
;-- branch_case (8 bit)
SEQ LL, #0x002E
JMP RRNZ, L12_case_42_002E
;-- branch_case (8 bit)
SEQ LL, #0x0030
JMP RRNZ, L12_case_42_0030
;-- branch_case (8 bit)
SEQ LL, #0x0031
JMP RRNZ, L12_case_42_0031
;-- branch_case (8 bit)
SEQ LL, #0x0032
JMP RRNZ, L12_case_42_0032
;-- branch_case (8 bit)
SEQ LL, #0x0033
JMP RRNZ, L12_case_42_0033
;-- branch_case (8 bit)
SEQ LL, #0x0034
JMP RRNZ, L12_case_42_0034
;-- branch_case (8 bit)
SEQ LL, #0x0035
JMP RRNZ, L12_case_42_0035
;-- branch_case (8 bit)
SEQ LL, #0x0036
JMP RRNZ, L12_case_42_0036
;-- branch_case (8 bit)
SEQ LL, #0x0037
JMP RRNZ, L12_case_42_0037
;-- branch_case (8 bit)
SEQ LL, #0x0038
JMP RRNZ, L12_case_42_0038
;-- branch_case (8 bit)
SEQ LL, #0x0039
JMP RRNZ, L12_case_42_0039
;-- branch_case (8 bit)
SEQ LL, #0x002A
JMP RRNZ, L12_case_42_002A
;-- branch_case (8 bit)
SEQ LL, #0x0000
JMP RRNZ, L12_case_42_0000
;-- branch
JMP L12_deflt_42
;;; { 20 CompoundStatement
;;; { 21 List<case Statement>
;;; { 22 case Statement
L12_case_42_0058:
;;; { 23 ExpressionStatement
;;; { 24 Expr l(r)
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = print_hex
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr (l , r)
;;; { 26 ParameterDeclaration
;;; isEllipsis = false
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_POINTER
;;; { 30 List<Ptr>
;;; { 31 Ptr
;;; } 31 Ptr
;;; } 30 List<Ptr>
;;; } 29 DeclItem
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = hex
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; } 26 ParameterDeclaration
;;; { 26 StringExpression
;-- load_rr_string
MOVE #Cstr_19, RR
;;; } 26 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 26 Expr (l , r)
;;; { 27 ParameterDeclaration
;;; isEllipsis = false
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = value
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; } 27 ParameterDeclaration
;;; { 27 Expression (cast)r
;;; { 28 Expr * r
;;; { 29 Expr l - r
;;; { 30 Expr ++r
;;; { 31 Expression (variable name)
;;; expr_type = "identifier" (args)
;-- load_rr_var args = -2(FP), SP at -30 (16 bit)
MOVE 28(SP), RR
;;; } 31 Expression (variable name)
;-- ++
ADD RR, #0x0002
;-- store_rr_var args = -2(FP), SP at -30
MOVE RR, 28(SP)
;;; } 30 Expr ++r
;-- l - r
SUB RR, #0x0002
;;; } 29 Expr l - r
;-- content
MOVE (RR), RR
;;; } 28 Expr * r
;;; } 27 Expression (cast)r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 27 ParameterDeclaration
;;; isEllipsis = false
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_POINTER
;;; { 31 List<Ptr>
;;; { 32 Ptr
;;; } 32 Ptr
;;; } 31 List<Ptr>
;;; } 30 DeclItem
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; } 27 ParameterDeclaration
;-- load_address buffer = -28(FP), SP at -32
LEA 4(SP), RR
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 26 Expr (l , r)
;;; } 25 Expr (l , r)
;-- push 0 bytes
;-- call
CALL Cprint_hex
;-- pop 6 bytes
ADD SP, #6
;;; } 24 Expr l(r)
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 ExpressionStatement
;;; { 23 Expr l += r
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; { 24 Expr l + r
;;; { 25 Expr l(r)
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = print_item
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; { 26 Expr (l , r)
;;; { 27 ParameterDeclaration
;;; isEllipsis = false
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = min_p
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; } 27 ParameterDeclaration
;;; { 27 NumericExpression (constant 48 = 0x30)
;-- load_rr_constant
MOVE #0x0030, RR
;;; } 27 NumericExpression (constant 48 = 0x30)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 27 Expr (l , r)
;;; { 28 ParameterDeclaration
;;; isEllipsis = false
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = min_w
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (min_w)
;-- load_rr_var min_w = -14(FP), SP at -29 (16 bit)
MOVE 15(SP), RR
;;; } 28 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 28 Expr (l , r)
;;; { 29 ParameterDeclaration
;;; isEllipsis = false
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = field_w
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; } 29 ParameterDeclaration
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (field_w)
;-- load_rr_var field_w = -12(FP), SP at -31 (16 bit)
MOVE 19(SP), RR
;;; } 29 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 29 Expr (l , r)
;;; { 30 ParameterDeclaration
;;; isEllipsis = false
;;; { 31 TypeName
;;; { 32 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 32 TypeSpecifier (all)
;;; { 32 List<DeclItem>
;;; { 33 DeclItem
;;; what = DECL_POINTER
;;; { 34 List<Ptr>
;;; { 35 Ptr
;;; } 35 Ptr
;;; } 34 List<Ptr>
;;; } 33 DeclItem
;;; { 33 DeclItem
;;; what = DECL_NAME
;;; name = alt
;;; } 33 DeclItem
;;; } 32 List<DeclItem>
;;; } 31 TypeName
;;; } 30 ParameterDeclaration
;;; { 30 StringExpression
;-- load_rr_string
MOVE #Cstr_20, RR
;;; } 30 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 30 Expr (l , r)
;;; { 31 ParameterDeclaration
;;; isEllipsis = false
;;; { 32 TypeName
;;; { 33 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 33 TypeSpecifier (all)
;;; { 33 List<DeclItem>
;;; { 34 DeclItem
;;; what = DECL_NAME
;;; name = pad
;;; } 34 DeclItem
;;; } 33 List<DeclItem>
;;; } 32 TypeName
;;; } 31 ParameterDeclaration
;;; { 31 Expression (variable name)
;;; expr_type = "identifier" (pad)
;-- load_rr_var pad = -8(FP), SP at -35 (8 bit)
MOVE 27(SP), RS
;;; } 31 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 31 Expr (l , r)
;;; { 32 ParameterDeclaration
;;; isEllipsis = false
;;; { 33 TypeName
;;; { 34 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 34 TypeSpecifier (all)
;;; { 34 List<DeclItem>
;;; { 35 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 35 DeclItem
;;; } 34 List<DeclItem>
;;; } 33 TypeName
;;; } 32 ParameterDeclaration
;;; { 32 Expression (variable name)
;;; expr_type = "identifier" (sign)
;-- load_rr_var sign = -7(FP), SP at -36 (8 bit)
MOVE 29(SP), RS
;;; } 32 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 32 Expr (l , r)
;;; { 33 ParameterDeclaration
;;; isEllipsis = false
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = flags
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;;; { 33 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = -6(FP), SP at -37 (8 bit)
MOVE 31(SP), RS
;;; } 33 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 33 ParameterDeclaration
;;; isEllipsis = false
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_POINTER
;;; { 37 List<Ptr>
;;; { 38 Ptr
;;; } 38 Ptr
;;; } 37 List<Ptr>
;;; } 36 DeclItem
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;-- load_address buffer = -28(FP), SP at -38
LEA 10(SP), RR
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 32 Expr (l , r)
;;; } 31 Expr (l , r)
;;; } 30 Expr (l , r)
;;; } 29 Expr (l , r)
;;; } 28 Expr (l , r)
;;; } 27 Expr (l , r)
;;; } 26 Expr (l , r)
;-- push 2 bytes
;-- call
CALL Cprint_item
;-- pop 12 bytes
ADD SP, #12
;;; } 25 Expr l(r)
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_ll_var len = -4(FP), SP at -28 (16 bit)
MOVE 24(SP), LL
;;; } 25 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 24 Expr l + r
;-- store_rr_var len = -4(FP), SP at -28
MOVE RR, 24(SP)
;;; } 23 Expr l += r
;;; } 22 ExpressionStatement
;;; { 22 break/continue Statement
;-- branch
JMP L12_brk_42
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0064:
;;; { 23 IfElseStatement
;;; { 24 Expr l < r
;;; { 25 TypeName (internal)
;;; { 26 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 26 TypeSpecifier (all)
;;; } 25 TypeName (internal)
;;; { 25 Expression (cast)r
;;; { 26 Expr * r
;;; { 27 Expression (variable name)
;;; expr_type = "identifier" (args)
;-- load_rr_var args = -2(FP), SP at -28 (16 bit)
MOVE 26(SP), RR
;;; } 27 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 26 Expr * r
;;; } 25 Expression (cast)r
;-- l < r
SLT RR, #0x0000
;;; } 24 Expr l < r
;-- branch_false
JMP RRZ, L12_endif_43
;;; { 24 CompoundStatement
;;; { 25 List<ExpressionStatement>
;;; { 26 ExpressionStatement
;;; { 27 Expr l = r
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 NumericExpression (constant 45 = 0x2D)
;-- load_rr_constant
MOVE #0x002D, RR
;;; } 28 NumericExpression (constant 45 = 0x2D)
;-- store_rr_var sign = -7(FP), SP at -28
MOVE R, 21(SP)
;;; } 27 Expr l = r
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l = r
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_POINTER
;;; { 31 List<Ptr>
;;; { 32 Ptr
;;; } 32 Ptr
;;; } 31 List<Ptr>
;;; } 30 DeclItem
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = args
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 Expression (cast)r
;;; { 29 Expr - r
;;; { 30 Expression (cast)r
;;; { 31 Expr * r
;;; { 32 Expression (variable name)
;;; expr_type = "identifier" (args)
;-- load_rr_var args = -2(FP), SP at -28 (16 bit)
MOVE 26(SP), RR
;;; } 32 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 31 Expr * r
;;; } 30 Expression (cast)r
;-- 16 bit - r
NEG RR
;;; } 29 Expr - r
;;; } 28 Expression (cast)r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 28 Expr * r
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (args)
;-- load_rr_var args = -2(FP), SP at -30 (16 bit)
MOVE 28(SP), RR
;;; } 29 Expression (variable name)
;;; } 28 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 27 Expr l = r
;;; } 26 ExpressionStatement
;;; } 25 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 24 CompoundStatement
L12_endif_43:
;;; } 23 IfElseStatement
;;; } 22 case Statement
;;; { 22 ExpressionStatement
;;; { 23 Expr l(r)
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = print_unsigned
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; { 24 Expr (l , r)
;;; { 25 ParameterDeclaration
;;; isEllipsis = false
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = value
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; } 25 ParameterDeclaration
;;; { 25 Expression (cast)r
;;; { 26 Expr * r
;;; { 27 Expr l - r
;;; { 28 Expr ++r
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (args)
;-- load_rr_var args = -2(FP), SP at -28 (16 bit)
MOVE 26(SP), RR
;;; } 29 Expression (variable name)
;-- ++
ADD RR, #0x0002
;-- store_rr_var args = -2(FP), SP at -28
MOVE RR, 26(SP)
;;; } 28 Expr ++r
;-- l - r
SUB RR, #0x0002
;;; } 27 Expr l - r
;-- content
MOVE (RR), RR
;;; } 26 Expr * r
;;; } 25 Expression (cast)r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 ParameterDeclaration
;;; isEllipsis = false
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_POINTER
;;; { 29 List<Ptr>
;;; { 30 Ptr
;;; } 30 Ptr
;;; } 29 List<Ptr>
;;; } 28 DeclItem
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; } 25 ParameterDeclaration
;-- load_address buffer = -28(FP), SP at -30
LEA 2(SP), RR
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 24 Expr (l , r)
;-- push 0 bytes
;-- call
CALL Cprint_unsigned
;-- pop 4 bytes
ADD SP, #4
;;; } 23 Expr l(r)
;;; } 22 ExpressionStatement
;;; { 22 ExpressionStatement
;;; { 23 Expr l += r
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; { 24 Expr l + r
;;; { 25 Expr l(r)
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = print_item
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; { 26 Expr (l , r)
;;; { 27 ParameterDeclaration
;;; isEllipsis = false
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = min_p
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; } 27 ParameterDeclaration
;;; { 27 NumericExpression (constant 48 = 0x30)
;-- load_rr_constant
MOVE #0x0030, RR
;;; } 27 NumericExpression (constant 48 = 0x30)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 27 Expr (l , r)
;;; { 28 ParameterDeclaration
;;; isEllipsis = false
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = min_w
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (min_w)
;-- load_rr_var min_w = -14(FP), SP at -29 (16 bit)
MOVE 15(SP), RR
;;; } 28 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 28 Expr (l , r)
;;; { 29 ParameterDeclaration
;;; isEllipsis = false
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = field_w
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; } 29 ParameterDeclaration
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (field_w)
;-- load_rr_var field_w = -12(FP), SP at -31 (16 bit)
MOVE 19(SP), RR
;;; } 29 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 29 Expr (l , r)
;;; { 30 ParameterDeclaration
;;; isEllipsis = false
;;; { 31 TypeName
;;; { 32 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 32 TypeSpecifier (all)
;;; { 32 List<DeclItem>
;;; { 33 DeclItem
;;; what = DECL_POINTER
;;; { 34 List<Ptr>
;;; { 35 Ptr
;;; } 35 Ptr
;;; } 34 List<Ptr>
;;; } 33 DeclItem
;;; { 33 DeclItem
;;; what = DECL_NAME
;;; name = alt
;;; } 33 DeclItem
;;; } 32 List<DeclItem>
;;; } 31 TypeName
;;; } 30 ParameterDeclaration
;;; { 30 StringExpression
;-- load_rr_string
MOVE #Cstr_21, RR
;;; } 30 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 30 Expr (l , r)
;;; { 31 ParameterDeclaration
;;; isEllipsis = false
;;; { 32 TypeName
;;; { 33 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 33 TypeSpecifier (all)
;;; { 33 List<DeclItem>
;;; { 34 DeclItem
;;; what = DECL_NAME
;;; name = pad
;;; } 34 DeclItem
;;; } 33 List<DeclItem>
;;; } 32 TypeName
;;; } 31 ParameterDeclaration
;;; { 31 Expression (variable name)
;;; expr_type = "identifier" (pad)
;-- load_rr_var pad = -8(FP), SP at -35 (8 bit)
MOVE 27(SP), RS
;;; } 31 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 31 Expr (l , r)
;;; { 32 ParameterDeclaration
;;; isEllipsis = false
;;; { 33 TypeName
;;; { 34 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 34 TypeSpecifier (all)
;;; { 34 List<DeclItem>
;;; { 35 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 35 DeclItem
;;; } 34 List<DeclItem>
;;; } 33 TypeName
;;; } 32 ParameterDeclaration
;;; { 32 Expression (variable name)
;;; expr_type = "identifier" (sign)
;-- load_rr_var sign = -7(FP), SP at -36 (8 bit)
MOVE 29(SP), RS
;;; } 32 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 32 Expr (l , r)
;;; { 33 ParameterDeclaration
;;; isEllipsis = false
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = flags
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;;; { 33 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = -6(FP), SP at -37 (8 bit)
MOVE 31(SP), RS
;;; } 33 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 33 ParameterDeclaration
;;; isEllipsis = false
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_POINTER
;;; { 37 List<Ptr>
;;; { 38 Ptr
;;; } 38 Ptr
;;; } 37 List<Ptr>
;;; } 36 DeclItem
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;-- load_address buffer = -28(FP), SP at -38
LEA 10(SP), RR
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 32 Expr (l , r)
;;; } 31 Expr (l , r)
;;; } 30 Expr (l , r)
;;; } 29 Expr (l , r)
;;; } 28 Expr (l , r)
;;; } 27 Expr (l , r)
;;; } 26 Expr (l , r)
;-- push 2 bytes
;-- call
CALL Cprint_item
;-- pop 12 bytes
ADD SP, #12
;;; } 25 Expr l(r)
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_ll_var len = -4(FP), SP at -28 (16 bit)
MOVE 24(SP), LL
;;; } 25 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 24 Expr l + r
;-- store_rr_var len = -4(FP), SP at -28
MOVE RR, 24(SP)
;;; } 23 Expr l += r
;;; } 22 ExpressionStatement
;;; { 22 break/continue Statement
;-- branch
JMP L12_brk_42
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0073:
;;; { 23 ExpressionStatement
;;; { 24 Expr l += r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l(r)
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = print_item
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; { 27 Expr (l , r)
;;; { 28 ParameterDeclaration
;;; isEllipsis = false
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = min_p
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 NumericExpression (constant 32 = 0x20)
;-- load_rr_constant
MOVE #0x0020, RR
;;; } 28 NumericExpression (constant 32 = 0x20)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 28 Expr (l , r)
;;; { 29 ParameterDeclaration
;;; isEllipsis = false
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = min_w
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; } 29 ParameterDeclaration
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (min_w)
;-- load_rr_var min_w = -14(FP), SP at -29 (16 bit)
MOVE 15(SP), RR
;;; } 29 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 29 Expr (l , r)
;;; { 30 ParameterDeclaration
;;; isEllipsis = false
;;; { 31 TypeName
;;; { 32 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 32 TypeSpecifier (all)
;;; { 32 List<DeclItem>
;;; { 33 DeclItem
;;; what = DECL_NAME
;;; name = field_w
;;; } 33 DeclItem
;;; } 32 List<DeclItem>
;;; } 31 TypeName
;;; } 30 ParameterDeclaration
;;; { 30 Expression (variable name)
;;; expr_type = "identifier" (field_w)
;-- load_rr_var field_w = -12(FP), SP at -31 (16 bit)
MOVE 19(SP), RR
;;; } 30 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 30 Expr (l , r)
;;; { 31 ParameterDeclaration
;;; isEllipsis = false
;;; { 32 TypeName
;;; { 33 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 33 TypeSpecifier (all)
;;; { 33 List<DeclItem>
;;; { 34 DeclItem
;;; what = DECL_POINTER
;;; { 35 List<Ptr>
;;; { 36 Ptr
;;; } 36 Ptr
;;; } 35 List<Ptr>
;;; } 34 DeclItem
;;; { 34 DeclItem
;;; what = DECL_NAME
;;; name = alt
;;; } 34 DeclItem
;;; } 33 List<DeclItem>
;;; } 32 TypeName
;;; } 31 ParameterDeclaration
;;; { 31 StringExpression
;-- load_rr_string
MOVE #Cstr_22, RR
;;; } 31 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 31 Expr (l , r)
;;; { 32 ParameterDeclaration
;;; isEllipsis = false
;;; { 33 TypeName
;;; { 34 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 34 TypeSpecifier (all)
;;; { 34 List<DeclItem>
;;; { 35 DeclItem
;;; what = DECL_NAME
;;; name = pad
;;; } 35 DeclItem
;;; } 34 List<DeclItem>
;;; } 33 TypeName
;;; } 32 ParameterDeclaration
;;; { 32 NumericExpression (constant 32 = 0x20)
;-- load_rr_constant
MOVE #0x0020, RR
;;; } 32 NumericExpression (constant 32 = 0x20)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 32 Expr (l , r)
;;; { 33 ParameterDeclaration
;;; isEllipsis = false
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;;; { 33 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 33 NumericExpression (constant 0 = 0x0)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 33 Expr (l , r)
;;; { 34 ParameterDeclaration
;;; isEllipsis = false
;;; { 35 TypeName
;;; { 36 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 36 TypeSpecifier (all)
;;; { 36 List<DeclItem>
;;; { 37 DeclItem
;;; what = DECL_NAME
;;; name = flags
;;; } 37 DeclItem
;;; } 36 List<DeclItem>
;;; } 35 TypeName
;;; } 34 ParameterDeclaration
;;; { 34 Expr l & r
;;; { 35 TypeName (internal)
;;; { 36 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 36 TypeSpecifier (all)
;;; } 35 TypeName (internal)
;;; { 35 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = -6(FP), SP at -37 (8 bit)
MOVE 31(SP), RS
;;; } 35 Expression (variable name)
;-- l & r
AND RR, #0x0002
;;; } 34 Expr l & r
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 34 ParameterDeclaration
;;; isEllipsis = false
;;; { 35 TypeName
;;; { 36 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 36 TypeSpecifier (all)
;;; { 36 List<DeclItem>
;;; { 37 DeclItem
;;; what = DECL_POINTER
;;; { 38 List<Ptr>
;;; { 39 Ptr
;;; } 39 Ptr
;;; } 38 List<Ptr>
;;; } 37 DeclItem
;;; { 37 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 37 DeclItem
;;; } 36 List<DeclItem>
;;; } 35 TypeName
;;; } 34 ParameterDeclaration
;;; { 34 Expr * r
;;; { 35 Expr l - r
;;; { 36 Expr ++r
;;; { 37 Expression (variable name)
;;; expr_type = "identifier" (args)
;-- load_rr_var args = -2(FP), SP at -38 (16 bit)
MOVE 36(SP), RR
;;; } 37 Expression (variable name)
;-- ++
ADD RR, #0x0002
;-- store_rr_var args = -2(FP), SP at -38
MOVE RR, 36(SP)
;;; } 36 Expr ++r
;-- l - r
SUB RR, #0x0002
;;; } 35 Expr l - r
;-- content
MOVE (RR), RR
;;; } 34 Expr * r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 33 Expr (l , r)
;;; } 32 Expr (l , r)
;;; } 31 Expr (l , r)
;;; } 30 Expr (l , r)
;;; } 29 Expr (l , r)
;;; } 28 Expr (l , r)
;;; } 27 Expr (l , r)
;-- push 2 bytes
;-- call
CALL Cprint_item
;-- pop 12 bytes
ADD SP, #12
;;; } 26 Expr l(r)
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_ll_var len = -4(FP), SP at -28 (16 bit)
MOVE 24(SP), LL
;;; } 26 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 25 Expr l + r
;-- store_rr_var len = -4(FP), SP at -28
MOVE RR, 24(SP)
;;; } 24 Expr l += r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_brk_42
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0075:
;;; { 23 ExpressionStatement
;;; { 24 Expr l(r)
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = print_unsigned
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr (l , r)
;;; { 26 ParameterDeclaration
;;; isEllipsis = false
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = value
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; } 26 ParameterDeclaration
;;; { 26 Expression (cast)r
;;; { 27 Expr * r
;;; { 28 Expr l - r
;;; { 29 Expr ++r
;;; { 30 Expression (variable name)
;;; expr_type = "identifier" (args)
;-- load_rr_var args = -2(FP), SP at -28 (16 bit)
MOVE 26(SP), RR
;;; } 30 Expression (variable name)
;-- ++
ADD RR, #0x0002
;-- store_rr_var args = -2(FP), SP at -28
MOVE RR, 26(SP)
;;; } 29 Expr ++r
;-- l - r
SUB RR, #0x0002
;;; } 28 Expr l - r
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;;; } 26 Expression (cast)r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 26 ParameterDeclaration
;;; isEllipsis = false
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_POINTER
;;; { 30 List<Ptr>
;;; { 31 Ptr
;;; } 31 Ptr
;;; } 30 List<Ptr>
;;; } 29 DeclItem
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; } 26 ParameterDeclaration
;-- load_address buffer = -28(FP), SP at -30
LEA 2(SP), RR
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 25 Expr (l , r)
;-- push 0 bytes
;-- call
CALL Cprint_unsigned
;-- pop 4 bytes
ADD SP, #4
;;; } 24 Expr l(r)
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 ExpressionStatement
;;; { 23 Expr l += r
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; { 24 Expr l + r
;;; { 25 Expr l(r)
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = print_item
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; { 26 Expr (l , r)
;;; { 27 ParameterDeclaration
;;; isEllipsis = false
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = min_p
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; } 27 ParameterDeclaration
;;; { 27 NumericExpression (constant 48 = 0x30)
;-- load_rr_constant
MOVE #0x0030, RR
;;; } 27 NumericExpression (constant 48 = 0x30)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 27 Expr (l , r)
;;; { 28 ParameterDeclaration
;;; isEllipsis = false
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = min_w
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (min_w)
;-- load_rr_var min_w = -14(FP), SP at -29 (16 bit)
MOVE 15(SP), RR
;;; } 28 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 28 Expr (l , r)
;;; { 29 ParameterDeclaration
;;; isEllipsis = false
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = field_w
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; } 29 ParameterDeclaration
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (field_w)
;-- load_rr_var field_w = -12(FP), SP at -31 (16 bit)
MOVE 19(SP), RR
;;; } 29 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 29 Expr (l , r)
;;; { 30 ParameterDeclaration
;;; isEllipsis = false
;;; { 31 TypeName
;;; { 32 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 32 TypeSpecifier (all)
;;; { 32 List<DeclItem>
;;; { 33 DeclItem
;;; what = DECL_POINTER
;;; { 34 List<Ptr>
;;; { 35 Ptr
;;; } 35 Ptr
;;; } 34 List<Ptr>
;;; } 33 DeclItem
;;; { 33 DeclItem
;;; what = DECL_NAME
;;; name = alt
;;; } 33 DeclItem
;;; } 32 List<DeclItem>
;;; } 31 TypeName
;;; } 30 ParameterDeclaration
;;; { 30 StringExpression
;-- load_rr_string
MOVE #Cstr_23, RR
;;; } 30 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 30 Expr (l , r)
;;; { 31 ParameterDeclaration
;;; isEllipsis = false
;;; { 32 TypeName
;;; { 33 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 33 TypeSpecifier (all)
;;; { 33 List<DeclItem>
;;; { 34 DeclItem
;;; what = DECL_NAME
;;; name = pad
;;; } 34 DeclItem
;;; } 33 List<DeclItem>
;;; } 32 TypeName
;;; } 31 ParameterDeclaration
;;; { 31 Expression (variable name)
;;; expr_type = "identifier" (pad)
;-- load_rr_var pad = -8(FP), SP at -35 (8 bit)
MOVE 27(SP), RS
;;; } 31 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 31 Expr (l , r)
;;; { 32 ParameterDeclaration
;;; isEllipsis = false
;;; { 33 TypeName
;;; { 34 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 34 TypeSpecifier (all)
;;; { 34 List<DeclItem>
;;; { 35 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 35 DeclItem
;;; } 34 List<DeclItem>
;;; } 33 TypeName
;;; } 32 ParameterDeclaration
;;; { 32 Expression (variable name)
;;; expr_type = "identifier" (sign)
;-- load_rr_var sign = -7(FP), SP at -36 (8 bit)
MOVE 29(SP), RS
;;; } 32 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 32 Expr (l , r)
;;; { 33 ParameterDeclaration
;;; isEllipsis = false
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = flags
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;;; { 33 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = -6(FP), SP at -37 (8 bit)
MOVE 31(SP), RS
;;; } 33 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 33 ParameterDeclaration
;;; isEllipsis = false
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_POINTER
;;; { 37 List<Ptr>
;;; { 38 Ptr
;;; } 38 Ptr
;;; } 37 List<Ptr>
;;; } 36 DeclItem
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;-- load_address buffer = -28(FP), SP at -38
LEA 10(SP), RR
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 32 Expr (l , r)
;;; } 31 Expr (l , r)
;;; } 30 Expr (l , r)
;;; } 29 Expr (l , r)
;;; } 28 Expr (l , r)
;;; } 27 Expr (l , r)
;;; } 26 Expr (l , r)
;-- push 2 bytes
;-- call
CALL Cprint_item
;-- pop 12 bytes
ADD SP, #12
;;; } 25 Expr l(r)
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_ll_var len = -4(FP), SP at -28 (16 bit)
MOVE 24(SP), LL
;;; } 25 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 24 Expr l + r
;-- store_rr_var len = -4(FP), SP at -28
MOVE RR, 24(SP)
;;; } 23 Expr l += r
;;; } 22 ExpressionStatement
;;; { 22 break/continue Statement
;-- branch
JMP L12_brk_42
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0078:
;;; { 23 ExpressionStatement
;;; { 24 Expr l(r)
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = print_hex
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr (l , r)
;;; { 26 ParameterDeclaration
;;; isEllipsis = false
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_POINTER
;;; { 30 List<Ptr>
;;; { 31 Ptr
;;; } 31 Ptr
;;; } 30 List<Ptr>
;;; } 29 DeclItem
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = hex
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; } 26 ParameterDeclaration
;;; { 26 StringExpression
;-- load_rr_string
MOVE #Cstr_24, RR
;;; } 26 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 26 Expr (l , r)
;;; { 27 ParameterDeclaration
;;; isEllipsis = false
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = value
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; } 27 ParameterDeclaration
;;; { 27 Expression (cast)r
;;; { 28 Expr * r
;;; { 29 Expr l - r
;;; { 30 Expr ++r
;;; { 31 Expression (variable name)
;;; expr_type = "identifier" (args)
;-- load_rr_var args = -2(FP), SP at -30 (16 bit)
MOVE 28(SP), RR
;;; } 31 Expression (variable name)
;-- ++
ADD RR, #0x0002
;-- store_rr_var args = -2(FP), SP at -30
MOVE RR, 28(SP)
;;; } 30 Expr ++r
;-- l - r
SUB RR, #0x0002
;;; } 29 Expr l - r
;-- content
MOVE (RR), RR
;;; } 28 Expr * r
;;; } 27 Expression (cast)r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 27 ParameterDeclaration
;;; isEllipsis = false
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_POINTER
;;; { 31 List<Ptr>
;;; { 32 Ptr
;;; } 32 Ptr
;;; } 31 List<Ptr>
;;; } 30 DeclItem
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = dest
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; } 27 ParameterDeclaration
;-- load_address buffer = -28(FP), SP at -32
LEA 4(SP), RR
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 26 Expr (l , r)
;;; } 25 Expr (l , r)
;-- push 0 bytes
;-- call
CALL Cprint_hex
;-- pop 6 bytes
ADD SP, #6
;;; } 24 Expr l(r)
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 ExpressionStatement
;;; { 23 Expr l += r
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; { 24 Expr l + r
;;; { 25 Expr l(r)
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = print_item
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; { 26 Expr (l , r)
;;; { 27 ParameterDeclaration
;;; isEllipsis = false
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = min_p
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; } 27 ParameterDeclaration
;;; { 27 NumericExpression (constant 48 = 0x30)
;-- load_rr_constant
MOVE #0x0030, RR
;;; } 27 NumericExpression (constant 48 = 0x30)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 27 Expr (l , r)
;;; { 28 ParameterDeclaration
;;; isEllipsis = false
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = min_w
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (min_w)
;-- load_rr_var min_w = -14(FP), SP at -29 (16 bit)
MOVE 15(SP), RR
;;; } 28 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 28 Expr (l , r)
;;; { 29 ParameterDeclaration
;;; isEllipsis = false
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = field_w
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; } 29 ParameterDeclaration
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (field_w)
;-- load_rr_var field_w = -12(FP), SP at -31 (16 bit)
MOVE 19(SP), RR
;;; } 29 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 29 Expr (l , r)
;;; { 30 ParameterDeclaration
;;; isEllipsis = false
;;; { 31 TypeName
;;; { 32 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 32 TypeSpecifier (all)
;;; { 32 List<DeclItem>
;;; { 33 DeclItem
;;; what = DECL_POINTER
;;; { 34 List<Ptr>
;;; { 35 Ptr
;;; } 35 Ptr
;;; } 34 List<Ptr>
;;; } 33 DeclItem
;;; { 33 DeclItem
;;; what = DECL_NAME
;;; name = alt
;;; } 33 DeclItem
;;; } 32 List<DeclItem>
;;; } 31 TypeName
;;; } 30 ParameterDeclaration
;;; { 30 StringExpression
;-- load_rr_string
MOVE #Cstr_25, RR
;;; } 30 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 30 Expr (l , r)
;;; { 31 ParameterDeclaration
;;; isEllipsis = false
;;; { 32 TypeName
;;; { 33 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 33 TypeSpecifier (all)
;;; { 33 List<DeclItem>
;;; { 34 DeclItem
;;; what = DECL_NAME
;;; name = pad
;;; } 34 DeclItem
;;; } 33 List<DeclItem>
;;; } 32 TypeName
;;; } 31 ParameterDeclaration
;;; { 31 Expression (variable name)
;;; expr_type = "identifier" (pad)
;-- load_rr_var pad = -8(FP), SP at -35 (8 bit)
MOVE 27(SP), RS
;;; } 31 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 31 Expr (l , r)
;;; { 32 ParameterDeclaration
;;; isEllipsis = false
;;; { 33 TypeName
;;; { 34 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 34 TypeSpecifier (all)
;;; { 34 List<DeclItem>
;;; { 35 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 35 DeclItem
;;; } 34 List<DeclItem>
;;; } 33 TypeName
;;; } 32 ParameterDeclaration
;;; { 32 Expression (variable name)
;;; expr_type = "identifier" (sign)
;-- load_rr_var sign = -7(FP), SP at -36 (8 bit)
MOVE 29(SP), RS
;;; } 32 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 32 Expr (l , r)
;;; { 33 ParameterDeclaration
;;; isEllipsis = false
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = flags
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;;; { 33 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = -6(FP), SP at -37 (8 bit)
MOVE 31(SP), RS
;;; } 33 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 33 ParameterDeclaration
;;; isEllipsis = false
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_POINTER
;;; { 37 List<Ptr>
;;; { 38 Ptr
;;; } 38 Ptr
;;; } 37 List<Ptr>
;;; } 36 DeclItem
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = buffer
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;-- load_address buffer = -28(FP), SP at -38
LEA 10(SP), RR
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 32 Expr (l , r)
;;; } 31 Expr (l , r)
;;; } 30 Expr (l , r)
;;; } 29 Expr (l , r)
;;; } 28 Expr (l , r)
;;; } 27 Expr (l , r)
;;; } 26 Expr (l , r)
;-- push 2 bytes
;-- call
CALL Cprint_item
;-- pop 12 bytes
ADD SP, #12
;;; } 25 Expr l(r)
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_ll_var len = -4(FP), SP at -28 (16 bit)
MOVE 24(SP), LL
;;; } 25 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 24 Expr l + r
;-- store_rr_var len = -4(FP), SP at -28
MOVE RR, 24(SP)
;;; } 23 Expr l += r
;;; } 22 ExpressionStatement
;;; { 22 break/continue Statement
;-- branch
JMP L12_brk_42
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0063:
;;; { 23 ExpressionStatement
;;; { 24 Expr l += r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l(r)
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; { 27 ParameterDeclaration
;;; isEllipsis = false
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; } 27 ParameterDeclaration
;;; { 27 Expression (cast)r
;;; { 28 Expr * r
;;; { 29 Expr l - r
;;; { 30 Expr ++r
;;; { 31 Expression (variable name)
;;; expr_type = "identifier" (args)
;-- load_rr_var args = -2(FP), SP at -28 (16 bit)
MOVE 26(SP), RR
;;; } 31 Expression (variable name)
;-- ++
ADD RR, #0x0002
;-- store_rr_var args = -2(FP), SP at -28
MOVE RR, 26(SP)
;;; } 30 Expr ++r
;-- l - r
SUB RR, #0x0002
;;; } 29 Expr l - r
;-- content
MOVE (RR), RR
;;; } 28 Expr * r
;;; } 27 Expression (cast)r
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 26 Expr l(r)
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_ll_var len = -4(FP), SP at -28 (16 bit)
MOVE 24(SP), LL
;;; } 26 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 25 Expr l + r
;-- store_rr_var len = -4(FP), SP at -28
MOVE RR, 24(SP)
;;; } 24 Expr l += r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_brk_42
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0023:
;;; { 23 ExpressionStatement
;;; { 24 Expr l | r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = flags
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l | r
;;; { 26 TypeName (internal)
;;; { 27 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 27 TypeSpecifier (all)
;;; } 26 TypeName (internal)
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = -6(FP), SP at -28 (8 bit)
MOVE 22(SP), RS
;;; } 26 Expression (variable name)
;-- l | r
OR RR, #0x0001
;;; } 25 Expr l | r
;-- store_rr_var flags = -6(FP), SP at -28
MOVE R, 22(SP)
;;; } 24 Expr l | r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_002D:
;;; { 23 ExpressionStatement
;;; { 24 Expr l | r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = flags
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l | r
;;; { 26 TypeName (internal)
;;; { 27 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 27 TypeSpecifier (all)
;;; } 26 TypeName (internal)
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (flags)
;-- load_rr_var flags = -6(FP), SP at -28 (8 bit)
MOVE 22(SP), RS
;;; } 26 Expression (variable name)
;-- l | r
OR RR, #0x0002
;;; } 25 Expr l | r
;-- store_rr_var flags = -6(FP), SP at -28
MOVE R, 22(SP)
;;; } 24 Expr l | r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0020:
;;; { 23 IfElseStatement
;;; { 24 Expr ! r
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (sign)
;-- load_rr_var sign = -7(FP), SP at -28 (8 bit)
MOVE 21(SP), RS
;;; } 25 Expression (variable name)
;-- 16 bit ! r
LNOT RR
;;; } 24 Expr ! r
;-- branch_false
JMP RRZ, L12_endif_44
;;; { 24 ExpressionStatement
;;; { 25 Expr l = r
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; { 26 NumericExpression (constant 32 = 0x20)
;-- load_rr_constant
MOVE #0x0020, RR
;;; } 26 NumericExpression (constant 32 = 0x20)
;-- store_rr_var sign = -7(FP), SP at -28
MOVE R, 21(SP)
;;; } 25 Expr l = r
;;; } 24 ExpressionStatement
L12_endif_44:
;;; } 23 IfElseStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_002B:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = sign
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 NumericExpression (constant 43 = 0x2B)
;-- load_rr_constant
MOVE #0x002B, RR
;;; } 25 NumericExpression (constant 43 = 0x2B)
;-- store_rr_var sign = -7(FP), SP at -28
MOVE R, 21(SP)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_002E:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_POINTER
;;; { 28 List<Ptr>
;;; { 29 Ptr
;;; } 29 Ptr
;;; } 28 List<Ptr>
;;; } 27 DeclItem
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr & r
;-- load_address min_w = -14(FP), SP at -28
LEA 14(SP), RR
;;; } 25 Expr & r
;-- store_rr_var which_w = -16(FP), SP at -28
MOVE RR, 12(SP)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0030:
;;; { 23 IfElseStatement
;;; { 24 Expr * r
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 25 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 24 Expr * r
;-- branch_false
JMP RRZ, L12_else_45
;;; { 24 ExpressionStatement
;;; { 25 Expr l *- r
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; { 26 Expr l * r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expr * r
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 28 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;-- l * r
MOVE RR, LL
MOVE #0x000A, RR
;-- l * r
DI
MUL_IU
CALL mult_div
MD_FIN
EI
;;; } 26 Expr l * r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 26 Expr * r
;;; { 27 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 27 Expression (variable name)
;;; } 26 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 25 Expr l *- r
;;; } 24 ExpressionStatement
;-- branch
JMP L12_endif_45
L12_else_45:
;;; { 24 ExpressionStatement
;;; { 25 Expr l = r
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = pad
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; { 26 NumericExpression (constant 48 = 0x30)
;-- load_rr_constant
MOVE #0x0030, RR
;;; } 26 NumericExpression (constant 48 = 0x30)
;-- store_rr_var pad = -8(FP), SP at -28
MOVE R, 20(SP)
;;; } 25 Expr l = r
;;; } 24 ExpressionStatement
L12_endif_45:
;;; } 23 IfElseStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0031:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l * r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expr * r
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 28 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;-- l * r
MOVE RR, LL
MOVE #0x000A, RR
;-- l * r
DI
MUL_IU
CALL mult_div
MD_FIN
EI
;;; } 26 Expr l * r
;-- l + r
ADD RR, #0x0001
;;; } 25 Expr l + r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 Expr * r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 26 Expression (variable name)
;;; } 25 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0032:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l * r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expr * r
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 28 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;-- l * r
MOVE RR, LL
MOVE #0x000A, RR
;-- l * r
DI
MUL_IU
CALL mult_div
MD_FIN
EI
;;; } 26 Expr l * r
;-- l + r
ADD RR, #0x0002
;;; } 25 Expr l + r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 Expr * r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 26 Expression (variable name)
;;; } 25 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0033:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l * r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expr * r
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 28 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;-- l * r
MOVE RR, LL
MOVE #0x000A, RR
;-- l * r
DI
MUL_IU
CALL mult_div
MD_FIN
EI
;;; } 26 Expr l * r
;-- l + r
ADD RR, #0x0003
;;; } 25 Expr l + r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 Expr * r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 26 Expression (variable name)
;;; } 25 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0034:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l * r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expr * r
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 28 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;-- l * r
MOVE RR, LL
MOVE #0x000A, RR
;-- l * r
DI
MUL_IU
CALL mult_div
MD_FIN
EI
;;; } 26 Expr l * r
;-- l + r
ADD RR, #0x0004
;;; } 25 Expr l + r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 Expr * r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 26 Expression (variable name)
;;; } 25 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0035:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l * r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expr * r
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 28 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;-- l * r
MOVE RR, LL
MOVE #0x000A, RR
;-- l * r
DI
MUL_IU
CALL mult_div
MD_FIN
EI
;;; } 26 Expr l * r
;-- l + r
ADD RR, #0x0005
;;; } 25 Expr l + r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 Expr * r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 26 Expression (variable name)
;;; } 25 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0036:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l * r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expr * r
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 28 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;-- l * r
MOVE RR, LL
MOVE #0x000A, RR
;-- l * r
DI
MUL_IU
CALL mult_div
MD_FIN
EI
;;; } 26 Expr l * r
;-- l + r
ADD RR, #0x0006
;;; } 25 Expr l + r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 Expr * r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 26 Expression (variable name)
;;; } 25 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0037:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l * r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expr * r
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 28 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;-- l * r
MOVE RR, LL
MOVE #0x000A, RR
;-- l * r
DI
MUL_IU
CALL mult_div
MD_FIN
EI
;;; } 26 Expr l * r
;-- l + r
ADD RR, #0x0007
;;; } 25 Expr l + r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 Expr * r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 26 Expression (variable name)
;;; } 25 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0038:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l * r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expr * r
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 28 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;-- l * r
MOVE RR, LL
MOVE #0x000A, RR
;-- l * r
DI
MUL_IU
CALL mult_div
MD_FIN
EI
;;; } 26 Expr l * r
;-- l + r
ADD RR, #0x0008
;;; } 25 Expr l + r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 Expr * r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 26 Expression (variable name)
;;; } 25 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0039:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l * r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expr * r
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -28 (16 bit)
MOVE 12(SP), RR
;;; } 28 Expression (variable name)
;-- content
MOVE (RR), RR
;;; } 27 Expr * r
;-- l * r
MOVE RR, LL
MOVE #0x000A, RR
;-- l * r
DI
MUL_IU
CALL mult_div
MD_FIN
EI
;;; } 26 Expr l * r
;-- l + r
ADD RR, #0x0009
;;; } 25 Expr l + r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 Expr * r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 26 Expression (variable name)
;;; } 25 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_002A:
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = which_w
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expression (cast)r
;;; { 26 Expr * r
;;; { 27 Expr l - r
;;; { 28 Expr ++r
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (args)
;-- load_rr_var args = -2(FP), SP at -28 (16 bit)
MOVE 26(SP), RR
;;; } 29 Expression (variable name)
;-- ++
ADD RR, #0x0002
;-- store_rr_var args = -2(FP), SP at -28
MOVE RR, 26(SP)
;;; } 28 Expr ++r
;-- l - r
SUB RR, #0x0002
;;; } 27 Expr l - r
;-- content
MOVE (RR), RR
;;; } 26 Expr * r
;;; } 25 Expression (cast)r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 Expr * r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (which_w)
;-- load_rr_var which_w = -16(FP), SP at -30 (16 bit)
MOVE 14(SP), RR
;;; } 26 Expression (variable name)
;;; } 25 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (16 bit)
MOVE (SP)+, RR
;-- assign (16 bit)
MOVE RR, (LL)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_cont_40
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_case_42_0000:
;;; { 23 ExpressionStatement
;;; { 24 Expr l + r
;;; { 25 Expr --r
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (format)
;-- load_rr_var format = 2(FP), SP at -28 (16 bit)
MOVE 30(SP), RR
;;; } 26 Expression (variable name)
;-- --
SUB RR, #0x0001
;-- store_rr_var format = 2(FP), SP at -28
MOVE RR, 30(SP)
;;; } 25 Expr --r
;-- l + r
ADD RR, #0x0001
;;; } 24 Expr l + r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_brk_42
;;; } 22 break/continue Statement
;;; { 22 case Statement
L12_deflt_42:
;;; { 23 ExpressionStatement
;;; { 24 Expr l += r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = len
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l + r
;;; { 26 Expr l(r)
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; { 27 ParameterDeclaration
;;; isEllipsis = false
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; } 27 ParameterDeclaration
;;; { 27 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -5(FP), SP at -28 (8 bit)
MOVE 23(SP), RS
;;; } 27 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 26 Expr l(r)
;;; { 26 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_ll_var len = -4(FP), SP at -28 (16 bit)
MOVE 24(SP), LL
;;; } 26 Expression (variable name)
;-- scale_rr *1
;-- l + r
ADD LL, RR
;;; } 25 Expr l + r
;-- store_rr_var len = -4(FP), SP at -28
MOVE RR, 24(SP)
;;; } 24 Expr l += r
;;; } 23 ExpressionStatement
;;; } 22 case Statement
;;; { 22 break/continue Statement
;-- branch
JMP L12_brk_42
;;; } 22 break/continue Statement
;;; } 21 List<case Statement>
;-- pop 0 bytes
;;; } 20 CompoundStatement
L12_brk_42:
;;; } 19 SwitchStatement
;;; { 19 break/continue Statement
;-- branch
JMP L12_brk_41
;;; } 19 break/continue Statement
;;; } 18 List<SwitchStatement>
;-- pop 0 bytes
;;; } 17 CompoundStatement
L12_cont_40:
;-- branch
JMP L12_loop_40
L12_brk_41:
;;; } 16 for Statement
;;; } 15 List<IfElseStatement>
;-- pop 0 bytes
;;; } 14 CompoundStatement
L12_cont_37:
;;; { 14 Expr l = r
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; { 15 Expr * r
;;; { 16 Expr l - r
;;; { 17 Expr ++r
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (format)
;-- load_rr_var format = 2(FP), SP at -28 (16 bit)
MOVE 30(SP), RR
;;; } 18 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var format = 2(FP), SP at -28
MOVE RR, 30(SP)
;;; } 17 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 16 Expr l - r
;-- content
MOVE (RR), RS
;;; } 15 Expr * r
;-- store_rr_var c = -5(FP), SP at -28
MOVE R, 23(SP)
;;; } 14 Expr l = r
;-- branch_true
JMP RRNZ, L12_loop_37
L12_brk_38:
;;; } 13 while Statement
;;; { 13 return Statement
;;; { 14 Expression (variable name)
;;; expr_type = "identifier" (len)
;-- load_rr_var len = -4(FP), SP at -28 (16 bit)
MOVE 24(SP), RR
;;; } 14 Expression (variable name)
;-- ret
ADD SP, #28
RET
;;; } 13 return Statement
;;; } 12 List<while Statement>
;-- pop 28 bytes
ADD SP, #28
;;; } 11 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 11 FunctionDefinition
;;; { 12 TypeName
;;; { 13 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 13 TypeSpecifier (all)
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = getchr
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
;;; } 12 TypeName
;;; { 12 List<DeclItem>
;;; { 13 DeclItem
;;; what = DECL_NAME
;;; name = getchr
;;; } 13 DeclItem
;;; { 13 DeclItem
;;; what = DECL_FUN
;;; } 13 DeclItem
;;; } 12 List<DeclItem>
Cgetchr:
;;; { 12 CompoundStatement
;;; { 13 InitDeclarator
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;-- push_zero 1 bytes
CLRB -(SP)
;;; } 13 InitDeclarator
;;; { 13 List<while Statement>
;;; { 14 while Statement
L13_loop_46:
;;; { 15 ExpressionStatement
;;; } 15 ExpressionStatement
L13_cont_46:
;;; { 15 Expr ! r
;;; { 16 Expression (variable name)
;;; expr_type = "identifier" (serial_in_length)
;-- load_rr_var serial_in_length, (8 bit)
MOVE (Cserial_in_length), RU
;;; } 16 Expression (variable name)
;-- 16 bit ! r
LNOT RR
;;; } 15 Expr ! r
;-- branch_true
JMP RRNZ, L13_loop_46
L13_brk_47:
;;; } 14 while Statement
;;; { 14 ExpressionStatement
;;; { 15 Expr l = r
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 Expr l[r]
;;; { 17 TypeName
;;; { 18 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 18 TypeSpecifier (all)
;;; { 18 List<DeclItem>
;;; { 19 DeclItem
;;; what = DECL_NAME
;;; name = serial_in_buffer
;;; } 19 DeclItem
;;; } 18 List<DeclItem>
;;; } 17 TypeName
;;; { 17 Expr l[r]
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (serial_in_get)
;-- load_rr_var serial_in_get, (8 bit)
MOVE (Cserial_in_get), RU
;;; } 18 Expression (variable name)
;-- scale_rr *1
;-- add_address serial_in_buffer
ADD RR, #Cserial_in_buffer
;;; } 17 Expr l[r]
;-- content
MOVE (RR), RU
;;; } 16 Expr l[r]
;-- store_rr_var c = -1(FP), SP at -1
MOVE R, 0(SP)
;;; } 15 Expr l = r
;;; } 14 ExpressionStatement
;;; { 14 ExpressionStatement
;;; { 15 Expr l = r
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = serial_in_get
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 Expr l & r
;;; { 17 TypeName (internal)
;;; { 18 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 18 TypeSpecifier (all)
;;; } 17 TypeName (internal)
;;; { 17 Expr ++r
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (serial_in_get)
;-- load_rr_var serial_in_get, (8 bit)
MOVE (Cserial_in_get), RU
;;; } 18 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var serial_in_get
MOVE R, (Cserial_in_get)
;;; } 17 Expr ++r
;-- l & r
AND RR, #0x000F
;;; } 16 Expr l & r
;-- store_rr_var serial_in_get
MOVE R, (Cserial_in_get)
;;; } 15 Expr l = r
;;; } 14 ExpressionStatement
;;; { 14 ExpressionStatement
DI
;;; } 14 ExpressionStatement
;;; { 14 ExpressionStatement
;;; { 15 Expr --r
;;; { 16 Expression (variable name)
;;; expr_type = "identifier" (serial_in_length)
;-- load_rr_var serial_in_length, (8 bit)
MOVE (Cserial_in_length), RU
;;; } 16 Expression (variable name)
;-- --
SUB RR, #0x0001
;-- store_rr_var serial_in_length
MOVE R, (Cserial_in_length)
;;; } 15 Expr --r
;;; } 14 ExpressionStatement
;;; { 14 ExpressionStatement
EI
;;; } 14 ExpressionStatement
;;; { 14 return Statement
;;; { 15 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -1 (8 bit)
MOVE 0(SP), RS
;;; } 15 Expression (variable name)
;-- ret
ADD SP, #1
RET
;;; } 14 return Statement
;;; } 13 List<while Statement>
;-- pop 1 bytes
ADD SP, #1
;;; } 12 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 12 FunctionDefinition
;;; { 13 TypeName
;;; { 14 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 14 TypeSpecifier (all)
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = peekchr
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
;;; } 13 TypeName
;;; { 13 List<DeclItem>
;;; { 14 DeclItem
;;; what = DECL_NAME
;;; name = peekchr
;;; } 14 DeclItem
;;; { 14 DeclItem
;;; what = DECL_FUN
;;; } 14 DeclItem
;;; } 13 List<DeclItem>
Cpeekchr:
;;; { 13 CompoundStatement
;;; { 14 List<while Statement>
;;; { 15 while Statement
L14_loop_48:
;;; { 16 ExpressionStatement
;;; } 16 ExpressionStatement
L14_cont_48:
;;; { 16 Expr ! r
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (serial_in_length)
;-- load_rr_var serial_in_length, (8 bit)
MOVE (Cserial_in_length), RU
;;; } 17 Expression (variable name)
;-- 16 bit ! r
LNOT RR
;;; } 16 Expr ! r
;-- branch_true
JMP RRNZ, L14_loop_48
L14_brk_49:
;;; } 15 while Statement
;;; { 15 return Statement
;;; { 16 Expr l[r]
;;; { 17 TypeName
;;; { 18 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 18 TypeSpecifier (all)
;;; { 18 List<DeclItem>
;;; { 19 DeclItem
;;; what = DECL_NAME
;;; name = serial_in_buffer
;;; } 19 DeclItem
;;; } 18 List<DeclItem>
;;; } 17 TypeName
;;; { 17 Expr l[r]
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (serial_in_get)
;-- load_rr_var serial_in_get, (8 bit)
MOVE (Cserial_in_get), RU
;;; } 18 Expression (variable name)
;-- scale_rr *1
;-- add_address serial_in_buffer
ADD RR, #Cserial_in_buffer
;;; } 17 Expr l[r]
;-- content
MOVE (RR), RU
;;; } 16 Expr l[r]
;-- ret
RET
;;; } 15 return Statement
;;; } 14 List<while Statement>
;-- pop 0 bytes
;;; } 13 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 13 FunctionDefinition
;;; { 14 TypeName
;;; { 15 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 15 TypeSpecifier (all)
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = getnibble
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
;;; } 14 TypeName
;;; { 14 List<DeclItem>
;;; { 15 DeclItem
;;; what = DECL_NAME
;;; name = getnibble
;;; } 15 DeclItem
;;; { 15 DeclItem
;;; what = DECL_FUN
;;; { 16 List<ParameterDeclaration>
;;; { 17 ParameterDeclaration
;;; isEllipsis = false
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = echo
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; } 17 ParameterDeclaration
;;; } 16 List<ParameterDeclaration>
;;; } 15 DeclItem
;;; } 14 List<DeclItem>
Cgetnibble:
;;; { 14 CompoundStatement
;;; { 15 InitDeclarator
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; { 16 Initializer (skalar)
;;; { 17 Expr l(r)
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = peekchr
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;-- push 2 bytes
;-- call
CALL Cpeekchr
;-- pop 0 bytes
;;; } 17 Expr l(r)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; } 16 Initializer (skalar)
;;; } 15 InitDeclarator
;;; { 15 InitDeclarator
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = ret
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; { 16 Initializer (skalar)
;;; { 17 NumericExpression (constant 1 = 0x1)
;-- load_rr_constant
MOVE #0xFFFF, RR
;;; } 17 NumericExpression (constant 1 = 0x1)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 16 Initializer (skalar)
;;; } 15 InitDeclarator
;;; { 15 List<IfElseStatement>
;;; { 16 IfElseStatement
;;; { 17 Expr l && r
;;; { 18 TypeName (internal)
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; } 18 TypeName (internal)
;;; { 18 IfElseStatement
;;; { 19 Expr l >= r
;;; { 20 TypeName (internal)
;;; { 21 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 21 TypeSpecifier (all)
;;; } 20 TypeName (internal)
;;; { 20 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -3 (8 bit)
MOVE 2(SP), RS
;;; } 20 Expression (variable name)
;-- l >= r
SGE RR, #0x0030
;;; } 19 Expr l >= r
;-- branch_false
JMP RRZ, L15_endif_51
;;; { 19 ExpressionStatement
;;; { 20 Expr l <= r
;;; { 21 TypeName (internal)
;;; { 22 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 22 TypeSpecifier (all)
;;; } 21 TypeName (internal)
;;; { 21 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -3 (8 bit)
MOVE 2(SP), RS
;;; } 21 Expression (variable name)
;-- l <= r
SLE RR, #0x0039
;;; } 20 Expr l <= r
;;; } 19 ExpressionStatement
L15_endif_51:
;;; } 18 IfElseStatement
;;; } 17 Expr l && r
;-- branch_false
JMP RRZ, L15_else_50
;;; { 17 ExpressionStatement
;;; { 18 Expr l = r
;;; { 19 TypeName
;;; { 20 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 20 TypeSpecifier (all)
;;; { 20 List<DeclItem>
;;; { 21 DeclItem
;;; what = DECL_NAME
;;; name = ret
;;; } 21 DeclItem
;;; } 20 List<DeclItem>
;;; } 19 TypeName
;;; { 19 Expr l - r
;;; { 20 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -3 (8 bit)
MOVE 2(SP), RS
;;; } 20 Expression (variable name)
;-- l - r
SUB RR, #0x0030
;;; } 19 Expr l - r
;-- store_rr_var ret = -3(FP), SP at -3
MOVE RR, 0(SP)
;;; } 18 Expr l = r
;;; } 17 ExpressionStatement
;-- branch
JMP L15_endif_50
L15_else_50:
;;; { 17 IfElseStatement
;;; { 18 Expr l && r
;;; { 19 TypeName (internal)
;;; { 20 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 20 TypeSpecifier (all)
;;; } 19 TypeName (internal)
;;; { 19 IfElseStatement
;;; { 20 Expr l >= r
;;; { 21 TypeName (internal)
;;; { 22 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 22 TypeSpecifier (all)
;;; } 21 TypeName (internal)
;;; { 21 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -3 (8 bit)
MOVE 2(SP), RS
;;; } 21 Expression (variable name)
;-- l >= r
SGE RR, #0x0041
;;; } 20 Expr l >= r
;-- branch_false
JMP RRZ, L15_endif_53
;;; { 20 ExpressionStatement
;;; { 21 Expr l <= r
;;; { 22 TypeName (internal)
;;; { 23 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 23 TypeSpecifier (all)
;;; } 22 TypeName (internal)
;;; { 22 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -3 (8 bit)
MOVE 2(SP), RS
;;; } 22 Expression (variable name)
;-- l <= r
SLE RR, #0x0046
;;; } 21 Expr l <= r
;;; } 20 ExpressionStatement
L15_endif_53:
;;; } 19 IfElseStatement
;;; } 18 Expr l && r
;-- branch_false
JMP RRZ, L15_else_52
;;; { 18 ExpressionStatement
;;; { 19 Expr l = r
;;; { 20 TypeName
;;; { 21 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 21 TypeSpecifier (all)
;;; { 21 List<DeclItem>
;;; { 22 DeclItem
;;; what = DECL_NAME
;;; name = ret
;;; } 22 DeclItem
;;; } 21 List<DeclItem>
;;; } 20 TypeName
;;; { 20 Expr l - r
;;; { 21 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -3 (8 bit)
MOVE 2(SP), RS
;;; } 21 Expression (variable name)
;-- l - r
SUB RR, #0x0037
;;; } 20 Expr l - r
;-- store_rr_var ret = -3(FP), SP at -3
MOVE RR, 0(SP)
;;; } 19 Expr l = r
;;; } 18 ExpressionStatement
;-- branch
JMP L15_endif_52
L15_else_52:
;;; { 18 IfElseStatement
;;; { 19 Expr l && r
;;; { 20 TypeName (internal)
;;; { 21 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 21 TypeSpecifier (all)
;;; } 20 TypeName (internal)
;;; { 20 IfElseStatement
;;; { 21 Expr l >= r
;;; { 22 TypeName (internal)
;;; { 23 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 23 TypeSpecifier (all)
;;; } 22 TypeName (internal)
;;; { 22 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -3 (8 bit)
MOVE 2(SP), RS
;;; } 22 Expression (variable name)
;-- l >= r
SGE RR, #0x0061
;;; } 21 Expr l >= r
;-- branch_false
JMP RRZ, L15_endif_55
;;; { 21 ExpressionStatement
;;; { 22 Expr l <= r
;;; { 23 TypeName (internal)
;;; { 24 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 24 TypeSpecifier (all)
;;; } 23 TypeName (internal)
;;; { 23 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -3 (8 bit)
MOVE 2(SP), RS
;;; } 23 Expression (variable name)
;-- l <= r
SLE RR, #0x0066
;;; } 22 Expr l <= r
;;; } 21 ExpressionStatement
L15_endif_55:
;;; } 20 IfElseStatement
;;; } 19 Expr l && r
;-- branch_false
JMP RRZ, L15_endif_54
;;; { 19 ExpressionStatement
;;; { 20 Expr l = r
;;; { 21 TypeName
;;; { 22 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 22 TypeSpecifier (all)
;;; { 22 List<DeclItem>
;;; { 23 DeclItem
;;; what = DECL_NAME
;;; name = ret
;;; } 23 DeclItem
;;; } 22 List<DeclItem>
;;; } 21 TypeName
;;; { 21 Expr l - r
;;; { 22 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -3 (8 bit)
MOVE 2(SP), RS
;;; } 22 Expression (variable name)
;-- l - r
SUB RR, #0x0057
;;; } 21 Expr l - r
;-- store_rr_var ret = -3(FP), SP at -3
MOVE RR, 0(SP)
;;; } 20 Expr l = r
;;; } 19 ExpressionStatement
L15_endif_54:
;;; } 18 IfElseStatement
L15_endif_52:
;;; } 17 IfElseStatement
L15_endif_50:
;;; } 16 IfElseStatement
;;; { 16 IfElseStatement
;;; { 17 Expr l != r
;;; { 18 TypeName (internal)
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; } 18 TypeName (internal)
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (ret)
;-- load_rr_var ret = -3(FP), SP at -3 (16 bit)
MOVE 0(SP), RR
;;; } 18 Expression (variable name)
;-- l != r
SNE RR, #0xFFFF
;;; } 17 Expr l != r
;-- branch_false
JMP RRZ, L15_endif_56
;;; { 17 CompoundStatement
;;; { 18 List<ExpressionStatement>
;;; { 19 ExpressionStatement
;;; { 20 Expr l(r)
;;; { 21 TypeName
;;; { 22 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 22 TypeSpecifier (all)
;;; { 22 List<DeclItem>
;;; { 23 DeclItem
;;; what = DECL_NAME
;;; name = getchr
;;; } 23 DeclItem
;;; } 22 List<DeclItem>
;;; } 21 TypeName
;-- push 2 bytes
;-- call
CALL Cgetchr
;-- pop 0 bytes
;;; } 20 Expr l(r)
;;; } 19 ExpressionStatement
;;; { 19 IfElseStatement
;;; { 20 Expression (variable name)
;;; expr_type = "identifier" (echo)
;-- load_rr_var echo = 2(FP), SP at -3 (8 bit)
MOVE 5(SP), RS
;;; } 20 Expression (variable name)
;-- branch_false
JMP RRZ, L15_endif_57
;;; { 20 ExpressionStatement
;;; { 21 Expr l(r)
;;; { 22 TypeName
;;; { 23 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 23 TypeSpecifier (all)
;;; { 23 List<DeclItem>
;;; { 24 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 24 DeclItem
;;; } 23 List<DeclItem>
;;; } 22 TypeName
;;; { 22 ParameterDeclaration
;;; isEllipsis = false
;;; { 23 TypeName
;;; { 24 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 24 TypeSpecifier (all)
;;; { 24 List<DeclItem>
;;; { 25 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 25 DeclItem
;;; } 24 List<DeclItem>
;;; } 23 TypeName
;;; } 22 ParameterDeclaration
;;; { 22 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -3 (8 bit)
MOVE 2(SP), RS
;;; } 22 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 21 Expr l(r)
;;; } 20 ExpressionStatement
L15_endif_57:
;;; } 19 IfElseStatement
;;; } 18 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 17 CompoundStatement
L15_endif_56:
;;; } 16 IfElseStatement
;;; { 16 return Statement
;;; { 17 Expression (variable name)
;;; expr_type = "identifier" (ret)
;-- load_rr_var ret = -3(FP), SP at -3 (16 bit)
MOVE 0(SP), RR
;;; } 17 Expression (variable name)
;-- ret
ADD SP, #3
RET
;;; } 16 return Statement
;;; } 15 List<IfElseStatement>
;-- pop 3 bytes
ADD SP, #3
;;; } 14 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 14 FunctionDefinition
;;; { 15 TypeName
;;; { 16 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 16 TypeSpecifier (all)
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = gethex
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
;;; } 15 TypeName
;;; { 15 List<DeclItem>
;;; { 16 DeclItem
;;; what = DECL_NAME
;;; name = gethex
;;; } 16 DeclItem
;;; { 16 DeclItem
;;; what = DECL_FUN
;;; { 17 List<ParameterDeclaration>
;;; { 18 ParameterDeclaration
;;; isEllipsis = false
;;; { 19 TypeName
;;; { 20 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 20 TypeSpecifier (all)
;;; { 20 List<DeclItem>
;;; { 21 DeclItem
;;; what = DECL_NAME
;;; name = echo
;;; } 21 DeclItem
;;; } 20 List<DeclItem>
;;; } 19 TypeName
;;; } 18 ParameterDeclaration
;;; } 17 List<ParameterDeclaration>
;;; } 16 DeclItem
;;; } 15 List<DeclItem>
Cgethex:
;;; { 15 CompoundStatement
;;; { 16 InitDeclarator
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = ret
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; { 17 Initializer (skalar)
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 17 Initializer (skalar)
;;; } 16 InitDeclarator
;;; { 16 InitDeclarator
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;-- push_zero 1 bytes
CLRB -(SP)
;;; } 16 InitDeclarator
;;; { 16 List<while Statement>
;;; { 17 while Statement
;-- branch
JMP L16_cont_58
L16_loop_58:
;;; { 18 ExpressionStatement
;;; { 19 Expr l = r
;;; { 20 TypeName
;;; { 21 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 21 TypeSpecifier (all)
;;; { 21 List<DeclItem>
;;; { 22 DeclItem
;;; what = DECL_NAME
;;; name = ret
;;; } 22 DeclItem
;;; } 21 List<DeclItem>
;;; } 20 TypeName
;;; { 20 Expr l | r
;;; { 21 TypeName (internal)
;;; { 22 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 22 TypeSpecifier (all)
;;; } 21 TypeName (internal)
;;; { 21 Expr l << r
;;; { 22 TypeName (internal)
;;; { 23 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 23 TypeSpecifier (all)
;;; } 22 TypeName (internal)
;;; { 22 Expression (variable name)
;;; expr_type = "identifier" (ret)
;-- load_rr_var ret = -2(FP), SP at -3 (16 bit)
MOVE 1(SP), RR
;;; } 22 Expression (variable name)
;-- l << r
LSL RR, #0x0004
;;; } 21 Expr l << r
;-- move_rr_to_ll
MOVE RR, LL
;;; { 21 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -3(FP), SP at -3 (8 bit)
MOVE 0(SP), RS
;;; } 21 Expression (variable name)
;-- l | r
OR LL, RR
;;; } 20 Expr l | r
;-- store_rr_var ret = -2(FP), SP at -3
MOVE RR, 1(SP)
;;; } 19 Expr l = r
;;; } 18 ExpressionStatement
L16_cont_58:
;;; { 18 Expr l != r
;;; { 19 TypeName (internal)
;;; { 20 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 20 TypeSpecifier (all)
;;; } 19 TypeName (internal)
;;; { 19 Expr l = r
;;; { 20 TypeName
;;; { 21 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 21 TypeSpecifier (all)
;;; { 21 List<DeclItem>
;;; { 22 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 22 DeclItem
;;; } 21 List<DeclItem>
;;; } 20 TypeName
;;; { 20 Expr l(r)
;;; { 21 TypeName
;;; { 22 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 22 TypeSpecifier (all)
;;; { 22 List<DeclItem>
;;; { 23 DeclItem
;;; what = DECL_NAME
;;; name = getnibble
;;; } 23 DeclItem
;;; } 22 List<DeclItem>
;;; } 21 TypeName
;;; { 21 ParameterDeclaration
;;; isEllipsis = false
;;; { 22 TypeName
;;; { 23 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 23 TypeSpecifier (all)
;;; { 23 List<DeclItem>
;;; { 24 DeclItem
;;; what = DECL_NAME
;;; name = echo
;;; } 24 DeclItem
;;; } 23 List<DeclItem>
;;; } 22 TypeName
;;; } 21 ParameterDeclaration
;;; { 21 Expression (variable name)
;;; expr_type = "identifier" (echo)
;-- load_rr_var echo = 2(FP), SP at -3 (8 bit)
MOVE 5(SP), RS
;;; } 21 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 1 bytes
;-- call
CALL Cgetnibble
;-- pop 1 bytes
ADD SP, #1
;;; } 20 Expr l(r)
;-- store_rr_var c = -3(FP), SP at -3
MOVE R, 0(SP)
;;; } 19 Expr l = r
;-- l != r
SNE RR, #0xFFFF
;;; } 18 Expr l != r
;-- branch_true
JMP RRNZ, L16_loop_58
L16_brk_59:
;;; } 17 while Statement
;;; { 17 return Statement
;;; { 18 Expression (variable name)
;;; expr_type = "identifier" (ret)
;-- load_rr_var ret = -2(FP), SP at -3 (16 bit)
MOVE 1(SP), RR
;;; } 18 Expression (variable name)
;-- ret
ADD SP, #3
RET
;;; } 17 return Statement
;;; } 16 List<while Statement>
;-- pop 3 bytes
ADD SP, #3
;;; } 15 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 15 FunctionDefinition
;;; { 16 TypeName
;;; { 17 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 17 TypeSpecifier (all)
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = show_time
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
;;; } 16 TypeName
;;; { 16 List<DeclItem>
;;; { 17 DeclItem
;;; what = DECL_NAME
;;; name = show_time
;;; } 17 DeclItem
;;; { 17 DeclItem
;;; what = DECL_FUN
;;; } 17 DeclItem
;;; } 16 List<DeclItem>
Cshow_time:
;;; { 16 CompoundStatement
;;; { 17 InitDeclarator
;;; { 18 List<DeclItem>
;;; { 19 DeclItem
;;; what = DECL_NAME
;;; name = sl
;;; } 19 DeclItem
;;; } 18 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 17 InitDeclarator
;;; { 17 InitDeclarator
;;; { 18 List<DeclItem>
;;; { 19 DeclItem
;;; what = DECL_NAME
;;; name = sm
;;; } 19 DeclItem
;;; } 18 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 17 InitDeclarator
;;; { 17 InitDeclarator
;;; { 18 List<DeclItem>
;;; { 19 DeclItem
;;; what = DECL_NAME
;;; name = sh
;;; } 19 DeclItem
;;; } 18 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 17 InitDeclarator
;;; { 17 List<do while Statement>
;;; { 18 do while Statement
L17_loop_60:
;;; { 19 CompoundStatement
;;; { 20 List<ExpressionStatement>
;;; { 21 ExpressionStatement
;;; { 22 Expr l = r
;;; { 23 TypeName
;;; { 24 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 24 TypeSpecifier (all)
;;; { 24 List<DeclItem>
;;; { 25 DeclItem
;;; what = DECL_NAME
;;; name = seconds_changed
;;; } 25 DeclItem
;;; } 24 List<DeclItem>
;;; } 23 TypeName
;;; { 23 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 23 NumericExpression (constant 0 = 0x0)
;-- store_rr_var seconds_changed
MOVE R, (Cseconds_changed)
;;; } 22 Expr l = r
;;; } 21 ExpressionStatement
;;; { 21 ExpressionStatement
;;; { 22 Expr l = r
;;; { 23 TypeName
;;; { 24 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 24 TypeSpecifier (all)
;;; { 24 List<DeclItem>
;;; { 25 DeclItem
;;; what = DECL_NAME
;;; name = sl
;;; } 25 DeclItem
;;; } 24 List<DeclItem>
;;; } 23 TypeName
;;; { 23 Expression (variable name)
;;; expr_type = "identifier" (seconds_low)
;-- load_rr_var seconds_low, (16 bit)
MOVE (Cseconds_low), RR
;;; } 23 Expression (variable name)
;-- store_rr_var sl = -2(FP), SP at -6
MOVE RR, 4(SP)
;;; } 22 Expr l = r
;;; } 21 ExpressionStatement
;;; { 21 ExpressionStatement
;;; { 22 Expr l = r
;;; { 23 TypeName
;;; { 24 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 24 TypeSpecifier (all)
;;; { 24 List<DeclItem>
;;; { 25 DeclItem
;;; what = DECL_NAME
;;; name = sm
;;; } 25 DeclItem
;;; } 24 List<DeclItem>
;;; } 23 TypeName
;;; { 23 Expression (variable name)
;;; expr_type = "identifier" (seconds_mid)
;-- load_rr_var seconds_mid, (16 bit)
MOVE (Cseconds_mid), RR
;;; } 23 Expression (variable name)
;-- store_rr_var sm = -4(FP), SP at -6
MOVE RR, 2(SP)
;;; } 22 Expr l = r
;;; } 21 ExpressionStatement
;;; { 21 ExpressionStatement
;;; { 22 Expr l = r
;;; { 23 TypeName
;;; { 24 TypeSpecifier (all)
;;; spec = unsigned int (82000)
;;; } 24 TypeSpecifier (all)
;;; { 24 List<DeclItem>
;;; { 25 DeclItem
;;; what = DECL_NAME
;;; name = sh
;;; } 25 DeclItem
;;; } 24 List<DeclItem>
;;; } 23 TypeName
;;; { 23 Expression (variable name)
;;; expr_type = "identifier" (seconds_high)
;-- load_rr_var seconds_high, (16 bit)
MOVE (Cseconds_high), RR
;;; } 23 Expression (variable name)
;-- store_rr_var sh = -6(FP), SP at -6
MOVE RR, 0(SP)
;;; } 22 Expr l = r
;;; } 21 ExpressionStatement
;;; } 20 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 19 CompoundStatement
L17_cont_60:
;;; { 19 Expression (variable name)
;;; expr_type = "identifier" (seconds_changed)
;-- load_rr_var seconds_changed, (8 bit)
MOVE (Cseconds_changed), RU
;;; } 19 Expression (variable name)
;-- branch_true
JMP RRNZ, L17_loop_60
L17_brk_61:
;;; } 18 do while Statement
;;; { 18 ExpressionStatement
;;; { 19 Expr l(r)
;;; { 20 TypeName
;;; { 21 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 21 TypeSpecifier (all)
;;; { 21 List<DeclItem>
;;; { 22 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 22 DeclItem
;;; } 21 List<DeclItem>
;;; } 20 TypeName
;;; { 20 Expr (l , r)
;;; { 21 ParameterDeclaration
;;; isEllipsis = true
;;; { 22 TypeName
;;; { 23 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 23 TypeSpecifier (all)
;;; { 23 List<DeclItem>
;;; { 24 DeclItem
;;; what = DECL_POINTER
;;; { 25 List<Ptr>
;;; { 26 Ptr
;;; } 26 Ptr
;;; } 25 List<Ptr>
;;; } 24 DeclItem
;;; { 24 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 24 DeclItem
;;; } 23 List<DeclItem>
;;; } 22 TypeName
;;; } 21 ParameterDeclaration
;;; { 21 Expression (variable name)
;;; expr_type = "identifier" (sl)
;-- load_rr_var sl = -2(FP), SP at -6 (16 bit)
MOVE 4(SP), RR
;;; } 21 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 21 Expr (l , r)
;;; { 22 ParameterDeclaration
;;; isEllipsis = true
;;; { 23 TypeName
;;; { 24 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 24 TypeSpecifier (all)
;;; { 24 List<DeclItem>
;;; { 25 DeclItem
;;; what = DECL_POINTER
;;; { 26 List<Ptr>
;;; { 27 Ptr
;;; } 27 Ptr
;;; } 26 List<Ptr>
;;; } 25 DeclItem
;;; { 25 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 25 DeclItem
;;; } 24 List<DeclItem>
;;; } 23 TypeName
;;; } 22 ParameterDeclaration
;;; { 22 Expression (variable name)
;;; expr_type = "identifier" (sm)
;-- load_rr_var sm = -4(FP), SP at -8 (16 bit)
MOVE 4(SP), RR
;;; } 22 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 22 Expr (l , r)
;;; { 23 ParameterDeclaration
;;; isEllipsis = true
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_POINTER
;;; { 27 List<Ptr>
;;; { 28 Ptr
;;; } 28 Ptr
;;; } 27 List<Ptr>
;;; } 26 DeclItem
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; } 23 ParameterDeclaration
;;; { 23 Expression (variable name)
;;; expr_type = "identifier" (sh)
;-- load_rr_var sh = -6(FP), SP at -10 (16 bit)
MOVE 4(SP), RR
;;; } 23 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 23 ParameterDeclaration
;;; isEllipsis = true
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_POINTER
;;; { 27 List<Ptr>
;;; { 28 Ptr
;;; } 28 Ptr
;;; } 27 List<Ptr>
;;; } 26 DeclItem
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; } 23 ParameterDeclaration
;;; { 23 StringExpression
;-- load_rr_string
MOVE #Cstr_28, RR
;;; } 23 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 22 Expr (l , r)
;;; } 21 Expr (l , r)
;;; } 20 Expr (l , r)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 8 bytes
ADD SP, #8
;;; } 19 Expr l(r)
;;; } 18 ExpressionStatement
;;; } 17 List<do while Statement>
;-- pop 6 bytes
ADD SP, #6
;;; } 16 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 16 FunctionDefinition
;;; { 17 TypeName
;;; { 18 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 18 TypeSpecifier (all)
;;; { 18 List<DeclItem>
;;; { 19 DeclItem
;;; what = DECL_NAME
;;; name = display_memory
;;; } 19 DeclItem
;;; } 18 List<DeclItem>
;;; } 17 TypeName
;;; { 17 List<DeclItem>
;;; { 18 DeclItem
;;; what = DECL_NAME
;;; name = display_memory
;;; } 18 DeclItem
;;; { 18 DeclItem
;;; what = DECL_FUN
;;; { 19 List<ParameterDeclaration>
;;; { 20 ParameterDeclaration
;;; isEllipsis = false
;;; { 21 TypeName
;;; { 22 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 22 TypeSpecifier (all)
;;; { 22 List<DeclItem>
;;; { 23 DeclItem
;;; what = DECL_POINTER
;;; { 24 List<Ptr>
;;; { 25 Ptr
;;; } 25 Ptr
;;; } 24 List<Ptr>
;;; } 23 DeclItem
;;; { 23 DeclItem
;;; what = DECL_NAME
;;; name = address
;;; } 23 DeclItem
;;; } 22 List<DeclItem>
;;; } 21 TypeName
;;; } 20 ParameterDeclaration
;;; } 19 List<ParameterDeclaration>
;;; } 18 DeclItem
;;; } 17 List<DeclItem>
Cdisplay_memory:
;;; { 17 CompoundStatement
;;; { 18 InitDeclarator
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;-- push_zero 1 bytes
CLRB -(SP)
;;; } 18 InitDeclarator
;;; { 18 InitDeclarator
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = row
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 18 InitDeclarator
;;; { 18 InitDeclarator
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = col
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 18 InitDeclarator
;;; { 18 List<for Statement>
;;; { 19 for Statement
;;; { 20 ExpressionStatement
;;; { 21 Expr l = r
;;; { 22 TypeName
;;; { 23 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 23 TypeSpecifier (all)
;;; { 23 List<DeclItem>
;;; { 24 DeclItem
;;; what = DECL_NAME
;;; name = row
;;; } 24 DeclItem
;;; } 23 List<DeclItem>
;;; } 22 TypeName
;;; { 22 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 22 NumericExpression (constant 0 = 0x0)
;-- store_rr_var row = -3(FP), SP at -5
MOVE RR, 2(SP)
;;; } 21 Expr l = r
;;; } 20 ExpressionStatement
;-- branch
JMP L18_tst_62
L18_loop_62:
;;; { 20 CompoundStatement
;;; { 21 List<ExpressionStatement>
;;; { 22 ExpressionStatement
;;; { 23 Expr l(r)
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; { 24 Expr (l , r)
;;; { 25 ParameterDeclaration
;;; isEllipsis = true
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_POINTER
;;; { 29 List<Ptr>
;;; { 30 Ptr
;;; } 30 Ptr
;;; } 29 List<Ptr>
;;; } 28 DeclItem
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; } 25 ParameterDeclaration
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (address)
;-- load_rr_var address = 2(FP), SP at -5 (16 bit)
MOVE 7(SP), RR
;;; } 25 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 25 ParameterDeclaration
;;; isEllipsis = true
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_POINTER
;;; { 29 List<Ptr>
;;; { 30 Ptr
;;; } 30 Ptr
;;; } 29 List<Ptr>
;;; } 28 DeclItem
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; } 25 ParameterDeclaration
;;; { 25 StringExpression
;-- load_rr_string
MOVE #Cstr_29, RR
;;; } 25 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 24 Expr (l , r)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 4 bytes
ADD SP, #4
;;; } 23 Expr l(r)
;;; } 22 ExpressionStatement
;;; { 22 for Statement
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = col
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 25 NumericExpression (constant 0 = 0x0)
;-- store_rr_var col = -5(FP), SP at -5
MOVE RR, 0(SP)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;-- branch
JMP L18_tst_64
L18_loop_64:
;;; { 23 ExpressionStatement
;;; { 24 Expr l(r)
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr (l , r)
;;; { 26 ParameterDeclaration
;;; isEllipsis = true
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_POINTER
;;; { 30 List<Ptr>
;;; { 31 Ptr
;;; } 31 Ptr
;;; } 30 List<Ptr>
;;; } 29 DeclItem
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; } 26 ParameterDeclaration
;;; { 26 Expr * r
;;; { 27 Expr l - r
;;; { 28 Expr ++r
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (address)
;-- load_rr_var address = 2(FP), SP at -5 (16 bit)
MOVE 7(SP), RR
;;; } 29 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var address = 2(FP), SP at -5
MOVE RR, 7(SP)
;;; } 28 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 27 Expr l - r
;-- content
MOVE (RR), RU
;;; } 26 Expr * r
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 26 ParameterDeclaration
;;; isEllipsis = true
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_POINTER
;;; { 30 List<Ptr>
;;; { 31 Ptr
;;; } 31 Ptr
;;; } 30 List<Ptr>
;;; } 29 DeclItem
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; } 26 ParameterDeclaration
;;; { 26 StringExpression
;-- load_rr_string
MOVE #Cstr_30, RR
;;; } 26 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 25 Expr (l , r)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 4 bytes
ADD SP, #4
;;; } 24 Expr l(r)
;;; } 23 ExpressionStatement
L18_cont_64:
;;; { 23 Expr l - r
;;; { 24 Expr ++r
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (col)
;-- load_rr_var col = -5(FP), SP at -5 (16 bit)
MOVE 0(SP), RR
;;; } 25 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var col = -5(FP), SP at -5
MOVE RR, 0(SP)
;;; } 24 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 23 Expr l - r
L18_tst_64:
;;; { 23 Expr l < r
;;; { 24 TypeName (internal)
;;; { 25 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 25 TypeSpecifier (all)
;;; } 24 TypeName (internal)
;;; { 24 Expression (variable name)
;;; expr_type = "identifier" (col)
;-- load_rr_var col = -5(FP), SP at -5 (16 bit)
MOVE 0(SP), RR
;;; } 24 Expression (variable name)
;-- l < r
SLT RR, #0x0010
;;; } 23 Expr l < r
;-- branch_true
JMP RRNZ, L18_loop_64
L18_brk_65:
;;; } 22 for Statement
;;; { 22 ExpressionStatement
;;; { 23 Expr l -= r
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_POINTER
;;; { 27 List<Ptr>
;;; { 28 Ptr
;;; } 28 Ptr
;;; } 27 List<Ptr>
;;; } 26 DeclItem
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = address
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; { 24 Expr l - r
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (address)
;-- load_rr_var address = 2(FP), SP at -5 (16 bit)
MOVE 7(SP), RR
;;; } 25 Expression (variable name)
;-- l - r
SUB RR, #0x0010
;;; } 24 Expr l - r
;-- store_rr_var address = 2(FP), SP at -5
MOVE RR, 7(SP)
;;; } 23 Expr l -= r
;;; } 22 ExpressionStatement
;;; { 22 ExpressionStatement
;;; { 23 Expr l(r)
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; { 24 ParameterDeclaration
;;; isEllipsis = true
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_POINTER
;;; { 28 List<Ptr>
;;; { 29 Ptr
;;; } 29 Ptr
;;; } 28 List<Ptr>
;;; } 27 DeclItem
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; } 24 ParameterDeclaration
;;; { 24 StringExpression
;-- load_rr_string
MOVE #Cstr_31, RR
;;; } 24 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 23 Expr l(r)
;;; } 22 ExpressionStatement
;;; { 22 for Statement
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = col
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 25 NumericExpression (constant 0 = 0x0)
;-- store_rr_var col = -5(FP), SP at -5
MOVE RR, 0(SP)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;-- branch
JMP L18_tst_66
L18_loop_66:
;;; { 23 CompoundStatement
;;; { 24 List<ExpressionStatement>
;;; { 25 ExpressionStatement
;;; { 26 Expr l = r
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; { 27 Expr * r
;;; { 28 Expr l - r
;;; { 29 Expr ++r
;;; { 30 Expression (variable name)
;;; expr_type = "identifier" (address)
;-- load_rr_var address = 2(FP), SP at -5 (16 bit)
MOVE 7(SP), RR
;;; } 30 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var address = 2(FP), SP at -5
MOVE RR, 7(SP)
;;; } 29 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 28 Expr l - r
;-- content
MOVE (RR), RU
;;; } 27 Expr * r
;-- store_rr_var c = -1(FP), SP at -5
MOVE R, 4(SP)
;;; } 26 Expr l = r
;;; } 25 ExpressionStatement
;;; { 25 IfElseStatement
;;; { 26 Expr l < r
;;; { 27 TypeName (internal)
;;; { 28 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 28 TypeSpecifier (all)
;;; } 27 TypeName (internal)
;;; { 27 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -5 (8 bit)
MOVE 4(SP), RS
;;; } 27 Expression (variable name)
;-- l < r
SLT RR, #0x0020
;;; } 26 Expr l < r
;-- branch_false
JMP RRZ, L18_else_68
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 ParameterDeclaration
;;; isEllipsis = false
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 NumericExpression (constant 46 = 0x2E)
;-- load_rr_constant
MOVE #0x002E, RR
;;; } 28 NumericExpression (constant 46 = 0x2E)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;-- branch
JMP L18_endif_68
L18_else_68:
;;; { 26 IfElseStatement
;;; { 27 Expr l < r
;;; { 28 TypeName (internal)
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; } 28 TypeName (internal)
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -5 (8 bit)
MOVE 4(SP), RS
;;; } 28 Expression (variable name)
;-- l < r
SLT RR, #0x007F
;;; } 27 Expr l < r
;-- branch_false
JMP RRZ, L18_else_69
;;; { 27 ExpressionStatement
;;; { 28 Expr l(r)
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; { 29 ParameterDeclaration
;;; isEllipsis = false
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; } 29 ParameterDeclaration
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -5 (8 bit)
MOVE 4(SP), RS
;;; } 29 Expression (variable name)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 28 Expr l(r)
;;; } 27 ExpressionStatement
;-- branch
JMP L18_endif_69
L18_else_69:
;;; { 27 ExpressionStatement
;;; { 28 Expr l(r)
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = putchr
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; { 29 ParameterDeclaration
;;; isEllipsis = false
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; } 29 ParameterDeclaration
;;; { 29 NumericExpression (constant 46 = 0x2E)
;-- load_rr_constant
MOVE #0x002E, RR
;;; } 29 NumericExpression (constant 46 = 0x2E)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cputchr
;-- pop 1 bytes
ADD SP, #1
;;; } 28 Expr l(r)
;;; } 27 ExpressionStatement
L18_endif_69:
;;; } 26 IfElseStatement
L18_endif_68:
;;; } 25 IfElseStatement
;;; } 24 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 23 CompoundStatement
L18_cont_66:
;;; { 23 Expr l - r
;;; { 24 Expr ++r
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (col)
;-- load_rr_var col = -5(FP), SP at -5 (16 bit)
MOVE 0(SP), RR
;;; } 25 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var col = -5(FP), SP at -5
MOVE RR, 0(SP)
;;; } 24 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 23 Expr l - r
L18_tst_66:
;;; { 23 Expr l < r
;;; { 24 TypeName (internal)
;;; { 25 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 25 TypeSpecifier (all)
;;; } 24 TypeName (internal)
;;; { 24 Expression (variable name)
;;; expr_type = "identifier" (col)
;-- load_rr_var col = -5(FP), SP at -5 (16 bit)
MOVE 0(SP), RR
;;; } 24 Expression (variable name)
;-- l < r
SLT RR, #0x0010
;;; } 23 Expr l < r
;-- branch_true
JMP RRNZ, L18_loop_66
L18_brk_67:
;;; } 22 for Statement
;;; { 22 ExpressionStatement
;;; { 23 Expr l(r)
;;; { 24 TypeName
;;; { 25 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 25 TypeSpecifier (all)
;;; { 25 List<DeclItem>
;;; { 26 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 26 DeclItem
;;; } 25 List<DeclItem>
;;; } 24 TypeName
;;; { 24 ParameterDeclaration
;;; isEllipsis = true
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_POINTER
;;; { 28 List<Ptr>
;;; { 29 Ptr
;;; } 29 Ptr
;;; } 28 List<Ptr>
;;; } 27 DeclItem
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; } 24 ParameterDeclaration
;;; { 24 StringExpression
;-- load_rr_string
MOVE #Cstr_32, RR
;;; } 24 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 23 Expr l(r)
;;; } 22 ExpressionStatement
;;; } 21 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 20 CompoundStatement
L18_cont_62:
;;; { 20 Expr l - r
;;; { 21 Expr ++r
;;; { 22 Expression (variable name)
;;; expr_type = "identifier" (row)
;-- load_rr_var row = -3(FP), SP at -5 (16 bit)
MOVE 2(SP), RR
;;; } 22 Expression (variable name)
;-- ++
ADD RR, #0x0001
;-- store_rr_var row = -3(FP), SP at -5
MOVE RR, 2(SP)
;;; } 21 Expr ++r
;-- l - r
SUB RR, #0x0001
;;; } 20 Expr l - r
L18_tst_62:
;;; { 20 Expr l < r
;;; { 21 TypeName (internal)
;;; { 22 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 22 TypeSpecifier (all)
;;; } 21 TypeName (internal)
;;; { 21 Expression (variable name)
;;; expr_type = "identifier" (row)
;-- load_rr_var row = -3(FP), SP at -5 (16 bit)
MOVE 2(SP), RR
;;; } 21 Expression (variable name)
;-- l < r
SLT RR, #0x0010
;;; } 20 Expr l < r
;-- branch_true
JMP RRNZ, L18_loop_62
L18_brk_63:
;;; } 19 for Statement
;;; } 18 List<for Statement>
;-- pop 5 bytes
ADD SP, #5
;;; } 17 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
;;; { 17 FunctionDefinition
;;; { 18 TypeName
;;; { 19 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 19 TypeSpecifier (all)
;;; { 19 List<DeclItem>
;;; { 20 DeclItem
;;; what = DECL_NAME
;;; name = main
;;; } 20 DeclItem
;;; } 19 List<DeclItem>
;;; } 18 TypeName
;;; { 18 List<DeclItem>
;;; { 19 DeclItem
;;; what = DECL_NAME
;;; name = main
;;; } 19 DeclItem
;;; { 19 DeclItem
;;; what = DECL_FUN
;;; { 20 List<ParameterDeclaration>
;;; { 21 ParameterDeclaration
;;; isEllipsis = false
;;; { 22 TypeName
;;; { 23 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 23 TypeSpecifier (all)
;;; { 23 List<DeclItem>
;;; { 24 DeclItem
;;; what = DECL_NAME
;;; name = argc
;;; } 24 DeclItem
;;; } 23 List<DeclItem>
;;; } 22 TypeName
;;; } 21 ParameterDeclaration
;;; { 21 ParameterDeclaration
;;; isEllipsis = false
;;; { 22 TypeName
;;; { 23 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 23 TypeSpecifier (all)
;;; { 23 List<DeclItem>
;;; { 24 DeclItem
;;; what = DECL_POINTER
;;; { 25 List<Ptr>
;;; { 26 Ptr
;;; } 26 Ptr
;;; } 25 List<Ptr>
;;; } 24 DeclItem
;;; { 24 DeclItem
;;; what = DECL_NAME
;;; name = argv
;;; } 24 DeclItem
;;; { 24 DeclItem
;;; what = DECL_ARRAY
;;; } 24 DeclItem
;;; } 23 List<DeclItem>
;;; } 22 TypeName
;;; } 21 ParameterDeclaration
;;; } 20 List<ParameterDeclaration>
;;; } 19 DeclItem
;;; } 18 List<DeclItem>
Cmain:
;;; { 18 CompoundStatement
;;; { 19 InitDeclarator
;;; { 20 List<DeclItem>
;;; { 21 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 21 DeclItem
;;; } 20 List<DeclItem>
;-- push_zero 1 bytes
CLRB -(SP)
;;; } 19 InitDeclarator
;;; { 19 InitDeclarator
;;; { 20 List<DeclItem>
;;; { 21 DeclItem
;;; what = DECL_NAME
;;; name = noprompt
;;; } 21 DeclItem
;;; } 20 List<DeclItem>
;-- push_zero 1 bytes
CLRB -(SP)
;;; } 19 InitDeclarator
;;; { 19 InitDeclarator
;;; { 20 List<DeclItem>
;;; { 21 DeclItem
;;; what = DECL_NAME
;;; name = last_c
;;; } 21 DeclItem
;;; } 20 List<DeclItem>
;-- push_zero 1 bytes
CLRB -(SP)
;;; } 19 InitDeclarator
;;; { 19 InitDeclarator
;;; { 20 List<DeclItem>
;;; { 21 DeclItem
;;; what = DECL_POINTER
;;; { 22 List<Ptr>
;;; { 23 Ptr
;;; } 23 Ptr
;;; } 22 List<Ptr>
;;; } 21 DeclItem
;;; { 21 DeclItem
;;; what = DECL_NAME
;;; name = address
;;; } 21 DeclItem
;;; } 20 List<DeclItem>
;-- push_zero 2 bytes
CLRW -(SP)
;;; } 19 InitDeclarator
;;; { 19 List<ExpressionStatement>
;;; { 20 ExpressionStatement
MOVE #0x05, RR
;;; } 20 ExpressionStatement
;;; { 20 ExpressionStatement
OUT R, (OUT_INT_MASK)
;;; } 20 ExpressionStatement
;;; { 20 for Statement
;;; { 21 ExpressionStatement
;;; } 21 ExpressionStatement
L19_loop_70:
;;; { 21 CompoundStatement
;;; { 22 List<ExpressionStatement>
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = last_c
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (c)
;-- load_rr_var c = -1(FP), SP at -5 (8 bit)
MOVE 4(SP), RS
;;; } 25 Expression (variable name)
;-- store_rr_var last_c = -3(FP), SP at -5
MOVE R, 2(SP)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; { 23 IfElseStatement
;;; { 24 Expr ! r
;;; { 25 Expression (variable name)
;;; expr_type = "identifier" (noprompt)
;-- load_rr_var noprompt = -2(FP), SP at -5 (8 bit)
MOVE 3(SP), RS
;;; } 25 Expression (variable name)
;-- 16 bit ! r
LNOT RR
;;; } 24 Expr ! r
;-- branch_false
JMP RRZ, L19_endif_72
;;; { 24 ExpressionStatement
;;; { 25 Expr l(r)
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;;; { 26 ParameterDeclaration
;;; isEllipsis = true
;;; { 27 TypeName
;;; { 28 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 28 TypeSpecifier (all)
;;; { 28 List<DeclItem>
;;; { 29 DeclItem
;;; what = DECL_POINTER
;;; { 30 List<Ptr>
;;; { 31 Ptr
;;; } 31 Ptr
;;; } 30 List<Ptr>
;;; } 29 DeclItem
;;; { 29 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 29 DeclItem
;;; } 28 List<DeclItem>
;;; } 27 TypeName
;;; } 26 ParameterDeclaration
;;; { 26 StringExpression
;-- load_rr_string
MOVE #Cstr_35, RR
;;; } 26 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 25 Expr l(r)
;;; } 24 ExpressionStatement
L19_endif_72:
;;; } 23 IfElseStatement
;;; { 23 ExpressionStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = noprompt
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 NumericExpression (constant 0 = 0x0)
;-- load_rr_constant
MOVE #0x0000, RR
;;; } 25 NumericExpression (constant 0 = 0x0)
;-- store_rr_var noprompt = -2(FP), SP at -5
MOVE R, 3(SP)
;;; } 24 Expr l = r
;;; } 23 ExpressionStatement
;;; { 23 SwitchStatement
;;; { 24 Expr l = r
;;; { 25 TypeName
;;; { 26 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 26 TypeSpecifier (all)
;;; { 26 List<DeclItem>
;;; { 27 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 27 DeclItem
;;; } 26 List<DeclItem>
;;; } 25 TypeName
;;; { 25 Expr l(r)
;;; { 26 TypeName
;;; { 27 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 27 TypeSpecifier (all)
;;; { 27 List<DeclItem>
;;; { 28 DeclItem
;;; what = DECL_NAME
;;; name = getchr
;;; } 28 DeclItem
;;; } 27 List<DeclItem>
;;; } 26 TypeName
;-- push 2 bytes
;-- call
CALL Cgetchr
;-- pop 0 bytes
;;; } 25 Expr l(r)
;-- store_rr_var c = -1(FP), SP at -5
MOVE R, 4(SP)
;;; } 24 Expr l = r
;-- move_rr_to_ll
MOVE RR, LL
;-- branch_case (8 bit)
SEQ LL, #0x000D
JMP RRNZ, L19_case_73_000D
;-- branch_case (8 bit)
SEQ LL, #0x000A
JMP RRNZ, L19_case_73_000A
;-- branch_case (8 bit)
SEQ LL, #0x0043
JMP RRNZ, L19_case_73_0043
;-- branch_case (8 bit)
SEQ LL, #0x0063
JMP RRNZ, L19_case_73_0063
;-- branch_case (8 bit)
SEQ LL, #0x0044
JMP RRNZ, L19_case_73_0044
;-- branch_case (8 bit)
SEQ LL, #0x0064
JMP RRNZ, L19_case_73_0064
;-- branch_case (8 bit)
SEQ LL, #0x0045
JMP RRNZ, L19_case_73_0045
;-- branch_case (8 bit)
SEQ LL, #0x0065
JMP RRNZ, L19_case_73_0065
;-- branch_case (8 bit)
SEQ LL, #0x004D
JMP RRNZ, L19_case_73_004D
;-- branch_case (8 bit)
SEQ LL, #0x006D
JMP RRNZ, L19_case_73_006D
;-- branch_case (8 bit)
SEQ LL, #0x0053
JMP RRNZ, L19_case_73_0053
;-- branch_case (8 bit)
SEQ LL, #0x0073
JMP RRNZ, L19_case_73_0073
;-- branch_case (8 bit)
SEQ LL, #0x0054
JMP RRNZ, L19_case_73_0054
;-- branch_case (8 bit)
SEQ LL, #0x0074
JMP RRNZ, L19_case_73_0074
;-- branch_case (8 bit)
SEQ LL, #0x0051
JMP RRNZ, L19_case_73_0051
;-- branch_case (8 bit)
SEQ LL, #0x0071
JMP RRNZ, L19_case_73_0071
;-- branch_case (8 bit)
SEQ LL, #0x0058
JMP RRNZ, L19_case_73_0058
;-- branch_case (8 bit)
SEQ LL, #0x0078
JMP RRNZ, L19_case_73_0078
;-- branch
JMP L19_deflt_73
;;; { 24 CompoundStatement
;;; { 25 List<case Statement>
;;; { 26 case Statement
L19_case_73_000D:
;;; { 27 case Statement
L19_case_73_000A:
;;; { 28 IfElseStatement
;;; { 29 Expr l == r
;;; { 30 TypeName (internal)
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; } 30 TypeName (internal)
;;; { 30 Expression (variable name)
;;; expr_type = "identifier" (last_c)
;-- load_rr_var last_c = -3(FP), SP at -5 (8 bit)
MOVE 2(SP), RS
;;; } 30 Expression (variable name)
;-- l == r
SEQ RR, #0x0064
;;; } 29 Expr l == r
;-- branch_false
JMP RRZ, L19_endif_74
;;; { 29 CompoundStatement
;;; { 30 List<ExpressionStatement>
;;; { 31 ExpressionStatement
;;; { 32 Expr l += r
;;; { 33 TypeName
;;; { 34 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 34 TypeSpecifier (all)
;;; { 34 List<DeclItem>
;;; { 35 DeclItem
;;; what = DECL_POINTER
;;; { 36 List<Ptr>
;;; { 37 Ptr
;;; } 37 Ptr
;;; } 36 List<Ptr>
;;; } 35 DeclItem
;;; { 35 DeclItem
;;; what = DECL_NAME
;;; name = address
;;; } 35 DeclItem
;;; } 34 List<DeclItem>
;;; } 33 TypeName
;;; { 33 Expr l + r
;;; { 34 Expression (variable name)
;;; expr_type = "identifier" (address)
;-- load_rr_var address = -5(FP), SP at -5 (16 bit)
MOVE 0(SP), RR
;;; } 34 Expression (variable name)
;-- l + r
ADD RR, #0x0100
;;; } 33 Expr l + r
;-- store_rr_var address = -5(FP), SP at -5
MOVE RR, 0(SP)
;;; } 32 Expr l += r
;;; } 31 ExpressionStatement
;;; { 31 ExpressionStatement
;;; { 32 Expr l(r)
;;; { 33 TypeName
;;; { 34 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 34 TypeSpecifier (all)
;;; { 34 List<DeclItem>
;;; { 35 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 35 DeclItem
;;; } 34 List<DeclItem>
;;; } 33 TypeName
;;; { 33 ParameterDeclaration
;;; isEllipsis = true
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_POINTER
;;; { 37 List<Ptr>
;;; { 38 Ptr
;;; } 38 Ptr
;;; } 37 List<Ptr>
;;; } 36 DeclItem
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;;; { 33 StringExpression
;-- load_rr_string
MOVE #Cstr_36, RR
;;; } 33 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 32 Expr l(r)
;;; } 31 ExpressionStatement
;;; { 31 ExpressionStatement
;;; { 32 Expr l(r)
;;; { 33 TypeName
;;; { 34 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 34 TypeSpecifier (all)
;;; { 34 List<DeclItem>
;;; { 35 DeclItem
;;; what = DECL_NAME
;;; name = display_memory
;;; } 35 DeclItem
;;; } 34 List<DeclItem>
;;; } 33 TypeName
;;; { 33 ParameterDeclaration
;;; isEllipsis = false
;;; { 34 TypeName
;;; { 35 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 35 TypeSpecifier (all)
;;; { 35 List<DeclItem>
;;; { 36 DeclItem
;;; what = DECL_POINTER
;;; { 37 List<Ptr>
;;; { 38 Ptr
;;; } 38 Ptr
;;; } 37 List<Ptr>
;;; } 36 DeclItem
;;; { 36 DeclItem
;;; what = DECL_NAME
;;; name = address
;;; } 36 DeclItem
;;; } 35 List<DeclItem>
;;; } 34 TypeName
;;; } 33 ParameterDeclaration
;;; { 33 Expression (variable name)
;;; expr_type = "identifier" (address)
;-- load_rr_var address = -5(FP), SP at -5 (16 bit)
MOVE 0(SP), RR
;;; } 33 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 0 bytes
;-- call
CALL Cdisplay_memory
;-- pop 2 bytes
ADD SP, #2
;;; } 32 Expr l(r)
;;; } 31 ExpressionStatement
;;; { 31 ExpressionStatement
;;; { 32 Expr l = r
;;; { 33 TypeName
;;; { 34 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 34 TypeSpecifier (all)
;;; { 34 List<DeclItem>
;;; { 35 DeclItem
;;; what = DECL_NAME
;;; name = c
;;; } 35 DeclItem
;;; } 34 List<DeclItem>
;;; } 33 TypeName
;;; { 33 NumericExpression (constant 100 = 0x64)
;-- load_rr_constant
MOVE #0x0064, RR
;;; } 33 NumericExpression (constant 100 = 0x64)
;-- store_rr_var c = -1(FP), SP at -5
MOVE R, 4(SP)
;;; } 32 Expr l = r
;;; } 31 ExpressionStatement
;;; } 30 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 29 CompoundStatement
L19_endif_74:
;;; } 28 IfElseStatement
;;; } 27 case Statement
;;; } 26 case Statement
;;; { 26 ExpressionStatement
;;; { 27 Expr l = r
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = noprompt
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 NumericExpression (constant 1 = 0x1)
;-- load_rr_constant
MOVE #0x0001, RR
;;; } 28 NumericExpression (constant 1 = 0x1)
;-- store_rr_var noprompt = -2(FP), SP at -5
MOVE R, 3(SP)
;;; } 27 Expr l = r
;;; } 26 ExpressionStatement
;;; { 26 break/continue Statement
;-- branch
JMP L19_brk_73
;;; } 26 break/continue Statement
;;; { 26 case Statement
L19_case_73_0043:
;;; { 27 case Statement
L19_case_73_0063:
;;; { 28 ExpressionStatement
;;; { 29 Expr l(r)
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = show_time
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;-- push 0 bytes
;-- call
CALL Cshow_time
;-- pop 0 bytes
;;; } 29 Expr l(r)
;;; } 28 ExpressionStatement
;;; } 27 case Statement
;;; } 26 case Statement
;;; { 26 break/continue Statement
;-- branch
JMP L19_brk_73
;;; } 26 break/continue Statement
;;; { 26 case Statement
L19_case_73_0044:
;;; { 27 case Statement
L19_case_73_0064:
;;; { 28 ExpressionStatement
;;; { 29 Expr l = r
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = last_c
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; { 30 NumericExpression (constant 100 = 0x64)
;-- load_rr_constant
MOVE #0x0064, RR
;;; } 30 NumericExpression (constant 100 = 0x64)
;-- store_rr_var last_c = -3(FP), SP at -5
MOVE R, 2(SP)
;;; } 29 Expr l = r
;;; } 28 ExpressionStatement
;;; } 27 case Statement
;;; } 26 case Statement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 ParameterDeclaration
;;; isEllipsis = true
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_POINTER
;;; { 32 List<Ptr>
;;; { 33 Ptr
;;; } 33 Ptr
;;; } 32 List<Ptr>
;;; } 31 DeclItem
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 StringExpression
;-- load_rr_string
MOVE #Cstr_37, RR
;;; } 28 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l = r
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_POINTER
;;; { 31 List<Ptr>
;;; { 32 Ptr
;;; } 32 Ptr
;;; } 31 List<Ptr>
;;; } 30 DeclItem
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = address
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 Expression (cast)r
;;; { 29 Expr l(r)
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = gethex
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; { 30 ParameterDeclaration
;;; isEllipsis = false
;;; { 31 TypeName
;;; { 32 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 32 TypeSpecifier (all)
;;; { 32 List<DeclItem>
;;; { 33 DeclItem
;;; what = DECL_NAME
;;; name = echo
;;; } 33 DeclItem
;;; } 32 List<DeclItem>
;;; } 31 TypeName
;;; } 30 ParameterDeclaration
;;; { 30 NumericExpression (constant 1 = 0x1)
;-- load_rr_constant
MOVE #0x0001, RR
;;; } 30 NumericExpression (constant 1 = 0x1)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cgethex
;-- pop 1 bytes
ADD SP, #1
;;; } 29 Expr l(r)
;;; } 28 Expression (cast)r
;-- store_rr_var address = -5(FP), SP at -5
MOVE RR, 0(SP)
;;; } 27 Expr l = r
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 ParameterDeclaration
;;; isEllipsis = true
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_POINTER
;;; { 32 List<Ptr>
;;; { 33 Ptr
;;; } 33 Ptr
;;; } 32 List<Ptr>
;;; } 31 DeclItem
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 StringExpression
;-- load_rr_string
MOVE #Cstr_38, RR
;;; } 28 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = getchr
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;-- push 2 bytes
;-- call
CALL Cgetchr
;-- pop 0 bytes
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = void (10000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = display_memory
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 ParameterDeclaration
;;; isEllipsis = false
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_POINTER
;;; { 32 List<Ptr>
;;; { 33 Ptr
;;; } 33 Ptr
;;; } 32 List<Ptr>
;;; } 31 DeclItem
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = address
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 Expression (variable name)
;;; expr_type = "identifier" (address)
;-- load_rr_var address = -5(FP), SP at -5 (16 bit)
MOVE 0(SP), RR
;;; } 28 Expression (variable name)
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 0 bytes
;-- call
CALL Cdisplay_memory
;-- pop 2 bytes
ADD SP, #2
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 break/continue Statement
;-- branch
JMP L19_brk_73
;;; } 26 break/continue Statement
;;; { 26 case Statement
L19_case_73_0045:
;;; { 27 case Statement
L19_case_73_0065:
;;; { 28 ExpressionStatement
;;; { 29 Expr l(r)
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; { 30 ParameterDeclaration
;;; isEllipsis = true
;;; { 31 TypeName
;;; { 32 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 32 TypeSpecifier (all)
;;; { 32 List<DeclItem>
;;; { 33 DeclItem
;;; what = DECL_POINTER
;;; { 34 List<Ptr>
;;; { 35 Ptr
;;; } 35 Ptr
;;; } 34 List<Ptr>
;;; } 33 DeclItem
;;; { 33 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 33 DeclItem
;;; } 32 List<DeclItem>
;;; } 31 TypeName
;;; } 30 ParameterDeclaration
;;; { 30 StringExpression
;-- load_rr_string
MOVE #Cstr_39, RR
;;; } 30 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 29 Expr l(r)
;;; } 28 ExpressionStatement
;;; } 27 case Statement
;;; } 26 case Statement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = gethex
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 ParameterDeclaration
;;; isEllipsis = false
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = echo
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 NumericExpression (constant 1 = 0x1)
;-- load_rr_constant
MOVE #0x0001, RR
;;; } 28 NumericExpression (constant 1 = 0x1)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cgethex
;-- pop 1 bytes
ADD SP, #1
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
OUT R, (OUT_LEDS)
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 ParameterDeclaration
;;; isEllipsis = true
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_POINTER
;;; { 32 List<Ptr>
;;; { 33 Ptr
;;; } 33 Ptr
;;; } 32 List<Ptr>
;;; } 31 DeclItem
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 StringExpression
;-- load_rr_string
MOVE #Cstr_41, RR
;;; } 28 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = getchr
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;-- push 2 bytes
;-- call
CALL Cgetchr
;-- pop 0 bytes
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 break/continue Statement
;-- branch
JMP L19_brk_73
;;; } 26 break/continue Statement
;;; { 26 case Statement
L19_case_73_004D:
;;; { 27 case Statement
L19_case_73_006D:
;;; { 28 ExpressionStatement
;;; { 29 Expr l(r)
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; { 30 ParameterDeclaration
;;; isEllipsis = true
;;; { 31 TypeName
;;; { 32 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 32 TypeSpecifier (all)
;;; { 32 List<DeclItem>
;;; { 33 DeclItem
;;; what = DECL_POINTER
;;; { 34 List<Ptr>
;;; { 35 Ptr
;;; } 35 Ptr
;;; } 34 List<Ptr>
;;; } 33 DeclItem
;;; { 33 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 33 DeclItem
;;; } 32 List<DeclItem>
;;; } 31 TypeName
;;; } 30 ParameterDeclaration
;;; { 30 StringExpression
;-- load_rr_string
MOVE #Cstr_42, RR
;;; } 30 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 29 Expr l(r)
;;; } 28 ExpressionStatement
;;; } 27 case Statement
;;; } 26 case Statement
;;; { 26 ExpressionStatement
;;; { 27 Expr l = r
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_POINTER
;;; { 31 List<Ptr>
;;; { 32 Ptr
;;; } 32 Ptr
;;; } 31 List<Ptr>
;;; } 30 DeclItem
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = address
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 Expression (cast)r
;;; { 29 Expr l(r)
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = gethex
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; { 30 ParameterDeclaration
;;; isEllipsis = false
;;; { 31 TypeName
;;; { 32 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 32 TypeSpecifier (all)
;;; { 32 List<DeclItem>
;;; { 33 DeclItem
;;; what = DECL_NAME
;;; name = echo
;;; } 33 DeclItem
;;; } 32 List<DeclItem>
;;; } 31 TypeName
;;; } 30 ParameterDeclaration
;;; { 30 NumericExpression (constant 1 = 0x1)
;-- load_rr_constant
MOVE #0x0001, RR
;;; } 30 NumericExpression (constant 1 = 0x1)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cgethex
;-- pop 1 bytes
ADD SP, #1
;;; } 29 Expr l(r)
;;; } 28 Expression (cast)r
;-- store_rr_var address = -5(FP), SP at -5
MOVE RR, 0(SP)
;;; } 27 Expr l = r
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 ParameterDeclaration
;;; isEllipsis = true
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_POINTER
;;; { 32 List<Ptr>
;;; { 33 Ptr
;;; } 33 Ptr
;;; } 32 List<Ptr>
;;; } 31 DeclItem
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 StringExpression
;-- load_rr_string
MOVE #Cstr_43, RR
;;; } 28 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = getchr
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;-- push 2 bytes
;-- call
CALL Cgetchr
;-- pop 0 bytes
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l = r
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = unsigned char (22000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = address
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 Expr l(r)
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = gethex
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; { 29 ParameterDeclaration
;;; isEllipsis = false
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = char (20000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = echo
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; } 29 ParameterDeclaration
;;; { 29 NumericExpression (constant 1 = 0x1)
;-- load_rr_constant
MOVE #0x0001, RR
;;; } 29 NumericExpression (constant 1 = 0x1)
;-- push_rr (8 bit)
MOVE R, -(SP)
;-- push 2 bytes
;-- call
CALL Cgethex
;-- pop 1 bytes
ADD SP, #1
;;; } 28 Expr l(r)
;-- push_rr (8 bit)
MOVE R, -(SP)
;;; { 28 Expr * r
;;; { 29 Expression (variable name)
;;; expr_type = "identifier" (address)
;-- load_rr_var address = -5(FP), SP at -6 (16 bit)
MOVE 1(SP), RR
;;; } 29 Expression (variable name)
;;; } 28 Expr * r
;-- move_rr_to_ll
MOVE RR, LL
;-- pop_rr (8 bit)
MOVE (SP)+, RU
;-- assign (8 bit)
MOVE R, (LL)
;;; } 27 Expr l = r
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = getchr
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;-- push 2 bytes
;-- call
CALL Cgetchr
;-- pop 0 bytes
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
;;; { 27 Expr l(r)
;;; { 28 TypeName
;;; { 29 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 29 TypeSpecifier (all)
;;; { 29 List<DeclItem>
;;; { 30 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 30 DeclItem
;;; } 29 List<DeclItem>
;;; } 28 TypeName
;;; { 28 ParameterDeclaration
;;; isEllipsis = true
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_POINTER
;;; { 32 List<Ptr>
;;; { 33 Ptr
;;; } 33 Ptr
;;; } 32 List<Ptr>
;;; } 31 DeclItem
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; } 28 ParameterDeclaration
;;; { 28 StringExpression
;-- load_rr_string
MOVE #Cstr_44, RR
;;; } 28 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 27 Expr l(r)
;;; } 26 ExpressionStatement
;;; { 26 break/continue Statement
;-- branch
JMP L19_brk_73
;;; } 26 break/continue Statement
;;; { 26 case Statement
L19_case_73_0053:
;;; { 27 case Statement
L19_case_73_0073:
;;; { 28 ExpressionStatement
;;; { 29 Expr l(r)
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; { 30 Expr (l , r)
;;; { 31 ParameterDeclaration
;;; isEllipsis = true
;;; { 32 TypeName
;;; { 33 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 33 TypeSpecifier (all)
;;; { 33 List<DeclItem>
;;; { 34 DeclItem
;;; what = DECL_POINTER
;;; { 35 List<Ptr>
;;; { 36 Ptr
;;; } 36 Ptr
;;; } 35 List<Ptr>
;;; } 34 DeclItem
;;; { 34 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 34 DeclItem
;;; } 33 List<DeclItem>
;;; } 32 TypeName
;;; } 31 ParameterDeclaration
IN (IN_DIP_SWITCH), RU
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 31 ParameterDeclaration
;;; isEllipsis = true
;;; { 32 TypeName
;;; { 33 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 33 TypeSpecifier (all)
;;; { 33 List<DeclItem>
;;; { 34 DeclItem
;;; what = DECL_POINTER
;;; { 35 List<Ptr>
;;; { 36 Ptr
;;; } 36 Ptr
;;; } 35 List<Ptr>
;;; } 34 DeclItem
;;; { 34 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 34 DeclItem
;;; } 33 List<DeclItem>
;;; } 32 TypeName
;;; } 31 ParameterDeclaration
;;; { 31 StringExpression
;-- load_rr_string
MOVE #Cstr_45, RR
;;; } 31 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 30 Expr (l , r)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 4 bytes
ADD SP, #4
;;; } 29 Expr l(r)
;;; } 28 ExpressionStatement
;;; } 27 case Statement
;;; } 26 case Statement
;;; { 26 break/continue Statement
;-- branch
JMP L19_brk_73
;;; } 26 break/continue Statement
;;; { 26 case Statement
L19_case_73_0054:
;;; { 27 case Statement
L19_case_73_0074:
;;; { 28 ExpressionStatement
;;; { 29 Expr l(r)
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; { 30 Expr (l , r)
;;; { 31 ParameterDeclaration
;;; isEllipsis = true
;;; { 32 TypeName
;;; { 33 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 33 TypeSpecifier (all)
;;; { 33 List<DeclItem>
;;; { 34 DeclItem
;;; what = DECL_POINTER
;;; { 35 List<Ptr>
;;; { 36 Ptr
;;; } 36 Ptr
;;; } 35 List<Ptr>
;;; } 34 DeclItem
;;; { 34 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 34 DeclItem
;;; } 33 List<DeclItem>
;;; } 32 TypeName
;;; } 31 ParameterDeclaration
IN (IN_TEMPERAT), RU
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; { 31 ParameterDeclaration
;;; isEllipsis = true
;;; { 32 TypeName
;;; { 33 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 33 TypeSpecifier (all)
;;; { 33 List<DeclItem>
;;; { 34 DeclItem
;;; what = DECL_POINTER
;;; { 35 List<Ptr>
;;; { 36 Ptr
;;; } 36 Ptr
;;; } 35 List<Ptr>
;;; } 34 DeclItem
;;; { 34 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 34 DeclItem
;;; } 33 List<DeclItem>
;;; } 32 TypeName
;;; } 31 ParameterDeclaration
;;; { 31 StringExpression
;-- load_rr_string
MOVE #Cstr_47, RR
;;; } 31 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;;; } 30 Expr (l , r)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 4 bytes
ADD SP, #4
;;; } 29 Expr l(r)
;;; } 28 ExpressionStatement
;;; } 27 case Statement
;;; } 26 case Statement
;;; { 26 break/continue Statement
;-- branch
JMP L19_brk_73
;;; } 26 break/continue Statement
;;; { 26 case Statement
L19_case_73_0051:
;;; { 27 case Statement
L19_case_73_0071:
;;; { 28 case Statement
L19_case_73_0058:
;;; { 29 case Statement
L19_case_73_0078:
;;; { 30 ExpressionStatement
;;; { 31 Expr l(r)
;;; { 32 TypeName
;;; { 33 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 33 TypeSpecifier (all)
;;; { 33 List<DeclItem>
;;; { 34 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 34 DeclItem
;;; } 33 List<DeclItem>
;;; } 32 TypeName
;;; { 32 ParameterDeclaration
;;; isEllipsis = true
;;; { 33 TypeName
;;; { 34 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 34 TypeSpecifier (all)
;;; { 34 List<DeclItem>
;;; { 35 DeclItem
;;; what = DECL_POINTER
;;; { 36 List<Ptr>
;;; { 37 Ptr
;;; } 37 Ptr
;;; } 36 List<Ptr>
;;; } 35 DeclItem
;;; { 35 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 35 DeclItem
;;; } 34 List<DeclItem>
;;; } 33 TypeName
;;; } 32 ParameterDeclaration
;;; { 32 StringExpression
;-- load_rr_string
MOVE #Cstr_49, RR
;;; } 32 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 31 Expr l(r)
;;; } 30 ExpressionStatement
;;; } 29 case Statement
;;; } 28 case Statement
;;; } 27 case Statement
;;; } 26 case Statement
;;; { 26 while Statement
L19_loop_75:
;;; { 27 ExpressionStatement
;;; } 27 ExpressionStatement
L19_cont_75:
;;; { 27 Expression (variable name)
;;; expr_type = "identifier" (serial_out_length)
;-- load_rr_var serial_out_length, (8 bit)
MOVE (Cserial_out_length), RU
;;; } 27 Expression (variable name)
;-- branch_true
JMP RRNZ, L19_loop_75
L19_brk_76:
;;; } 26 while Statement
;;; { 26 ExpressionStatement
DI
;;; } 26 ExpressionStatement
;;; { 26 ExpressionStatement
HALT
;;; } 26 ExpressionStatement
;;; { 26 break/continue Statement
;-- branch
JMP L19_brk_73
;;; } 26 break/continue Statement
;;; { 26 case Statement
L19_deflt_73:
;;; { 27 ExpressionStatement
;;; { 28 Expr l(r)
;;; { 29 TypeName
;;; { 30 TypeSpecifier (all)
;;; spec = int (80000)
;;; } 30 TypeSpecifier (all)
;;; { 30 List<DeclItem>
;;; { 31 DeclItem
;;; what = DECL_NAME
;;; name = printf
;;; } 31 DeclItem
;;; } 30 List<DeclItem>
;;; } 29 TypeName
;;; { 29 ParameterDeclaration
;;; isEllipsis = true
;;; { 30 TypeName
;;; { 31 TypeSpecifier (all)
;;; spec = const char (20100)
;;; } 31 TypeSpecifier (all)
;;; { 31 List<DeclItem>
;;; { 32 DeclItem
;;; what = DECL_POINTER
;;; { 33 List<Ptr>
;;; { 34 Ptr
;;; } 34 Ptr
;;; } 33 List<Ptr>
;;; } 32 DeclItem
;;; { 32 DeclItem
;;; what = DECL_NAME
;;; name = format
;;; } 32 DeclItem
;;; } 31 List<DeclItem>
;;; } 30 TypeName
;;; } 29 ParameterDeclaration
;;; { 29 StringExpression
;-- load_rr_string
MOVE #Cstr_52, RR
;;; } 29 StringExpression
;-- push_rr (16 bit)
MOVE RR, -(SP)
;-- push 2 bytes
;-- call
CALL Cprintf
;-- pop 2 bytes
ADD SP, #2
;;; } 28 Expr l(r)
;;; } 27 ExpressionStatement
;;; } 26 case Statement
;;; } 25 List<case Statement>
;-- pop 0 bytes
;;; } 24 CompoundStatement
L19_brk_73:
;;; } 23 SwitchStatement
;;; } 22 List<ExpressionStatement>
;-- pop 0 bytes
;;; } 21 CompoundStatement
L19_cont_70:
;-- branch
JMP L19_loop_70
L19_brk_71:
;;; } 20 for Statement
;;; } 19 List<ExpressionStatement>
;-- pop 5 bytes
ADD SP, #5
;;; } 18 CompoundStatement
;-- ret
RET
;;; ------------------------------------;
Cstr_19: ;
.BYTE 0x30 ;
.BYTE 0x31 ;
.BYTE 0x32 ;
.BYTE 0x33 ;
.BYTE 0x34 ;
.BYTE 0x35 ;
.BYTE 0x36 ;
.BYTE 0x37 ;
.BYTE 0x38 ;
.BYTE 0x39 ;
.BYTE 0x41 ;
.BYTE 0x42 ;
.BYTE 0x43 ;
.BYTE 0x44 ;
.BYTE 0x45 ;
.BYTE 0x46 ;
.BYTE 0 ;
Cstr_20: ;
.BYTE 0x30 ;
.BYTE 0x58 ;
.BYTE 0 ;
Cstr_21: ;
.BYTE 0 ;
Cstr_22: ;
.BYTE 0 ;
Cstr_23: ;
.BYTE 0 ;
Cstr_24: ;
.BYTE 0x30 ;
.BYTE 0x31 ;
.BYTE 0x32 ;
.BYTE 0x33 ;
.BYTE 0x34 ;
.BYTE 0x35 ;
.BYTE 0x36 ;
.BYTE 0x37 ;
.BYTE 0x38 ;
.BYTE 0x39 ;
.BYTE 0x61 ;
.BYTE 0x62 ;
.BYTE 0x63 ;
.BYTE 0x64 ;
.BYTE 0x65 ;
.BYTE 0x66 ;
.BYTE 0 ;
Cstr_25: ;
.BYTE 0x30 ;
.BYTE 0x78 ;
.BYTE 0 ;
Cstr_28: ;
.BYTE 0x55 ;
.BYTE 0x70 ;
.BYTE 0x74 ;
.BYTE 0x69 ;
.BYTE 0x6D ;
.BYTE 0x65 ;
.BYTE 0x20 ;
.BYTE 0x69 ;
.BYTE 0x73 ;
.BYTE 0x20 ;
.BYTE 0x25 ;
.BYTE 0x34 ;
.BYTE 0x2E ;
.BYTE 0x34 ;
.BYTE 0x58 ;
.BYTE 0x25 ;
.BYTE 0x34 ;
.BYTE 0x2E ;
.BYTE 0x34 ;
.BYTE 0x58 ;
.BYTE 0x25 ;
.BYTE 0x34 ;
.BYTE 0x2E ;
.BYTE 0x34 ;
.BYTE 0x58 ;
.BYTE 0x20 ;
.BYTE 0x73 ;
.BYTE 0x65 ;
.BYTE 0x63 ;
.BYTE 0x6F ;
.BYTE 0x6E ;
.BYTE 0x64 ;
.BYTE 0x73 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0 ;
Cstr_29: ;
.BYTE 0x25 ;
.BYTE 0x34 ;
.BYTE 0x2E ;
.BYTE 0x34 ;
.BYTE 0x58 ;
.BYTE 0x3A ;
.BYTE 0 ;
Cstr_30: ;
.BYTE 0x20 ;
.BYTE 0x25 ;
.BYTE 0x32 ;
.BYTE 0x2E ;
.BYTE 0x32 ;
.BYTE 0x58 ;
.BYTE 0 ;
Cstr_31: ;
.BYTE 0x20 ;
.BYTE 0x2D ;
.BYTE 0x20 ;
.BYTE 0 ;
Cstr_32: ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0 ;
Cstr_35: ;
.BYTE 0x2D ;
.BYTE 0x3E ;
.BYTE 0x20 ;
.BYTE 0 ;
Cstr_36: ;
.BYTE 0x08 ;
.BYTE 0x08 ;
.BYTE 0x08 ;
.BYTE 0x08 ;
.BYTE 0 ;
Cstr_37: ;
.BYTE 0x44 ;
.BYTE 0x69 ;
.BYTE 0x73 ;
.BYTE 0x70 ;
.BYTE 0x6C ;
.BYTE 0x61 ;
.BYTE 0x79 ;
.BYTE 0x20 ;
.BYTE 0 ;
Cstr_38: ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0 ;
Cstr_39: ;
.BYTE 0x4C ;
.BYTE 0x45 ;
.BYTE 0x44 ;
.BYTE 0x73 ;
.BYTE 0x20 ;
.BYTE 0 ;
Cstr_41: ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0 ;
Cstr_42: ;
.BYTE 0x4D ;
.BYTE 0x65 ;
.BYTE 0x6D ;
.BYTE 0x6F ;
.BYTE 0x72 ;
.BYTE 0x79 ;
.BYTE 0x20 ;
.BYTE 0 ;
Cstr_43: ;
.BYTE 0x20 ;
.BYTE 0x56 ;
.BYTE 0x61 ;
.BYTE 0x6C ;
.BYTE 0x75 ;
.BYTE 0x65 ;
.BYTE 0x20 ;
.BYTE 0 ;
Cstr_44: ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0 ;
Cstr_45: ;
.BYTE 0x44 ;
.BYTE 0x49 ;
.BYTE 0x50 ;
.BYTE 0x20 ;
.BYTE 0x73 ;
.BYTE 0x77 ;
.BYTE 0x69 ;
.BYTE 0x74 ;
.BYTE 0x63 ;
.BYTE 0x68 ;
.BYTE 0x20 ;
.BYTE 0x69 ;
.BYTE 0x73 ;
.BYTE 0x20 ;
.BYTE 0x30 ;
.BYTE 0x78 ;
.BYTE 0x25 ;
.BYTE 0x58 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0 ;
Cstr_47: ;
.BYTE 0x54 ;
.BYTE 0x65 ;
.BYTE 0x6D ;
.BYTE 0x70 ;
.BYTE 0x65 ;
.BYTE 0x72 ;
.BYTE 0x61 ;
.BYTE 0x74 ;
.BYTE 0x75 ;
.BYTE 0x72 ;
.BYTE 0x65 ;
.BYTE 0x20 ;
.BYTE 0x69 ;
.BYTE 0x73 ;
.BYTE 0x20 ;
.BYTE 0x25 ;
.BYTE 0x64 ;
.BYTE 0x20 ;
.BYTE 0x64 ;
.BYTE 0x65 ;
.BYTE 0x67 ;
.BYTE 0x72 ;
.BYTE 0x65 ;
.BYTE 0x65 ;
.BYTE 0x73 ;
.BYTE 0x20 ;
.BYTE 0x43 ;
.BYTE 0x65 ;
.BYTE 0x6C ;
.BYTE 0x73 ;
.BYTE 0x69 ;
.BYTE 0x75 ;
.BYTE 0x73 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0 ;
Cstr_49: ;
.BYTE 0x48 ;
.BYTE 0x61 ;
.BYTE 0x6C ;
.BYTE 0x74 ;
.BYTE 0x65 ;
.BYTE 0x64 ;
.BYTE 0x2E ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0 ;
Cstr_52: ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0x43 ;
.BYTE 0x20 ;
.BYTE 0x2D ;
.BYTE 0x20 ;
.BYTE 0x73 ;
.BYTE 0x68 ;
.BYTE 0x6F ;
.BYTE 0x77 ;
.BYTE 0x20 ;
.BYTE 0x74 ;
.BYTE 0x69 ;
.BYTE 0x6D ;
.BYTE 0x65 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0x44 ;
.BYTE 0x20 ;
.BYTE 0x2D ;
.BYTE 0x20 ;
.BYTE 0x64 ;
.BYTE 0x69 ;
.BYTE 0x73 ;
.BYTE 0x70 ;
.BYTE 0x6C ;
.BYTE 0x61 ;
.BYTE 0x79 ;
.BYTE 0x20 ;
.BYTE 0x6D ;
.BYTE 0x65 ;
.BYTE 0x6D ;
.BYTE 0x6F ;
.BYTE 0x72 ;
.BYTE 0x79 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0x45 ;
.BYTE 0x20 ;
.BYTE 0x2D ;
.BYTE 0x20 ;
.BYTE 0x73 ;
.BYTE 0x65 ;
.BYTE 0x74 ;
.BYTE 0x20 ;
.BYTE 0x4C ;
.BYTE 0x45 ;
.BYTE 0x44 ;
.BYTE 0x73 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0x4D ;
.BYTE 0x20 ;
.BYTE 0x2D ;
.BYTE 0x20 ;
.BYTE 0x6D ;
.BYTE 0x6F ;
.BYTE 0x64 ;
.BYTE 0x69 ;
.BYTE 0x66 ;
.BYTE 0x79 ;
.BYTE 0x20 ;
.BYTE 0x6D ;
.BYTE 0x65 ;
.BYTE 0x6D ;
.BYTE 0x6F ;
.BYTE 0x72 ;
.BYTE 0x79 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0x53 ;
.BYTE 0x20 ;
.BYTE 0x2D ;
.BYTE 0x20 ;
.BYTE 0x72 ;
.BYTE 0x65 ;
.BYTE 0x61 ;
.BYTE 0x64 ;
.BYTE 0x20 ;
.BYTE 0x44 ;
.BYTE 0x49 ;
.BYTE 0x50 ;
.BYTE 0x20 ;
.BYTE 0x73 ;
.BYTE 0x77 ;
.BYTE 0x69 ;
.BYTE 0x74 ;
.BYTE 0x63 ;
.BYTE 0x68 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0x54 ;
.BYTE 0x20 ;
.BYTE 0x2D ;
.BYTE 0x20 ;
.BYTE 0x72 ;
.BYTE 0x65 ;
.BYTE 0x61 ;
.BYTE 0x64 ;
.BYTE 0x20 ;
.BYTE 0x74 ;
.BYTE 0x65 ;
.BYTE 0x6D ;
.BYTE 0x70 ;
.BYTE 0x65 ;
.BYTE 0x72 ;
.BYTE 0x61 ;
.BYTE 0x74 ;
.BYTE 0x75 ;
.BYTE 0x72 ;
.BYTE 0x65 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0x51 ;
.BYTE 0x20 ;
.BYTE 0x2D ;
.BYTE 0x20 ;
.BYTE 0x71 ;
.BYTE 0x75 ;
.BYTE 0x69 ;
.BYTE 0x74 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0x58 ;
.BYTE 0x20 ;
.BYTE 0x2D ;
.BYTE 0x20 ;
.BYTE 0x65 ;
.BYTE 0x78 ;
.BYTE 0x69 ;
.BYTE 0x74 ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0x0D ;
.BYTE 0x0A ;
.BYTE 0 ;
Cend_text: ;