📄 serial.ls1
字号:
00C1 EA 885 MOV A,R2
00C2 6583 886 XRL A,DPH
00C4 887 ?C0182:
00C4 7004 888 JNZ ?C0014
889 ; //出临界区
890 ; #pragma ASM
891 ; POP IE;
00C6 D0A8 892 POP IE;
00C8 8038 893 SJMP ?C0015
894 ; #pragma ENDASM
895 ; return;} //TxBuf Full
896 ; SOURCE LINE # 151
00CA 897 ?C0014:
898 ; *inTxBuf=ch;
899 ; SOURCE LINE # 152
00CA 900003 900 MOV DPTR,#03H
00CD 120000 F 901 LCALL ?C?XBPOFF
00D0 E0 902 MOVX A,@DPTR
00D1 FF 903 MOV R7,A
00D2 900000 F 904 MOV DPTR,#inTxBuf
00D5 E0 905 MOVX A,@DPTR
00D6 FB 906 MOV R3,A
00D7 A3 907 INC DPTR
A51 MACRO ASSEMBLER SERIAL 09/04/2007 10:27:37 PAGE 15
00D8 E0 908 MOVX A,@DPTR
00D9 FA 909 MOV R2,A
00DA A3 910 INC DPTR
00DB E0 911 MOVX A,@DPTR
00DC F9 912 MOV R1,A
00DD EF 913 MOV A,R7
00DE 120000 F 914 LCALL ?C?CSTPTR
915 ; inTxBuf=t;
916 ; SOURCE LINE # 153
00E1 850083 F 917 MOV DPH,?C_XBP
00E4 850082 F 918 MOV DPL,?C_XBP+01H
00E7 E0 919 MOVX A,@DPTR
00E8 F9 920 MOV R1,A
00E9 A3 921 INC DPTR
00EA E0 922 MOVX A,@DPTR
00EB FA 923 MOV R2,A
00EC A3 924 INC DPTR
00ED E0 925 MOVX A,@DPTR
00EE 900000 F 926 MOV DPTR,#inTxBuf
00F1 C9 927 XCH A,R1
00F2 F0 928 MOVX @DPTR,A
00F3 A3 929 INC DPTR
00F4 EA 930 MOV A,R2
00F5 F0 931 MOVX @DPTR,A
00F6 A3 932 INC DPTR
00F7 E9 933 MOV A,R1
00F8 F0 934 MOVX @DPTR,A
935 ; //ES=1;
936 ; //出临界区
937 ; #pragma ASM
938 ; POP IE;
00F9 D0A8 939 POP IE;
940 ; #pragma ENDASM
941 ; if(TIflag){
942 ; SOURCE LINE # 159
00FB 300004 F 943 JNB TIflag,?C0015
944 ; TIflag=0;
945 ; SOURCE LINE # 160
00FE C200 F 946 CLR TIflag
947 ; TI=1;
948 ; SOURCE LINE # 161
0100 D299 949 SETB TI
950 ; }
951 ; SOURCE LINE # 162
952 ; }
953 ; SOURCE LINE # 163
0102 954 ?C0015:
0102 900004 955 MOV DPTR,#04H
0105 020000 F 956 LJMP ?C?ADDXBP
957 ; END OF _?PrintChar
958
959 ;
960 ; void PrintCh(unsigned char ch) reentrant//内部使用,不建议用户看到。
961
---- 962 RSEG ?PR?_?PrintCh?SERIAL
0000 963 _?PrintCh:
964 USING 0
965 ; SOURCE LINE # 165
0000 90FFFF 966 MOV DPTR,#0FFFFH
0003 120000 F 967 LCALL ?C?ADDXBP
0006 EF 968 MOV A,R7
0007 F0 969 MOVX @DPTR,A
970 ; {
971 ; if(ch>=0&&ch<=9) ch=ch+'0';
972 ; SOURCE LINE # 167
0008 850083 F 973 MOV DPH,?C_XBP
A51 MACRO ASSEMBLER SERIAL 09/04/2007 10:27:37 PAGE 16
000B 850082 F 974 MOV DPL,?C_XBP+01H
000E E0 975 MOVX A,@DPTR
000F FF 976 MOV R7,A
0010 C3 977 CLR C
0011 9400 978 SUBB A,#00H
0013 400C 979 JC ?C0017
0015 EF 980 MOV A,R7
0016 D3 981 SETB C
0017 9409 982 SUBB A,#09H
0019 5006 983 JNC ?C0017
001B E0 984 MOVX A,@DPTR
001C 2430 985 ADD A,#030H
001E F0 986 MOVX @DPTR,A
001F 800A 987 SJMP ?C0018
0021 988 ?C0017:
989 ; else ch=ch+'A'-10;
990 ; SOURCE LINE # 168
0021 EF 991 MOV A,R7
0022 2437 992 ADD A,#037H
0024 850083 F 993 MOV DPH,?C_XBP
0027 850082 F 994 MOV DPL,?C_XBP+01H
002A F0 995 MOVX @DPTR,A
002B 996 ?C0018:
997 ; PrintChar(ch);
998 ; SOURCE LINE # 169
002B 850083 F 999 MOV DPH,?C_XBP
002E 850082 F 1000 MOV DPL,?C_XBP+01H
0031 E0 1001 MOVX A,@DPTR
0032 FF 1002 MOV R7,A
0033 120000 F 1003 LCALL _?PrintChar
1004 ; }
1005 ; SOURCE LINE # 170
0036 900001 1006 MOV DPTR,#01H
0039 020000 F 1007 LJMP ?C?ADDXBP
1008 ; END OF _?PrintCh
1009
1010 ;
1011 ; void insidePrintByte(unsigned char Byte) reentrant//内部使用,以十六进制格式显示1个字节数
据
1012
---- 1013 RSEG ?PR?_?insidePrintByte?SERIAL
0000 1014 L?0214:
1015 USING 0
0000 850083 F 1016 MOV DPH,?C_XBP
0003 850082 F 1017 MOV DPL,?C_XBP+01H
0006 E0 1018 MOVX A,@DPTR
0007 FF 1019 MOV R7,A
0008 1020 _?insidePrintByte:
1021 USING 0
1022 ; SOURCE LINE # 172
0008 90FFFF 1023 MOV DPTR,#0FFFFH
000B 120000 F 1024 LCALL ?C?ADDXBP
000E EF 1025 MOV A,R7
000F F0 1026 MOVX @DPTR,A
0010 90FFFF 1027 MOV DPTR,#0FFFFH
0013 120000 F 1028 LCALL ?C?ADDXBP
1029 ; {
1030 ; unsigned char c;
1031 ; c=Byte;
1032 ; SOURCE LINE # 175
0016 850083 F 1033 MOV DPH,?C_XBP
0019 850082 F 1034 MOV DPL,?C_XBP+01H
001C A3 1035 INC DPTR
001D E0 1036 MOVX A,@DPTR
001E 850083 F 1037 MOV DPH,?C_XBP
0021 850082 F 1038 MOV DPL,?C_XBP+01H
A51 MACRO ASSEMBLER SERIAL 09/04/2007 10:27:37 PAGE 17
0024 F0 1039 MOVX @DPTR,A
1040 ; c=c>>4;
1041 ; SOURCE LINE # 176
0025 E0 1042 MOVX A,@DPTR
0026 C4 1043 SWAP A
0027 540F 1044 ANL A,#0FH
0029 F0 1045 MOVX @DPTR,A
1046 ; PrintCh(c);
1047 ; SOURCE LINE # 177
002A E0 1048 MOVX A,@DPTR
002B FF 1049 MOV R7,A
002C 120000 F 1050 LCALL _?PrintCh
1051 ; c=Byte;c=c&0x0F;PrintCh(c);
1052 ; SOURCE LINE # 178
002F 850083 F 1053 MOV DPH,?C_XBP
0032 850082 F 1054 MOV DPL,?C_XBP+01H
0035 A3 1055 INC DPTR
0036 E0 1056 MOVX A,@DPTR
0037 850083 F 1057 MOV DPH,?C_XBP
003A 850082 F 1058 MOV DPL,?C_XBP+01H
003D F0 1059 MOVX @DPTR,A
003E E0 1060 MOVX A,@DPTR
003F 540F 1061 ANL A,#0FH
0041 F0 1062 MOVX @DPTR,A
0042 E0 1063 MOVX A,@DPTR
0043 FF 1064 MOV R7,A
0044 120000 F 1065 LCALL _?PrintCh
1066 ; }
1067 ; SOURCE LINE # 179
0047 900002 1068 MOV DPTR,#02H
004A 020000 F 1069 LJMP ?C?ADDXBP
1070 ; END OF _?insidePrintByte
1071
1072 ;
1073 ; void PrintByte(unsigned char Byte) reentrant//以十六进制格式显示1个字节数据
1074
---- 1075 RSEG ?PR?_?PrintByte?SERIAL
0000 1076 _?PrintByte:
1077 USING 0
1078 ; SOURCE LINE # 181
0000 90FFFF 1079 MOV DPTR,#0FFFFH
0003 120000 F 1080 LCALL ?C?ADDXBP
0006 EF 1081 MOV A,R7
0007 F0 1082 MOVX @DPTR,A
1083 ; {
1084 ; //EA=0;
1085 ; //入临界区
1086 ; #pragma ASM
1087 ; PUSH IE;
0008 C0A8 1088 PUSH IE;
1089 ; CLR EA;
000A C2AF 1090 CLR EA;
1091 ; #pragma ENDASM
1092 ; insidePrintByte(Byte);
1093 ; SOURCE LINE # 189
000C 120000 F 1094 LCALL L?0214
1095 ; //EA=1;
1096 ; //出临界区
1097 ; #pragma ASM
1098 ; POP IE;
000F D0A8 1099 POP IE;
1100 ; #pragma ENDASM
1101 ; }
1102 ; SOURCE LINE # 195
0011 900001 1103 MOV DPTR,#01H
0014 020000 F 1104 LJMP ?C?ADDXBP
A51 MACRO ASSEMBLER SERIAL 09/04/2007 10:27:37 PAGE 18
1105 ; END OF _?PrintByte
1106
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -