📄 hex2dec.lst
字号:
##############################################################################
# #
# IAR Samsung SAM8 C Compiler V2.11A/W32 30/Jun/2006 09:43:32 #
# Copyright 1997 - 2003 IAR Systems. All rights reserved. #
# #
# Core = SAM8XRCRI #
# Code model = Small #
# Data model = Small #
# EEPROM = Disabled #
# = #
# Source file = E:\work\xty\test\IAR_csam86\hex2dec.c #
# Command line = -I "D:\Program Files\IAR Systems\Embedded Workbench #
# 3.2\sam8\INC\" -lC E:\work\xty\test\IAR_csam86\Debug\Li #
# st\ -lA E:\work\xty\test\IAR_csam86\Debug\List\ --core #
# sam8xrcri --code_model small --data_model small -o #
# E:\work\xty\test\IAR_csam86\Debug\Obj\ -e -z2 --no_cse #
# --no_unroll --no_inline --no_code_motion --debug #
# E:\work\xty\test\IAR_csam86\hex2dec.c #
# List file = E:\work\xty\test\IAR_csam86\Debug\List\hex2dec.lst #
# Object file = E:\work\xty\test\IAR_csam86\Debug\Obj\hex2dec.r18 #
# #
# #
##############################################################################
E:\work\xty\test\IAR_csam86\hex2dec.c
1 #define uint unsigned int
2 #define uchar unsigned char
3 #define ulong unsigned long
4
5 #include "stdio.h"
6
\ In segment CODE, align 1, keep-with-next
7 void add(uint a,uint b)
\ `add`:
\ 0000 REQUIRE __INIT_STACK
8 {
\ 0000 ; * Stack frame (at entry) *
\ 0000 ; Param size: 0
\ 0000 ; Return address size: 2
\ 0000 ; SETPAGE
\ 0000 70C0 PUSH R0
\ 0002 08D9 LD R0,0xD9
\ 0004 70C9 PUSH R9
\ 0006 70C8 PUSH R8
\ 0008 70C7 PUSH R7
\ 000A 70C6 PUSH R6
\ 000C ; Saved register size: 4
\ 000C ; Auto size: 3
\ 000C 26D903 SUB 0xD9,#3
\ 000F 56DFFC AND 0xDF,#252
\ 0012 88CC LD R8,R12
\ 0014 98CD LD R9,R13
9 uint c=4;
\ 0016 B0CE CLR R14
\ 0018 FC04 LD R15,#4
\ 001A DCF9 LD R13,#249
\ 001C 02D0 ADD R13,R0
\ 001E D7DE LD @R13,R14
\ 0020 97FD01 LD #0x01[R13],R15
10 a=c+b;
\ 0023 56DFFC AND 0xDF,#252
\ 0026 FCF9 LD R15,#249
\ 0028 02F0 ADD R15,R0
\ 002A C7CF LD R12,@R15
\ 002C 87DF01 LD R13,#0x01[R15]
\ 002F 56DFFC AND 0xDF,#252
\ 0032 02D9 ADD R13,R9
\ 0034 12C8 ADC R12,R8
\ 0036 68CC LD R6,R12
\ 0038 78CD LD R7,R13
11 c=a-b;
\ 003A E8C6 LD R14,R6
\ 003C F8C7 LD R15,R7
\ 003E 22F9 SUB R15,R9
\ 0040 32E8 SBC R14,R8
\ 0042 DCF9 LD R13,#249
\ 0044 02D0 ADD R13,R0
\ 0046 D7DE LD @R13,R14
\ 0048 97FD01 LD #0x01[R13],R15
12 printf("%d",&c);
\ 004B ; Setup parameters for call to function printf
\ 004B 56DFFC AND 0xDF,#252
\ 004E FCF9 LD R15,#249
\ 0050 02F0 ADD R15,R0
\ 0052 B0CE CLR R14
\ 0054 70CF PUSH R15
\ 0056 70CE PUSH R14
\ 0058 EC.. LD R14,#HIGH(`?<Constant "%d">`)
\ 005A FC.. LD R15,#LOW(`?<Constant "%d">`)
\ 005C F6.... CALL printf
13 }
\ 005F 06D905 ADD 0xD9,#5
\ 0062 50C6 POP R6
\ 0064 50C7 POP R7
\ 0066 50C8 POP R8
\ 0068 50C9 POP R9
\ 006A 50C0 POP R0
\ 006C 56DFFC AND 0xDF,#252
\ 006F AF RET
\ 0070 REQUIRE ?CLSAM8_2_L00
\ In segment CODE, align 1, keep-with-next
14 void main(void)
\ main:
\ 0000 REQUIRE __INIT_STACK
15 {
\ 0000 ; * Stack frame (at entry) *
\ 0000 ; Param size: 0
\ 0000 ; Return address size: 2
\ 0000 ; SETPAGE
\ 0000 70C0 PUSH R0
\ 0002 08D9 LD R0,0xD9
\ 0004 ; Auto size: 7
\ 0004 26D907 SUB 0xD9,#7
16 uint a=60;
\ 0007 B0C4 CLR R4
\ 0009 5C3C LD R5,#60
17 uint b[3];
^
Warning[Pe550]: variable "b" was set but never used
18 uint i;
19 for(i=0;i<3;i++)
\ 000B B0C6 CLR R6
\ 000D B0C7 CLR R7
\ ??main_0:
\ 000F E8C6 LD R14,R6
\ 0011 F8C7 LD R15,R7
\ 0013 26CF03 SUB R15,#3
\ 0016 36CE00 SBC R14,#0
\ 0019 FB2C JR UGE,??main_1
20 {
21 b[i]=0;
\ 001B 56DFFC AND 0xDF,#252
\ 001E B0CE CLR R14
\ 0020 B0CF CLR R15
\ 0022 70CF PUSH R15
\ 0024 70CE PUSH R14
\ 0026 1CF9 LD R1,#249
\ 0028 0210 ADD R1,R0
\ 002A D8C7 LD R13,R7
\ 002C FC02 LD R15,#2
\ 002E F6.... CALL ?C_MUL_L01
\ 0031 02F1 ADD R15,R1
\ 0033 50CC POP R12
\ 0035 50CD POP R13
\ 0037 D7FC LD @R15,R12
\ 0039 97DF01 LD #0x01[R15],R13
22 }
\ 003C 56DFFC AND 0xDF,#252
\ 003F 06C701 ADD R7,#1
\ 0042 16C600 ADC R6,#0
\ 0045 8BC8 JR ??main_0
23 for(i=0;i<3;i++)
\ ??main_1:
\ 0047 B0C6 CLR R6
\ 0049 B0C7 CLR R7
\ ??main_2:
\ 004B E8C6 LD R14,R6
\ 004D F8C7 LD R15,R7
\ 004F 26CF03 SUB R15,#3
\ 0052 36CE00 SBC R14,#0
\ 0055 FB3F JR UGE,??main_3
24 {
25 b[i]=a%10;
\ 0057 56DFFC AND 0xDF,#252
\ 005A E8C4 LD R14,R4
\ 005C F8C5 LD R15,R5
\ 005E B0CC CLR R12
\ 0060 DC0A LD R13,#10
\ 0062 F6.... CALL ?US_DIVMOD_L02
\ 0065 70CD PUSH R13
\ 0067 70CC PUSH R12
\ 0069 1CF9 LD R1,#249
\ 006B 0210 ADD R1,R0
\ 006D D8C7 LD R13,R7
\ 006F FC02 LD R15,#2
\ 0071 F6.... CALL ?C_MUL_L01
\ 0074 02F1 ADD R15,R1
\ 0076 50CC POP R12
\ 0078 50CD POP R13
\ 007A D7FC LD @R15,R12
\ 007C 97DF01 LD #0x01[R15],R13
26 a/=10;
\ 007F E8C4 LD R14,R4
\ 0081 F8C5 LD R15,R5
\ 0083 B0CC CLR R12
\ 0085 DC0A LD R13,#10
\ 0087 F6.... CALL ?US_DIVMOD_L02
\ 008A 48CE LD R4,R14
\ 008C 58CF LD R5,R15
27 }
\ 008E 06C701 ADD R7,#1
\ 0091 16C600 ADC R6,#0
\ 0094 8BB5 JR ??main_2
28 add(a,i);
\ ??main_3:
\ 0096 ; Setup parameters for call to function add
\ 0096 56DFFC AND 0xDF,#252
\ 0099 C8C6 LD R12,R6
\ 009B D8C7 LD R13,R7
\ 009D E8C4 LD R14,R4
\ 009F F8C5 LD R15,R5
\ 00A1 F6.... CALL `add`
29 while(1);
\ ??main_4:
\ 00A4 8BFE JR ??main_4
\ 00A6 REQUIRE ?CLSAM8_2_L00
30 }
\ In segment TINYP_ID, align 1, keep-with-next
\ `?<Initializer for <Constant "%d">>`:
\ 0000 03 DB 3
\ 0001 .... DW `?<Constant "%d">`
\ 0003 256400 DB "%d"
\ In segment TINYP_I, align 1
\ `?<Constant "%d">`:
\ 0000 DS 3
\ 0003 REQUIRE `?<Initializer for <Constant "%d">>`
\ 0003 REQUIRE __INIT_TINYP_I
Segment part sizes:
Function/Label Bytes
-------------- -----
add 112
main 166
?<Initializer for <Constant "%d">>
6
<Constant "%d"> 3
278 bytes in segment CODE
3 bytes in segment TINYP_I
6 bytes in segment TINYP_ID
284 bytes of CODE memory
3 bytes of IDATA memory
Errors: none
Warnings: 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -