⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3310lcd_main.lst

📁 用AVR对诺基亚3310手机黑白液晶的驱动程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
   1               		.file	"3310LCD_main.c"
   2               	__SREG__ = 0x3f
   3               	__SP_H__ = 0x3e
   4               	__SP_L__ = 0x3d
   5               	__tmp_reg__ = 0
   6               	__zero_reg__ = 1
   7               		.global __do_copy_data
   8               		.global __do_clear_bss
  16               	.Ltext0:
  17               	.global	LCD_write_byte
  19               	LCD_write_byte:
  20               	.LFB15:
  21               	.LM1:
  22               	/* prologue: frame size=0 */
  23               	/* prologue end (size=0) */
  24               	.LVL0:
  25               	.LM2:
  26 0000 C498      		cbi 56-0x20,4
  27               	.LM3:
  28 0002 6623      		tst r22
  29 0004 01F4      		brne .L2
  30               	.LM4:
  31 0006 C398      		cbi 56-0x20,3
  32 0008 00C0      		rjmp .L4
  33               	.L2:
  34               	.LM5:
  35 000a C39A      		sbi 56-0x20,3
  36               	.L4:
  37               	.LM6:
  38 000c 8FB9      		out 47-0x20,r24
  39               	.L5:
  40               	.LM7:
  41 000e 779B      		sbis 46-0x20,7
  42 0010 00C0      		rjmp .L5
  43               	.LM8:
  44 0012 C49A      		sbi 56-0x20,4
  45               	/* epilogue: frame size=0 */
  46 0014 0895      		ret
  47               	/* epilogue end (size=1) */
  48               	/* function LCD_write_byte size 11 (10) */
  49               	.LFE15:
  51               	.global	LCD_write_char
  53               	LCD_write_char:
  54               	.LFB9:
  55               	.LM9:
  56               	/* prologue: frame size=0 */
  57 0016 1F93      		push r17
  58 0018 CF93      		push r28
  59 001a DF93      		push r29
  60               	/* prologue end (size=3) */
  61               	.LVL1:
  62 001c 8052      		subi r24,lo8(-(-32))
  63               	.LVL2:
  64 001e 96E0      		ldi r25,lo8(6)
  65 0020 899F      		mul r24,r25
  66 0022 E001      		movw r28,r0
  67 0024 1124      		clr r1
  68 0026 C050      		subi r28,lo8(-(font6x8))
  69 0028 D040      		sbci r29,hi8(-(font6x8))
  70 002a 10E0      		ldi r17,lo8(0)
  71               	.LVL3:
  72               	.L11:
  73               	.LBB52:
  74               	.LM10:
  75 002c FE01      		movw r30,r28
  76               	/* #APP */
  77 002e 8491      		lpm r24, Z
  78               		
  79               	.LVL4:
  80               	/* #NOAPP */
  81               	.LBE52:
  82 0030 61E0      		ldi r22,lo8(1)
  83 0032 0E94 0000 		call LCD_write_byte
  84               	.LVL5:
  85               	.LM11:
  86 0036 1F5F      		subi r17,lo8(-(1))
  87 0038 2196      		adiw r28,1
  88 003a 1630      		cpi r17,lo8(6)
  89 003c 01F4      		brne .L11
  90               	/* epilogue: frame size=0 */
  91 003e DF91      		pop r29
  92 0040 CF91      		pop r28
  93 0042 1F91      		pop r17
  94 0044 0895      		ret
  95               	/* epilogue end (size=4) */
  96               	/* function LCD_write_char size 27 (20) */
  97               	.LFE9:
  99               	.global	LCD_set_XY
 101               	LCD_set_XY:
 102               	.LFB8:
 103               	.LM12:
 104               	/* prologue: frame size=0 */
 105 0046 1F93      		push r17
 106               	/* prologue end (size=1) */
 107               	.LVL6:
 108 0048 182F      		mov r17,r24
 109 004a 862F      		mov r24,r22
 110               	.LVL7:
 111               	.LM13:
 112 004c 60E0      		ldi r22,lo8(0)
 113               	.LVL8:
 114 004e 8064      		ori r24,lo8(64)
 115               	.LVL9:
 116 0050 0E94 0000 		call LCD_write_byte
 117               	.LM14:
 118 0054 60E0      		ldi r22,lo8(0)
 119 0056 812F      		mov r24,r17
 120 0058 8068      		ori r24,lo8(-128)
 121 005a 0E94 0000 		call LCD_write_byte
 122               	/* epilogue: frame size=0 */
 123 005e 1F91      		pop r17
 124 0060 0895      		ret
 125               	/* epilogue end (size=2) */
 126               	/* function LCD_set_XY size 14 (11) */
 127               	.LFE8:
 129               	.global	LCD_draw_bmp_pixel
 131               	LCD_draw_bmp_pixel:
 132               	.LFB14:
 133               	.LM15:
 134               	/* prologue: frame size=0 */
 135 0062 8F92      		push r8
 136 0064 9F92      		push r9
 137 0066 AF92      		push r10
 138 0068 BF92      		push r11
 139 006a CF92      		push r12
 140 006c DF92      		push r13
 141 006e EF92      		push r14
 142 0070 FF92      		push r15
 143 0072 0F93      		push r16
 144 0074 1F93      		push r17
 145 0076 CF93      		push r28
 146 0078 DF93      		push r29
 147               	/* prologue end (size=12) */
 148               	.LVL10:
 149 007a 882E      		mov r8,r24
 150 007c B62E      		mov r11,r22
 151               	.LM16:
 152 007e 802F      		mov r24,r16
 153               	.LVL11:
 154 0080 90E0      		ldi r25,lo8(0)
 155               	.LVL12:
 156 0082 8770      		andi r24,lo8(7)
 157 0084 9070      		andi r25,hi8(7)
 158               	.LVL13:
 159 0086 0695      		lsr r16
 160 0088 0695      		lsr r16
 161 008a 0695      		lsr r16
 162 008c 892B      		or r24,r25
 163 008e 01F4      		brne .L19
 164               	.LVL14:
 165               	.LM17:
 166 0090 902E      		mov r9,r16
 167               	.LVL15:
 168 0092 00C0      		rjmp .L21
 169               	.LVL16:
 170               	.L19:
 171               	.LM18:
 172 0094 902E      		mov r9,r16
 173               	.LVL17:
 174 0096 9394      		inc r9
 175               	.L21:
 176 0098 C22E      		mov r12,r18
 177 009a DD24      		clr r13
 178 009c 7A01      		movw r14,r20
 179 009e AA24      		clr r10
 180 00a0 00C0      		rjmp .L22
 181               	.LVL18:
 182               	.L23:
 183               	.LM19:
 184 00a2 6B2D      		mov r22,r11
 185 00a4 882D      		mov r24,r8
 186               	.LVL19:
 187 00a6 0E94 0000 		call LCD_set_XY
 188               	.LVL20:
 189 00aa E701      		movw r28,r14
 190 00ac 00E0      		ldi r16,lo8(0)
 191 00ae 10E0      		ldi r17,hi8(0)
 192 00b0 00C0      		rjmp .L24
 193               	.L25:
 194               	.LBB53:
 195               	.LM20:
 196 00b2 FE01      		movw r30,r28
 197               	/* #APP */
 198 00b4 8491      		lpm r24, Z
 199               		
 200               	.LVL21:
 201               	/* #NOAPP */
 202               	.LBE53:
 203 00b6 61E0      		ldi r22,lo8(1)
 204 00b8 0E94 0000 		call LCD_write_byte
 205               	.LVL22:
 206               	.LM21:
 207 00bc 0F5F      		subi r16,lo8(-(1))
 208 00be 1F4F      		sbci r17,hi8(-(1))
 209 00c0 2196      		adiw r28,1
 210               	.L24:
 211 00c2 0C15      		cp r16,r12
 212 00c4 1D05      		cpc r17,r13
 213 00c6 01F4      		brne .L25
 214               	.LM22:
 215 00c8 B394      		inc r11
 216 00ca A394      		inc r10
 217 00cc EC0C      		add r14,r12
 218 00ce FD1C      		adc r15,r13
 219               	.LVL23:
 220               	.L22:
 221               	.LM23:
 222 00d0 A914      		cp r10,r9
 223 00d2 01F4      		brne .L23
 224               	/* epilogue: frame size=0 */
 225 00d4 DF91      		pop r29
 226 00d6 CF91      		pop r28
 227 00d8 1F91      		pop r17
 228 00da 0F91      		pop r16
 229 00dc FF90      		pop r15
 230 00de EF90      		pop r14
 231 00e0 DF90      		pop r13
 232 00e2 CF90      		pop r12
 233 00e4 BF90      		pop r11
 234 00e6 AF90      		pop r10
 235 00e8 9F90      		pop r9
 236 00ea 8F90      		pop r8
 237 00ec 0895      		ret
 238               	/* epilogue end (size=13) */
 239               	/* function LCD_draw_bmp_pixel size 73 (48) */
 240               	.LFE14:
 242               	.global	LCD_move_chinese_string
 244               	LCD_move_chinese_string:
 245               	.LFB13:
 246               	.LM24:
 247               	/* prologue: frame size=174 */
 248 00ee 2F92      		push r2
 249 00f0 3F92      		push r3
 250 00f2 4F92      		push r4
 251 00f4 5F92      		push r5
 252 00f6 6F92      		push r6
 253 00f8 7F92      		push r7
 254 00fa 8F92      		push r8
 255 00fc 9F92      		push r9
 256 00fe AF92      		push r10
 257 0100 BF92      		push r11
 258 0102 CF92      		push r12
 259 0104 DF92      		push r13
 260 0106 EF92      		push r14
 261 0108 FF92      		push r15
 262 010a 0F93      		push r16
 263 010c 1F93      		push r17
 264 010e CF93      		push r28
 265 0110 DF93      		push r29
 266 0112 CDB7      		in r28,__SP_L__
 267 0114 DEB7      		in r29,__SP_H__
 268 0116 CE5A      		subi r28,lo8(174)
 269 0118 D040      		sbci r29,hi8(174)
 270 011a 0FB6      		in __tmp_reg__,__SREG__
 271 011c F894      		cli
 272 011e DEBF      		out __SP_H__,r29
 273 0120 0FBE      		out __SREG__,__tmp_reg__
 274 0122 CDBF      		out __SP_L__,r28
 275               	/* prologue end (size=27) */
 276               	.LVL24:
 277 0124 C755      		subi r28,lo8(-169)
 278 0126 DF4F      		sbci r29,hi8(-169)
 279 0128 8883      		st Y,r24
 280 012a C95A      		subi r28,lo8(169)
 281 012c D040      		sbci r29,hi8(169)
 282 012e 262E      		mov r2,r22
 283               	.LM25:
 284 0130 84E5      		ldi r24,lo8(84)
 285               	.LVL25:
 286 0132 DE01      		movw r26,r28
 287 0134 1196      		adiw r26,1
 288 0136 FD01      		movw r30,r26
 289 0138 982F      		mov r25,r24
 290 013a 1192      		st Z+,__zero_reg__
 291 013c 9A95      	        dec r25
 292 013e 01F4      		brne .-6
 293               	.LM26:
 294 0140 9E01      		movw r18,r28
 295 0142 2B5A      		subi r18,lo8(-(85))
 296 0144 3F4F      		sbci r19,hi8(-(85))
 297 0146 F901      		movw r30,r18
 298 0148 1192      		st Z+,__zero_reg__
 299 014a 8A95      	        dec r24
 300 014c 01F4      		brne .-6
 301 014e 3324      		clr r3
 302               	.LVL26:
 303 0150 8824      		clr r8
 304 0152 9924      		clr r9
 305               	.LM27:
 306 0154 CE01      		movw r24,r28
 307 0156 8C5A      		subi r24,lo8(-(84))
 308 0158 9F4F      		sbci r25,hi8(-(84))
 309 015a C555      		subi r28,lo8(-171)
 310 015c DF4F      		sbci r29,hi8(-171)
 311 015e 9983      		std Y+1,r25
 312 0160 8883      		st Y,r24
 313 0162 CB5A      		subi r28,lo8(171)
 314 0164 D040      		sbci r29,hi8(171)
 315               	.LM28:
 316 0166 962F      		mov r25,r22
 317 0168 9F5F      		subi r25,lo8(-(1))
 318 016a C655      		subi r28,lo8(-170)
 319 016c DF4F      		sbci r29,hi8(-170)
 320 016e 9883      		st Y,r25
 321 0170 CA5A      		subi r28,lo8(170)
 322 0172 D040      		sbci r29,hi8(170)
 323               	.LM29:
 324 0174 FE01      		movw r30,r28
 325 0176 E855      		subi r30,lo8(-(168))
 326 0178 FF4F      		sbci r31,hi8(-(168))
 327 017a C355      		subi r28,lo8(-173)
 328 017c DF4F      		sbci r29,hi8(-173)
 329 017e F983      		std Y+1,r31
 330 0180 E883      		st Y,r30
 331 0182 CD5A      		subi r28,lo8(173)
 332 0184 D040      		sbci r29,hi8(173)
 333               	.LM30:
 334 0186 442E      		mov r4,r20
 335 0188 5524      		clr r5
 336               	.LVL27:
 337 018a 6624      		clr r6
 338 018c 7724      		clr r7
 339               	.LVL28:
 340               	.L30:
 341               	.LBB54:
 342               	.LM31:
 343 018e 882D      		mov r24,r8
 344               	.LVL29:
 345 0190 6CE0      		ldi r22,lo8(12)
 346               	.LVL30:
 347 0192 0E94 0000 		call __udivmodqi4
 348 0196 98E1      		ldi r25,lo8(24)
 349 0198 899F      		mul r24,r25
 350 019a C001      		movw r24,r0
 351 019c 1124      		clr r1
 352 019e 232D      		mov r18,r3
 353 01a0 30E0      		ldi r19,lo8(0)
 354 01a2 FC01      		movw r30,r24
 355 01a4 E050      		subi r30,lo8(-(move_chinese_string))
 356 01a6 F040      		sbci r31,hi8(-(move_chinese_string))
 357 01a8 E20F      		add r30,r18
 358 01aa F31F      		adc r31,r19
 359               	/* #APP */
 360 01ac 4491      		lpm r20, Z
 361               		
 362               	.LVL31:
 363               	/* #NOAPP */
 364               	.LBE54:
 365               	.LBB55:
 366               	.LM32:
 367 01ae 8050      		subi r24,lo8(-(move_chinese_string+12))
 368 01b0 9040      		sbci r25,hi8(-(move_chinese_string+12))
 369 01b2 820F      		add r24,r18
 370 01b4 931F      		adc r25,r19
 371 01b6 FC01      		movw r30,r24
 372               	/* #APP */
 373 01b8 8491      		lpm r24, Z
 374               		
 375               	.LVL32:
 376               	/* #NOAPP */
 377               	.LBE55:
 378               	.LM33:
 379 01ba 3394      		inc r3
 380               	.LM34:
 381 01bc 3616      		cp r3,r22
 382 01be 01F4      		brne .L31
 383 01c0 3324      		clr r3
 384               	.L31:
 385               	.LM35:
 386 01c2 6596      		adiw r28,84-63
 387 01c4 4FAF      		std Y+63,r20
 388 01c6 6597      		sbiw r28,84-63
 389               	.LM36:
 390 01c8 C855      		subi r28,lo8(-168)
 391 01ca DF4F      		sbci r29,hi8(-168)
 392 01cc 8883      		st Y,r24
 393 01ce C85A      		subi r28,lo8(168)
 394 01d0 D040      		sbci r29,hi8(168)
 395 01d2 7E01      		movw r14,r28
 396               	.LVL33:
 397 01d4 0894      		sec
 398 01d6 E11C      		adc r14,__zero_reg__
 399 01d8 F11C      		adc r15,__zero_reg__
 400 01da DE01      		movw r26,r28
 401 01dc AB5A      		subi r26,lo8(-(85))
 402 01de BF4F      		sbci r27,hi8(-(85))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -