📄 text1.lst
字号:
Sunplus u'nSP Assembler - Ver. 1.14.4
Listing File Has Been Relocated
// C:\PROGRA~1\Sunplus\UNSPID~1.3\\be::0.9.14
//-----------------------------------------------------------
// Compiling E:\600text3\text1.c (C:\DOCUME~1\yifeng\LOCALS~1\Temp\ccB.3)
//-----------------------------------------------------------
//-----------------------------------------------------------
// Options:
//-----------------------------------------------------------
// Target:unSP, ISA:ISA_1.1, Pointer Size:32
// -O0 (Optimization level)
// -g2 (Debug level)
// -m1 (Report warnings)
//-----------------------------------------------------------
000099E6 .code
Ltext0:
0000017A .iram
.public _StatusData
_StatusData:
0000017A 00 00 .dw 1 dup(0)
.public _data1
_data1:
0000017B 00 00 .dw 1 dup(0)
.public _data2
_data2:
0000017C 00 00 .dw 1 dup(0)
.public _data3
_data3:
0000017D 00 00 .dw 1 dup(0)
.public _data4
_data4:
0000017E 00 00 .dw 1 dup(0)
.public _VolumeValue
_VolumeValue:
0000017F 00 00 .dw 1 dup(0)
000099E6 .code
// Program Unit: KeyValue
.public _KeyValue
_KeyValue: .proc
// old_frame_pointer = 0
// return_address = 1
// //.file 0 "E:\600text3\text1.c"
// .loc 0 28 0
// 24 //入口:无
// 25 //出口:处理过的键值
// 26 //-------------------------
// 27 U16 KeyValue(viod)
// 28 {
LM1:
BB1_PU0: // 0x0
// BB:1 cycle count: 68
000099E6 88 DA push BP to [SP] // [0:28]
000099E7 08 0B 01 00 BP = SP + 1 // [6:28]
// .loc 0 29 0
// 29 data1+=1;
LM2:
000099E9 7F BC SR = SR & 63 // [10:29]
000099EA 0E AD 00 00 SR = SR | high6 _data1 // [12:29] data1
000099EC 0C 99 7B 01 R4 = offset _data1 // [16:29] data1
000099EE E4 98 R4 = DS:[R4] // [20:29]
000099EF 41 08 R4 = R4 + 1 // [26:29]
000099F0 7F BC SR = SR & 63 // [28:29]
000099F1 0E AD 00 00 SR = SR | high6 _data1 // [30:29] data1
000099F3 0B 97 7B 01 R3 = offset _data1 // [34:29] data1
000099F5 E3 D8 DS:[R3] = R4 // [38:29]
// .loc 0 30 0
// 30 if (data1>=0x5f53)
LM3:
000099F6 7F BC SR = SR & 63 // [44:30]
000099F7 0E AD 00 00 SR = SR | high6 _data1 // [46:30] data1
000099F9 0C 99 7B 01 R4 = offset _data1 // [50:30] data1
000099FB E4 98 R4 = DS:[R4] // [54:30]
000099FC 0C 49 52 5F cmp R4, 24402 // [60:30]
000099FE 14 8E jbe L_0_1 // [64:30]
BB2_PU0: // 0x19
// BB:2 cycle count: 52
// .loc 0 32 0
// 31 {
// 32 data1=0;
LM4:
000099FF 40 96 R3 = 0 // [0:32]
00009A00 7F BC SR = SR & 63 // [2:32]
00009A01 0E AD 00 00 SR = SR | high6 _data1 // [4:32] data1
00009A03 0C 99 7B 01 R4 = offset _data1 // [8:32] data1
00009A05 E4 D6 DS:[R4] = R3 // [12:32]
// .loc 0 33 0
// 33 data2+=1;
LM5:
00009A06 7F BC SR = SR & 63 // [18:33]
00009A07 0E AD 00 00 SR = SR | high6 _data2 // [20:33] data2
00009A09 0C 99 7C 01 R4 = offset _data2 // [24:33] data2
00009A0B E4 98 R4 = DS:[R4] // [28:33]
00009A0C 41 08 R4 = R4 + 1 // [34:33]
00009A0D 7F BC SR = SR & 63 // [36:33]
00009A0E 0E AD 00 00 SR = SR | high6 _data2 // [38:33] data2
00009A10 0B 97 7C 01 R3 = offset _data2 // [42:33] data2
00009A12 E3 D8 DS:[R3] = R4 // [46:33]
L_0_1: // 0x2d
// BB:3 cycle count: 30
// .loc 0 35 0
// 34 }
// 35 return data2;
LM6:
00009A13 7F BC SR = SR & 63 // [0:35]
00009A14 0E AD 00 00 SR = SR | high6 _data2 // [2:35] data2
00009A16 0C 99 7C 01 R4 = offset _data2 // [6:35] data2
00009A18 E4 92 R1 = DS:[R4] // [10:35]
00009A19 88 98 pop BP from [SP] // [16:35]
00009A1A 90 9A retf // [22:35]
.endp
LME1:
00009A1B .code
// Program Unit: PlaySpeech
.public _PlaySpeech
_PlaySpeech: .proc
// key_value = 1
// bit_exit = 0
// old_frame_pointer = 2
// return_address = 3
// .loc 0 45 0
// 41 //入口:Volume(音量0--3) SongIndex(歌曲索引)
// 42 //出口:无
// 43 //----------------------------
// 44 U16 PlaySpeech(U16 Volume,U16 SongIndex)
// 45 {
LM7:
BB1_PU1: // 0x35
// BB:1 cycle count: 63
00009A1B 88 DA push BP to [SP] // [0:45]
00009A1C 42 20 SP = SP - 2 // [6:45]
00009A1D 08 0B 01 00 BP = SP + 1 // [8:45]
LBB2:
// .loc 0 46 0
// 46 U16 key_value,bit_exit=00;
LM8:
00009A1F 40 98 R4 = 0 // [12:46]
00009A20 00 D8 [BP + 0] = R4 // [14:46] bit_exit
// .loc 0 48 0
// 47
// 48 InilSpeech(Volume,SongIndex); //---语音播放初始化 入口:音量(0-3)和歌曲索引 出口:无
LM9:
00009A21 42 20 SP = SP - 2 // [20:48]
00009A22 05 96 R3 = [BP + 5] // [22:48] Volume
00009A23 08 09 01 00 R4 = SP + 1 // [28:48]
00009A25 C4 D6 [R4] = R3 // [32:48]
00009A26 06 96 R3 = [BP + 6] // [38:48] SongIndex
00009A27 08 09 02 00 R4 = SP + 2 // [44:48]
00009A29 C4 D6 [R4] = R3 // [48:48]
00009A2A 40 F0 05 9B call _InilSpeech // [54:48] InilSpeech
BB2_PU1: // 0x46
// BB:2 cycle count: 11
00009A2C 42 00 SP = SP + 2 // [0:48]
// .loc 0 49 0
// 49 T_SACM_DVR1600_Status(); //---在汇编中调用播放状态库函数 返回播放状态
LM10:
00009A2D 40 F0 E7 9B call _T_SACM_DVR1600_Status // [2:49] T_SACM_DVR1600_Status
L_1_17: // 0x49
// BB:3 cycle count: 24
// .loc 0 50 0
// 50 while((StatusData&0x03)!=0x00)
LM11:
00009A2F 7F BC SR = SR & 63 // [0:50]
00009A30 0E AD 00 00 SR = SR | high6 _StatusData // [2:50] StatusData
00009A32 0C 99 7A 01 R4 = offset _StatusData // [6:50] StatusData
00009A34 E4 98 R4 = DS:[R4] // [10:50]
00009A35 43 B8 R4 = R4 & 3 // [16:50]
00009A36 40 48 cmp R4, 0 // [18:50]
00009A37 02 4E jne BB4_PU1 // [20:50]
BB33_PU1: // 0x52
// BB:33 cycle count: 5
00009A38 80 FE BB 9A goto L_1_18 // [0:0]
BB4_PU1: // 0x54
// BB:4 cycle count: 9
// .loc 0 52 0
// 51 {
// 52 key_value=KeyValue();
LM12:
00009A3A 40 F0 E6 99 call _KeyValue // [0:52] KeyValue
BB5_PU1: // 0x56
// BB:5 cycle count: 26
00009A3C 01 D2 [BP + 1] = R1 // [0:52] key_value
// .loc 0 53 0
// 53 key_value=0;
LM13:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -