📄 console.lst
字号:
\ 000019 85..82 MOV DPL,?XSP + 0
\ 00001C 85..83 MOV DPH,?XSP + 1
\ 00001F E0 MOVX A,@DPTR
\ 000020 F8 MOV R0,A
\ 000021 A3 INC DPTR
\ 000022 E0 MOVX A,@DPTR
\ 000023 F9 MOV R1,A
\ 000024 E8 MOV A,R0
\ 000025 75F000 MOV B,#0x0
\ 000028 A4 MUL AB
\ 000029 C8 XCH A,R0
\ 00002A AAF0 MOV R2,B
\ 00002C 75F001 MOV B,#0x1
\ 00002F A4 MUL AB
\ 000030 2A ADD A,R2
\ 000031 FA MOV R2,A
\ 000032 75F000 MOV B,#0x0
\ 000035 E9 MOV A,R1
\ 000036 A4 MUL AB
\ 000037 2A ADD A,R2
\ 000038 F9 MOV R1,A
\ 000039 E5.. MOV A,?V0 + 6
\ 00003B 28 ADD A,R0
\ 00003C F8 MOV R0,A
\ 00003D E5.. MOV A,?V0 + 7
\ 00003F 39 ADDC A,R1
\ 000040 F9 MOV R1,A
\ 000041 88.. MOV ?V0 + 0,R0
\ 000043 89.. MOV ?V0 + 1,R1
68 divider=10000;
\ 000045 7E10 MOV R6,#0x10
\ 000047 7F27 MOV R7,#0x27
69
70 if((highval==0xff)&&(lowval==0xff))
\ 000049 85..82 MOV DPL,?XSP + 0
\ 00004C 85..83 MOV DPH,?XSP + 1
\ 00004F E0 MOVX A,@DPTR
\ 000050 64FF XRL A,#0xff
\ 000052 7004 JNZ ??ConsolePutInitDataWithoutRtn_0
\ 000054 A3 INC DPTR
\ 000055 E0 MOVX A,@DPTR
\ 000056 6400 XRL A,#0x0
\ ??ConsolePutInitDataWithoutRtn_0:
\ 000058 701F JNZ ??ConsolePutInitDataWithoutRtn_1
\ 00005A 74FF MOV A,#-0x1
\ 00005C 65.. XRL A,?V0 + 6
\ 00005E 7004 JNZ ??ConsolePutInitDataWithoutRtn_2
\ 000060 7400 MOV A,#0x0
\ 000062 65.. XRL A,?V0 + 7
\ ??ConsolePutInitDataWithoutRtn_2:
\ 000064 7013 JNZ ??ConsolePutInitDataWithoutRtn_1
71 {
72 for(i=0;i<4;i++)
\ 000066 75..00 MOV ?V0 + 2,#0x0
\ ??ConsolePutInitDataWithoutRtn_3:
\ 000069 E5.. MOV A,?V0 + 2
\ 00006B C3 CLR C
\ 00006C 9404 SUBB A,#0x4
\ 00006E 507C JNC ??ConsolePutInitDataWithoutRtn_4
73 halPutch('*');
\ 000070 ; Setup parameters for call to function halPutch
\ 000070 792A MOV R1,#0x2a
\ 000072 12.... LCALL halPutch
\ 000075 05.. INC ?V0 + 2
\ 000077 80F0 SJMP ??ConsolePutInitDataWithoutRtn_3
74 return;
75 }
76
77 for(i=5; divider>wordvalue && i>1 ;i--)
\ ??ConsolePutInitDataWithoutRtn_1:
\ 000079 75..05 MOV ?V0 + 2,#0x5
\ ??ConsolePutInitDataWithoutRtn_5:
\ 00007C C3 CLR C
\ 00007D E5.. MOV A,?V0 + 0
\ 00007F 9E SUBB A,R6
\ 000080 E5.. MOV A,?V0 + 1
\ 000082 9F SUBB A,R7
\ 000083 501E JNC ??ConsolePutInitDataWithoutRtn_6
\ 000085 E5.. MOV A,?V0 + 2
\ 000087 C3 CLR C
\ 000088 9402 SUBB A,#0x2
\ 00008A 4017 JC ??ConsolePutInitDataWithoutRtn_6
78 {
79 divider/=10;
\ 00008C EE MOV A,R6
\ 00008D F8 MOV R0,A
\ 00008E EF MOV A,R7
\ 00008F F9 MOV R1,A
\ 000090 7A0A MOV R2,#0xa
\ 000092 7B00 MOV R3,#0x0
\ 000094 12.... LCALL ?US_DIV_MOD
\ 000097 88.. MOV ?V0 + 4,R0
\ 000099 89.. MOV ?V0 + 5,R1
\ 00009B AE.. MOV R6,?V0 + 4
\ 00009D AF.. MOV R7,?V0 + 5
80 //ConsolePut(' ');
81 }
\ 00009F 15.. DEC ?V0 + 2
\ 0000A1 80D9 SJMP ??ConsolePutInitDataWithoutRtn_5
82 for(;i>0;i--)
\ ??ConsolePutInitDataWithoutRtn_6:
\ 0000A3 E5.. MOV A,?V0 + 2
\ 0000A5 C3 CLR C
\ 0000A6 9401 SUBB A,#0x1
\ 0000A8 4042 JC ??ConsolePutInitDataWithoutRtn_4
83 {
84
85 dig = (wordvalue/divider);
\ 0000AA A8.. MOV R0,?V0 + 0
\ 0000AC A9.. MOV R1,?V0 + 1
\ 0000AE EE MOV A,R6
\ 0000AF FA MOV R2,A
\ 0000B0 EF MOV A,R7
\ 0000B1 FB MOV R3,A
\ 0000B2 12.... LCALL ?US_DIV_MOD
\ 0000B5 E8 MOV A,R0
\ 0000B6 F5.. MOV ?V0 + 3,A
86 wordvalue = (wordvalue%divider);
\ 0000B8 A8.. MOV R0,?V0 + 0
\ 0000BA A9.. MOV R1,?V0 + 1
\ 0000BC EE MOV A,R6
\ 0000BD FA MOV R2,A
\ 0000BE EF MOV A,R7
\ 0000BF FB MOV R3,A
\ 0000C0 12.... LCALL ?US_DIV_MOD
\ 0000C3 8A.. MOV ?V0 + 4,R2
\ 0000C5 8B.. MOV ?V0 + 5,R3
\ 0000C7 85.... MOV ?V0 + 0,?V0 + 4
\ 0000CA 85.... MOV ?V0 + 1,?V0 + 5
87 halPutch(dig+0x30);
\ 0000CD ; Setup parameters for call to function halPutch
\ 0000CD 7430 MOV A,#0x30
\ 0000CF 25.. ADD A,?V0 + 3
\ 0000D1 F9 MOV R1,A
\ 0000D2 12.... LCALL halPutch
88
89 divider/=10;
\ 0000D5 EE MOV A,R6
\ 0000D6 F8 MOV R0,A
\ 0000D7 EF MOV A,R7
\ 0000D8 F9 MOV R1,A
\ 0000D9 7A0A MOV R2,#0xa
\ 0000DB 7B00 MOV R3,#0x0
\ 0000DD 12.... LCALL ?US_DIV_MOD
\ 0000E0 88.. MOV ?V0 + 4,R0
\ 0000E2 89.. MOV ?V0 + 5,R1
\ 0000E4 AE.. MOV R6,?V0 + 4
\ 0000E6 AF.. MOV R7,?V0 + 5
90 }
\ 0000E8 15.. DEC ?V0 + 2
\ 0000EA 80B7 SJMP ??ConsolePutInitDataWithoutRtn_6
\ ??ConsolePutInitDataWithoutRtn_4:
\ 0000EC 7402 MOV A,#0x2
\ 0000EE 12.... LCALL ?DEALLOC_XSTACK8
\ 0000F1 7F08 MOV R7,#0x8
\ 0000F3 02.... LJMP ?FUNC_LEAVE_XDATA
91 //ConsolePut('\r');
92 //ConsolePut('\n');
93 }
94
95
96
97
98
\ In segment NEAR_CODE, align 1, keep-with-next
99 void conPCRLF(void){
\ conPCRLF:
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
100 conPrintROMString("\n");
\ 000000 ; Setup parameters for call to function conPrintROMString_func
\ 000000 7A.. MOV R2,#(??xxxxromstr & 0xff)
\ 000002 7B.. MOV R3,#((??xxxxromstr >> 8) & 0xff)
\ 000004 12.... LCALL conPrintROMString_func
101 }
\ 000007 22 RET
\ In segment CODE_C, align 1
\ ??xxxxromstr:
\ 000000 0A00 DB "\012"
102
\ In segment NEAR_CODE, align 1, keep-with-next
103 void conPrintROMString_func (ROMCHAR *s) {
\ conPrintROMString_func:
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
\ 000004 8A82 MOV DPL,R2
\ 000006 8B83 MOV DPH,R3
104 while(*s) {
\ ??conPrintROMString_func_0:
\ 000008 E4 CLR A
\ 000009 93 MOVC A,@A+DPTR
\ 00000A 6014 JZ ??conPrintROMString_func_1
105 if (*s == '\n') halPutch('\r');
\ 00000C E4 CLR A
\ 00000D 93 MOVC A,@A+DPTR
\ 00000E 640A XRL A,#0xa
\ 000010 7005 JNZ ??conPrintROMString_func_2
\ 000012 ; Setup parameters for call to function halPutch
\ 000012 790D MOV R1,#0xd
\ 000014 12.... LCALL halPutch
106 halPutch(*s);
\ ??conPrintROMString_func_2:
\ 000017 ; Setup parameters for call to function halPutch
\ 000017 E4 CLR A
\ 000018 93 MOVC A,@A+DPTR
\ 000019 F9 MOV R1,A
\ 00001A 12.... LCALL halPutch
107 s++;
\ 00001D A3 INC DPTR
\ 00001E 80E8 SJMP ??conPrintROMString_func_0
108 }
109 }
\ ??conPrintROMString_func_1:
\ 000020 D083 POP DPH
\ 000022 D082 POP DPL
\ 000024 22 RET
110
111
112
113
\ In segment NEAR_CODE, align 1, keep-with-next
114 void conPrintString (char *s) {
\ conPrintString:
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
\ 000004 8A82 MOV DPL,R2
\ 000006 8B83 MOV DPH,R3
115 while(*s) {
\ ??conPrintString_0:
\ 000008 E0 MOVX A,@DPTR
\ 000009 6012 JZ ??conPrintString_1
116 if (*s == '\n') halPutch('\r');
\ 00000B E0 MOVX A,@DPTR
\ 00000C 640A XRL A,#0xa
\ 00000E 7005 JNZ ??conPrintString_2
\ 000010 ; Setup parameters for call to function halPutch
\ 000010 790D MOV R1,#0xd
\ 000012 12.... LCALL halPutch
117 halPutch(*s);
\ ??conPrintString_2:
\ 000015 ; Setup parameters for call to function halPutch
\ 000015 E0 MOVX A,@DPTR
\ 000016 F9 MOV R1,A
\ 000017 12.... LCALL halPutch
118 s++;
\ 00001A A3 INC DPTR
\ 00001B 80EB SJMP ??conPrintString_0
119 }
120 }
\ ??conPrintString_1:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -