📄 text1.asm
字号:
// 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)
//-----------------------------------------------------------
.stabs "E:\600text3",100,0,3,Ltext0
.stabs "E:\600text3\text1.c",100,0,3,Ltext0
.code
Ltext0:
.stabs "int:t1=r1;-32768;32767;",128,0,0,0
.stabs "char:t2=r2;-32768;32767;",128,0,0,0
.stabs "long int:t3=r3;-2147483648;2147483647;",128,0,0,0
.stabs "unsigned int:t4=r4;0;65535;",128,0,0,0
.stabs "long unsigned int:t5=r5;0;4294967295;",128,0,0,0
.stabs "long long int:t6=r1;4;0;",128,0,0,0
.stabs "long long unsigned int:t7=r1;4;0;",128,0,0,0
.stabs "short int:t8=r8;-32768;32767;",128,0,0,0
.stabs "short unsigned int:t9=r9;0;65535;",128,0,0,0
.stabs "signed char:t10=r10;-32768;32767;",128,0,0,0
.stabs "unsigned char:t11=r11;0;65535;",128,0,0,0
.stabs "float:t12=r1;2;0;",128,0,0,0
.stabs "double:t13=r1;4;0;",128,0,0,0
.stabs "long double:t14=r1;4;0;",128,0,0,0
.stabs "complex float:t15=r1;4;0;",128,0,0,0
.stabs "complex double:t16=r1;8;0;",128,0,0,0
.stabs "complex long double:t17=r1;8;0;",128,0,0,0
.stabs "void:t18=18",128,0,0,0
.stabs "Bit8Def:T19=s1bitl:4,0,8;bith:4,8,8;;",128,0,0,0
.stabs "wordfielddef:T20=s1bit:4,0,16;;",128,0,0,0
.iram
.stabs "StatusData:G4",32,0,0,_StatusData
.public _StatusData
_StatusData:
.dw 1 dup(0)
.stabs "data1:G4",32,0,0,_data1
.public _data1
_data1:
.dw 1 dup(0)
.stabs "data2:G4",32,0,0,_data2
.public _data2
_data2:
.dw 1 dup(0)
.stabs "data3:G4",32,0,0,_data3
.public _data3
_data3:
.dw 1 dup(0)
.stabs "data4:G4",32,0,0,_data4
.public _data4
_data4:
.dw 1 dup(0)
.stabs "VolumeValue:G4",32,0,0,_VolumeValue
.public _VolumeValue
_VolumeValue:
.dw 1 dup(0)
.code
.stabs "KeyValue:F4",36,0,0,_KeyValue
// Program Unit: KeyValue
.public _KeyValue
_KeyValue: .proc
.stabn 0xa6,0,0,0
// 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:
.stabn 68,0,28,LM1-_KeyValue
BB1_PU0: // 0x0
// BB:1 cycle count: 68
push BP to [SP] // [0:28]
BP = SP + 1 // [6:28]
// .loc 0 29 0
// 29 data1+=1;
LM2:
.stabn 68,0,29,LM2-_KeyValue
SR = SR & 63 // [10:29]
SR = SR | high6 _data1 // [12:29] data1
R4 = offset _data1 // [16:29] data1
R4 = DS:[R4] // [20:29]
R4 = R4 + 1 // [26:29]
SR = SR & 63 // [28:29]
SR = SR | high6 _data1 // [30:29] data1
R3 = offset _data1 // [34:29] data1
DS:[R3] = R4 // [38:29]
// .loc 0 30 0
// 30 if (data1>=0x5f53)
LM3:
.stabn 68,0,30,LM3-_KeyValue
SR = SR & 63 // [44:30]
SR = SR | high6 _data1 // [46:30] data1
R4 = offset _data1 // [50:30] data1
R4 = DS:[R4] // [54:30]
cmp R4, 24402 // [60:30]
jbe L_0_1 // [64:30]
BB2_PU0: // 0x19
// BB:2 cycle count: 52
// .loc 0 32 0
// 31 {
// 32 data1=0;
LM4:
.stabn 68,0,32,LM4-_KeyValue
R3 = 0 // [0:32]
SR = SR & 63 // [2:32]
SR = SR | high6 _data1 // [4:32] data1
R4 = offset _data1 // [8:32] data1
DS:[R4] = R3 // [12:32]
// .loc 0 33 0
// 33 data2+=1;
LM5:
.stabn 68,0,33,LM5-_KeyValue
SR = SR & 63 // [18:33]
SR = SR | high6 _data2 // [20:33] data2
R4 = offset _data2 // [24:33] data2
R4 = DS:[R4] // [28:33]
R4 = R4 + 1 // [34:33]
SR = SR & 63 // [36:33]
SR = SR | high6 _data2 // [38:33] data2
R3 = offset _data2 // [42:33] data2
DS:[R3] = R4 // [46:33]
L_0_1: // 0x2d
// BB:3 cycle count: 30
// .loc 0 35 0
// 34 }
// 35 return data2;
LM6:
.stabn 68,0,35,LM6-_KeyValue
SR = SR & 63 // [0:35]
SR = SR | high6 _data2 // [2:35] data2
R4 = offset _data2 // [6:35] data2
R1 = DS:[R4] // [10:35]
pop BP from [SP] // [16:35]
retf // [22:35]
.endp
.stabs "viod:p1",160,0,0,3
LME1:
.stabf LME1-_KeyValue
.code
.stabs "PlaySpeech:F4",36,0,0,_PlaySpeech
// Program Unit: PlaySpeech
.public _PlaySpeech
_PlaySpeech: .proc
.stabn 0xa6,0,0,2
// 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:
.stabn 68,0,45,LM7-_PlaySpeech
BB1_PU1: // 0x35
// BB:1 cycle count: 63
push BP to [SP] // [0:45]
SP = SP - 2 // [6:45]
BP = SP + 1 // [8:45]
LBB2:
// .loc 0 46 0
// 46 U16 key_value,bit_exit=00;
LM8:
.stabn 68,0,46,LM8-_PlaySpeech
R4 = 0 // [12:46]
[BP + 0] = R4 // [14:46] bit_exit
// .loc 0 48 0
// 47
// 48 InilSpeech(Volume,SongIndex); //---语音播放初始化 入口:音量(0-3)和歌曲索引 出口:无
LM9:
.stabn 68,0,48,LM9-_PlaySpeech
SP = SP - 2 // [20:48]
R3 = [BP + 5] // [22:48] Volume
R4 = SP + 1 // [28:48]
[R4] = R3 // [32:48]
R3 = [BP + 6] // [38:48] SongIndex
R4 = SP + 2 // [44:48]
[R4] = R3 // [48:48]
call _InilSpeech // [54:48] InilSpeech
BB2_PU1: // 0x46
// BB:2 cycle count: 11
SP = SP + 2 // [0:48]
// .loc 0 49 0
// 49 T_SACM_DVR1600_Status(); //---在汇编中调用播放状态库函数 返回播放状态
LM10:
.stabn 68,0,49,LM10-_PlaySpeech
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:
.stabn 68,0,50,LM11-_PlaySpeech
SR = SR & 63 // [0:50]
SR = SR | high6 _StatusData // [2:50] StatusData
R4 = offset _StatusData // [6:50] StatusData
R4 = DS:[R4] // [10:50]
R4 = R4 & 3 // [16:50]
cmp R4, 0 // [18:50]
jne BB4_PU1 // [20:50]
BB33_PU1: // 0x52
// BB:33 cycle count: 5
goto L_1_18 // [0:0]
BB4_PU1: // 0x54
// BB:4 cycle count: 9
// .loc 0 52 0
// 51 {
// 52 key_value=KeyValue();
LM12:
.stabn 68,0,52,LM12-_PlaySpeech
call _KeyValue // [0:52] KeyValue
BB5_PU1: // 0x56
// BB:5 cycle count: 26
[BP + 1] = R1 // [0:52] key_value
// .loc 0 53 0
// 53 key_value=0;
LM13:
.stabn 68,0,53,LM13-_PlaySpeech
R4 = 0 // [6:53]
[BP + 1] = R4 // [8:53] key_value
// .loc 0 54 0
// 54 switch (key_value)
LM14:
.stabn 68,0,54,LM14-_PlaySpeech
R4 = [BP + 1] // [14:54] key_value
cmp R4, 0 // [20:54]
je Lt_1_1 // [22:54]
BB6_PU1: // 0x5c
// BB:6 cycle count: 12
R4 = [BP + 1] // [0:54] key_value
cmp R4, 1 // [6:54]
je Lt_1_3 // [8:54]
BB7_PU1: // 0x5f
// BB:7 cycle count: 12
R4 = [BP + 1] // [0:54] key_value
cmp R4, 2 // [6:54]
jne BB8_PU1 // [8:54]
BB37_PU1: // 0x62
// BB:37 cycle count: 5
goto Lt_1_4 // [0:0]
BB8_PU1: // 0x64
// BB:8 cycle count: 12
R4 = [BP + 1] // [0:54] key_value
cmp R4, 3 // [6:54]
jne BB9_PU1 // [8:54]
BB36_PU1: // 0x67
// BB:36 cycle count: 5
goto Lt_1_5 // [0:0]
BB9_PU1: // 0x69
// BB:9 cycle count: 12
R4 = [BP + 1] // [0:54] key_value
cmp R4, 4 // [6:54]
jne BB10_PU1 // [8:54]
BB35_PU1: // 0x6c
// BB:35 cycle count: 5
goto Lt_1_6 // [0:0]
BB10_PU1: // 0x6e
// BB:10 cycle count: 5
goto Lt_1_7 // [0:54]
Lt_1_1: // 0x70
// BB:11 cycle count: 22
// .loc 0 58 0
// 55 {
// 56 //---加大音量
// 57 case 0:
// 58 if (VolumeValue<4)
LM15:
.stabn 68,0,58,LM15-_PlaySpeech
SR = SR & 63 // [0:58]
SR = SR | high6 _VolumeValue // [2:58] VolumeValue
R4 = offset _VolumeValue // [6:58] VolumeValue
R4 = DS:[R4] // [10:58]
cmp R4, 3 // [16:58]
ja L_1_19 // [18:58]
BB12_PU1: // 0x78
// BB:12 cycle count: 34
// .loc 0 59 0
// 59 VolumeValue+=1;
LM16:
.stabn 68,0,59,LM16-_PlaySpeech
SR = SR & 63 // [0:59]
SR = SR | high6 _VolumeValue // [2:59] VolumeValue
R4 = offset _VolumeValue // [6:59] VolumeValue
R4 = DS:[R4] // [10:59]
R4 = R4 + 1 // [16:59]
SR = SR & 63 // [18:59]
SR = SR | high6 _VolumeValue // [20:59] VolumeValue
R3 = offset _VolumeValue // [24:59] VolumeValue
DS:[R3] = R4 // [28:59]
L_1_19: // 0x85
// BB:13 cycle count: 37
// .loc 0 60 0
// 60 T_SACM_DVR1600_Volume(VolumeValue);
LM17:
.stabn 68,0,60,LM17-_PlaySpeech
SP = SP - 1 // [0:60]
SR = SR & 63 // [2:60]
SR = SR | high6 _VolumeValue // [4:60] VolumeValue
R4 = offset _VolumeValue // [8:60] VolumeValue
R3 = DS:[R4] // [12:60]
R4 = SP + 1 // [18:60]
[R4] = R3 // [22:60]
call _T_SACM_DVR1600_Volume // [28:60] T_SACM_DVR1600_Volume
BB14_PU1: // 0x91
// BB:14 cycle count: 6
SP = SP + 1 // [0:60]
// .loc 0 61 0
// 61 break;
LM18:
.stabn 68,0,61,LM18-_PlaySpeech
jmp Lt_1_2 // [2:61]
Lt_1_3: // 0x93
// BB:15 cycle count: 22
// .loc 0 64 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -