?? main.lss
字號:
00001842 <.do_copy_data_start>:
1842: a0 36 cpi r26, 0x60 ; 96
1844: b1 07 cpc r27, r17
1846: d9 f7 brne .-10 ; 0x183e
00001848 <__do_clear_bss>:
1848: 10 e0 ldi r17, 0x00 ; 0
184a: a0 e6 ldi r26, 0x60 ; 96
184c: b0 e0 ldi r27, 0x00 ; 0
184e: 01 c0 rjmp .+2 ; 0x1852
00001850 <.do_clear_bss_loop>:
1850: 1d 92 st X+, r1
00001852 <.do_clear_bss_start>:
1852: aa 36 cpi r26, 0x6A ; 106
1854: b1 07 cpc r27, r17
1856: e1 f7 brne .-8 ; 0x1850
1858: cb c1 rjmp .+918 ; 0x1bf0
0000185a <__bad_interrupt>:
185a: d2 c3 rjmp .+1956 ; 0x2000
0000185c <put_char>:
#define A0 5
#define SCL 5
#define SDA 3
void put_char(unsigned char data,unsigned char d_c)
{
185c: 98 2f mov r25, r24
if(d_c==1) CRPORT|=(1<<A0);
185e: 61 30 cpi r22, 0x01 ; 1
1860: 11 f4 brne .+4 ; 0x1866
1862: ad 9a sbi 0x15, 5 ; 21
1864: 01 c0 rjmp .+2 ; 0x1868
else CRPORT&=~(1<<A0);
1866: ad 98 cbi 0x15, 5 ; 21
CRPORT&=~(1<<CS);
1868: ab 98 cbi 0x15, 3 ; 21
SPDR = data; // 傳送數據到SPI寄存器
186a: 9f b9 out 0x0f, r25 ; 15
while ((SPSR & (1 << SPIF)) == 0); // 等待數據傳送完
186c: 77 9b sbis 0x0e, 7 ; 14
186e: fe cf rjmp .-4 ; 0x186c
CRPORT|=(1<<CS);
1870: ab 9a sbi 0x15, 3 ; 21
1872: 08 95 ret
00001874 <puta>:
}
void puta(unsigned char msb,unsigned char lsb)
{
1874: ff 92 push r15
1876: 0f 93 push r16
1878: 1f 93 push r17
187a: cf 93 push r28
187c: f8 2e mov r15, r24
187e: 06 2f mov r16, r22
unsigned char i,j;
for(i=0xb0;i<0xb8;i++)
1880: 10 eb ldi r17, 0xB0 ; 176
{
put_char(i,0);
1882: 60 e0 ldi r22, 0x00 ; 0
1884: 81 2f mov r24, r17
1886: ea df rcall .-44 ; 0x185c
put_char(0x10,0);
1888: 60 e0 ldi r22, 0x00 ; 0
188a: 80 e1 ldi r24, 0x10 ; 16
188c: e7 df rcall .-50 ; 0x185c
put_char(0x00,0);
188e: 60 e0 ldi r22, 0x00 ; 0
1890: 86 2f mov r24, r22
1892: e4 df rcall .-56 ; 0x185c
for(j=0;j<128;j++)
1894: c0 e0 ldi r28, 0x00 ; 0
{
put_char(msb,1);
1896: 61 e0 ldi r22, 0x01 ; 1
1898: 8f 2d mov r24, r15
189a: e0 df rcall .-64 ; 0x185c
put_char(lsb,1);
189c: 61 e0 ldi r22, 0x01 ; 1
189e: 80 2f mov r24, r16
18a0: dd df rcall .-70 ; 0x185c
18a2: cf 5f subi r28, 0xFF ; 255
18a4: c7 ff sbrs r28, 7
18a6: f7 cf rjmp .-18 ; 0x1896
18a8: 1f 5f subi r17, 0xFF ; 255
18aa: 18 3b cpi r17, 0xB8 ; 184
18ac: 50 f3 brcs .-44 ; 0x1882
}
}
put_char(0b10101111,0);
18ae: 60 e0 ldi r22, 0x00 ; 0
18b0: 8f ea ldi r24, 0xAF ; 175
18b2: d4 df rcall .-88 ; 0x185c
18b4: cf 91 pop r28
18b6: 1f 91 pop r17
18b8: 0f 91 pop r16
18ba: ff 90 pop r15
18bc: 08 95 ret
000018be <put_word>:
}
void put_word(const unsigned char *a,unsigned char x,unsigned char y)
{
18be: cf 92 push r12
18c0: df 92 push r13
18c2: ef 92 push r14
18c4: ff 92 push r15
18c6: 0f 93 push r16
18c8: 1f 93 push r17
18ca: cf 93 push r28
18cc: df 93 push r29
18ce: 7c 01 movw r14, r24
18d0: 16 2f mov r17, r22
18d2: 04 2f mov r16, r20
unsigned char i;
y<<=1;
18d4: 00 0f add r16, r16
x+=4;
18d6: 1c 5f subi r17, 0xFC ; 252
put_char(y+0xb0,0);
18d8: 60 e0 ldi r22, 0x00 ; 0
18da: 80 2f mov r24, r16
18dc: 80 55 subi r24, 0x50 ; 80
18de: be df rcall .-132 ; 0x185c
put_char(x&0x0f,0);
18e0: 8f e0 ldi r24, 0x0F ; 15
18e2: c8 2e mov r12, r24
18e4: c1 22 and r12, r17
18e6: 60 e0 ldi r22, 0x00 ; 0
18e8: 8c 2d mov r24, r12
18ea: b8 df rcall .-144 ; 0x185c
put_char((x>>4)+0x10,0);
18ec: d1 2e mov r13, r17
18ee: d6 94 lsr r13
18f0: d6 94 lsr r13
18f2: d6 94 lsr r13
18f4: d6 94 lsr r13
18f6: 60 e0 ldi r22, 0x00 ; 0
18f8: 8d 2d mov r24, r13
18fa: 80 5f subi r24, 0xF0 ; 240
18fc: af df rcall .-162 ; 0x185c
18fe: e7 01 movw r28, r14
1900: 1f e0 ldi r17, 0x0F ; 15
for(i=0;i<=15;i++) put_char(pgm_read_byte(a+i),1);
1902: fe 01 movw r30, r28
1904: 84 91 lpm r24, Z
1906: 61 e0 ldi r22, 0x01 ; 1
1908: a9 df rcall .-174 ; 0x185c
190a: 11 50 subi r17, 0x01 ; 1
190c: 21 96 adiw r28, 0x01 ; 1
190e: 17 ff sbrs r17, 7
1910: f8 cf rjmp .-16 ; 0x1902
put_char(y+1+0xb0,0);
1912: 60 e0 ldi r22, 0x00 ; 0
1914: 80 2f mov r24, r16
1916: 8f 54 subi r24, 0x4F ; 79
1918: a1 df rcall .-190 ; 0x185c
put_char(x&0x0f,0);
191a: 60 e0 ldi r22, 0x00 ; 0
191c: 8c 2d mov r24, r12
191e: 9e df rcall .-196 ; 0x185c
put_char((x>>4)+0x10,0);
1920: 60 e0 ldi r22, 0x00 ; 0
1922: 8d 2d mov r24, r13
1924: 80 5f subi r24, 0xF0 ; 240
1926: 9a df rcall .-204 ; 0x185c
1928: e7 01 movw r28, r14
192a: 60 96 adiw r28, 0x10 ; 16
192c: 1f e0 ldi r17, 0x0F ; 15
for(i=16;i<=31;i++) put_char(pgm_read_byte(a+i),1);
192e: fe 01 movw r30, r28
1930: 84 91 lpm r24, Z
1932: 61 e0 ldi r22, 0x01 ; 1
1934: 93 df rcall .-218 ; 0x185c
1936: 11 50 subi r17, 0x01 ; 1
1938: 21 96 adiw r28, 0x01 ; 1
193a: 17 ff sbrs r17, 7
193c: f8 cf rjmp .-16 ; 0x192e
193e: df 91 pop r29
1940: cf 91 pop r28
1942: 1f 91 pop r17
1944: 0f 91 pop r16
1946: ff 90 pop r15
1948: ef 90 pop r14
194a: df 90 pop r13
194c: cf 90 pop r12
194e: 08 95 ret
00001950 <put_string>:
}
void put_string(const unsigned char *s,unsigned char x,unsigned char y,unsigned char z)
{
1950: ff 92 push r15
1952: 0f 93 push r16
1954: 1f 93 push r17
1956: cf 93 push r28
1958: df 93 push r29
195a: ec 01 movw r28, r24
195c: 16 2f mov r17, r22
195e: f4 2e mov r15, r20
1960: 02 2f mov r16, r18
1962: 09 c0 rjmp .+18 ; 0x1976
for(;(x<=112)&&z;x+=16)
1964: 00 23 and r16, r16
1966: 49 f0 breq .+18 ; 0x197a
{
put_word(s,x,y);
1968: 4f 2d mov r20, r15
196a: 61 2f mov r22, r17
196c: ce 01 movw r24, r28
196e: a7 df rcall .-178 ; 0x18be
s+=32;
1970: a0 96 adiw r28, 0x20 ; 32
z--;
1972: 01 50 subi r16, 0x01 ; 1
1974: 10 5f subi r17, 0xF0 ; 240
1976: 11 37 cpi r17, 0x71 ; 113
1978: a8 f3 brcs .-22 ; 0x1964
}
while(!s)
{for(x=0;(x<=112)&&z;x+=16)
{
put_word(s,x,y);
s+=32;
z--;
}
y++;
197a: 20 97 sbiw r28, 0x00 ; 0
197c: 79 f4 brne .+30 ; 0x199c
197e: 10 e0 ldi r17, 0x00 ; 0
1980: 00 23 and r16, r16
1982: 49 f0 breq .+18 ; 0x1996
1984: 4f 2d mov r20, r15
1986: 61 2f mov r22, r17
1988: ce 01 movw r24, r28
198a: 99 df rcall .-206 ; 0x18be
198c: a0 96 adiw r28, 0x20 ; 32
198e: 01 50 subi r16, 0x01 ; 1
1990: 10 5f subi r17, 0xF0 ; 240
1992: 11 37 cpi r17, 0x71 ; 113
1994: a8 f3 brcs .-22 ; 0x1980
1996: f3 94 inc r15
1998: 20 97 sbiw r28, 0x00 ; 0
199a: 89 f3 breq .-30 ; 0x197e
199c: df 91 pop r29
199e: cf 91 pop r28
19a0: 1f 91 pop r17
19a2: 0f 91 pop r16
19a4: ff 90 pop r15
19a6: 08 95 ret
000019a8 <print_bmp>:
}
}
void print_bmp(const unsigned char *s)
{
19a8: cf 92 push r12
19aa: df 92 push r13
19ac: ef 92 push r14
19ae: ff 92 push r15
19b0: 0f 93 push r16
19b2: 1f 93 push r17
19b4: cf 93 push r28
19b6: df 93 push r29
19b8: 8c 01 movw r16, r24
unsigned i,j;
for(j=0xb0;j<0xb8;j++)
19ba: 20 eb ldi r18, 0xB0 ; 176
19bc: c2 2e mov r12, r18
19be: d1 2c mov r13, r1
{
put_char(j,0);
19c0: 60 e0 ldi r22, 0x00 ; 0
19c2: 8c 2d mov r24, r12
19c4: 4b df rcall .-362 ; 0x185c
put_char(0x10,0);
19c6: 60 e0 ldi r22, 0x00 ; 0
19c8: 80 e1 ldi r24, 0x10 ; 16
19ca: 48 df rcall .-368 ; 0x185c
put_char(0x04,0);
19cc: 60 e0 ldi r22, 0x00 ; 0
19ce: 84 e0 ldi r24, 0x04 ; 4
19d0: 45 df rcall .-374 ; 0x185c
19d2: e8 01 movw r28, r16
19d4: 9f e7 ldi r25, 0x7F ; 127
19d6: e9 2e mov r14, r25
19d8: f1 2c mov r15, r1
19da: e0 0e add r14, r16
19dc: f1 1e adc r15, r17
for(i=0;i<128;i++) put_char(pgm_read_byte(s+i),1);
19de: fe 01 movw r30, r28
19e0: 84 91 lpm r24, Z
19e2: 61 e0 ldi r22, 0x01 ; 1
19e4: 3b df rcall .-394 ; 0x185c
19e6: 21 96 adiw r28, 0x01 ; 1
19e8: ec 16 cp r14, r28
19ea: fd 06 cpc r15, r29
19ec: c0 f7 brcc .-16 ; 0x19de
s+=128;
19ee: 00 58 subi r16, 0x80 ; 128
19f0: 1f 4f sbci r17, 0xFF ; 255
19f2: 08 94 sec
19f4: c1 1c adc r12, r1
19f6: d1 1c adc r13, r1
19f8: f8 eb ldi r31, 0xB8 ; 184
19fa: cf 16 cp r12, r31
19fc: d1 04 cpc r13, r1
19fe: 00 f3 brcs .-64 ; 0x19c0
1a00: df 91 pop r29
1a02: cf 91 pop r28
1a04: 1f 91 pop r17
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -