📄 speed3.lst
字号:
A51 MACRO ASSEMBLER SPEED3 09/03/2006 11:00:10 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN speed3.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE speed3.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
0000 2 ORG 0
0000 020033 3 LJMP MAIN
000B 4 ORG 000BH
000B 0201F1 5 LJMP WT0
0030 6 ORG 30H
7
0030 758130 8 MOV SP,#30H
0033 9 MAIN:
0083 10 DATA_IN EQU P0.3
0080 11 SHCP EQU P0.0
0081 12 STCP EQU P0.1
0082 13 SDI EQU P0.2
0033 758901 14 MOV TMOD,#01H
0036 D2AF 15 SETB EA
0038 00 16 NOP
0039 00 17 NOP
003A 18 INITIAL:
003A 7800 19 MOV R0,#0
003C 7900 20 MOV R1,#0
003E 7A00 21 MOV R2,#0
0040 7B00 22 MOV R3,#0
0042 7C00 23 MOV R4,#0
0044 7D00 24 MOV R5,#0
0046 7E00 25 MOV R6,#0
0048 7F00 26 MOV R7,#0
27
004A 752500 28 MOV 25H,#0
004D 752600 29 MOV 26H,#0
0050 752700 30 MOV 27H,#0
0053 752800 31 MOV 28H,#0
32 ;LJMP TIAOSHI-----------
33
34
35
0056 C28C 36 CLR TR0
0058 C2A9 37 CLR ET0
005A 758CD8 38 MOV TH0,#0D8H
005D 758AEF 39 MOV TL0,#0EFH
40
41
42
43
44
45
46
0060 47 WAIT0:
0060 2083FD 48 JB DATA_IN,$
0063 D28C 49 SETB TR0
0065 D2A9 50 SETB ET0
0067 120209 51 LCALL DELAY0
52
006A 3083FD 53 JNB DATA_IN,$
006D 120209 54 LCALL DELAY0
55
56
0070 2083FD 57 WAIT1: JB DATA_IN,$
0073 C28C 58 CLR TR0
A51 MACRO ASSEMBLER SPEED3 09/03/2006 11:00:10 PAGE 2
59
60
0075 C3 61 CLR C
0076 EC 62 MOV A,R4
0077 358A 63 ADDC A,TL0
0079 F50F 64 MOV 0FH,A
65
007B EB 66 MOV A,R3
007C 358C 67 ADDC A,TH0
007E F50E 68 MOV 0EH,A
69
0080 EA 70 MOV A,R2
0081 3400 71 ADDC A,#0
0083 F50D 72 MOV 0DH,A
73
0085 E9 74 MOV A,R1
0086 3400 75 ADDC A,#0
0088 F50C 76 MOV 0CH,A
77 ; MOV R4,#0
78 ; MOV R5,#0
79 ; MOV R6,TH0
80 ; MOV R7,TL0
81 ;
82 ;; MOV R2,#0
83 ; MOV R3,#64H
84 ; LCALL DIVX
85 ;
86 ; LJMP TIAOSHI
87 ; MOV R4,TH0
88 ; MOV R5,TL0
89 ; MOV R7,#64H
90
91 ; LCALL D457 ;THOTLO/100->R3
92
93 ;ADD_0: CLR C
94 ; MOV A,R2
95 ; ADDC A,R7
96 ; MOV R3,A
97
98 ; MOV A,R1
99 ; ADDC A,R6
100 ; MOV R2,A ;COUNT+THOTLO/100
101
102
103 ;MOV A,R2
104 ;MOV R3,A
105 ;MOV A,R1
106 ; MOV R2,A ;GET R2R3
107
108 ;MOV R4,#0
109 ;MOV R5,#9H
110 ;MOV R6,#27H
111 ;MOV R7,#0C0H
112 ;ACALL DIV60
113
114 ;======================================================================
008A 7C00 115 MOV R4,#0
008C 7D00 116 MOV R5,#0
008E 7E00 117 MOV R6,#0
0090 7F00 118 MOV R7,#0
0092 750803 119 MOV 08H, #03H;60 000 000高字节
0095 750993 120 MOV 09H, #93H
0098 750A87 121 MOV 0AH, #87H
009B 750B00 122 MOV 0BH, #00H
123
124
A51 MACRO ASSEMBLER SPEED3 09/03/2006 11:00:10 PAGE 3
125 ;4字节除4字节商为4字节除法子程序CHU40
126 ;被除数放在内部08H.09H.0AH.0BH 单元中,除数放在0C.0D.0E.0F单元中
127 ;商数放在内部R4.R5.R6.R7单元中,余数放在10H.11H.12H.13H单元中.
128 ;溢出时商为零。余数为被除数
129 ;资源影响;R0--16H共24字节 PSW 运行总时间1.977毫秒
009E 7820 130 CHU40: MOV R0, #20H
00A0 751000 131 MOV 10H, #00H
00A3 751100 132 MOV 11H, #00H
00A6 751200 133 MOV 12H, #00H
00A9 751300 134 MOV 13H, #00H
00AC C3 135 CHU47: CLR C
00AD E50B 136 MOV A, 0BH
00AF 33 137 RLC A
00B0 F50B 138 MOV 0BH, A
00B2 E50A 139 MOV A, 0AH ;被除和扩充位左移
00B4 33 140 RLC A
00B5 F50A 141 MOV 0AH, A
00B7 E509 142 MOV A, 09H
00B9 33 143 RLC A
00BA F509 144 MOV 09H, A
00BC E508 145 MOV A, 08H
00BE 33 146 RLC A
00BF F508 147 MOV 08H, A
00C1 E513 148 MOV A, 13H
00C3 33 149 RLC A
00C4 F513 150 MOV 13H, A
00C6 E512 151 MOV A, 12H
00C8 33 152 RLC A
00C9 F512 153 MOV 12H, A
00CB E511 154 MOV A, 11H
00CD 33 155 RLC A
00CE F511 156 MOV 11H, A
00D0 E510 157 MOV A, 10H
00D2 33 158 RLC A
00D3 F510 159 MOV 10H, A
00D5 EF 160 MOV A, R7 ;商数左移
00D6 33 161 RLC A
00D7 FF 162 MOV R7, A
00D8 EE 163 MOV A, R6
00D9 33 164 RLC A
00DA FE 165 MOV R6, A
00DB ED 166 MOV A, R5
00DC 33 167 RLC A
00DD FD 168 MOV R5, A
00DE EC 169 MOV A, R4
00DF 33 170 RLC A
00E0 FC 171 MOV R4, A
00E1 C3 172 CLR C
00E2 E513 173 MOV A, 13H ;判断
00E4 950F 174 SUBB A, 0FH
00E6 F9 175 MOV R1, A
00E7 E512 176 MOV A, 12H ;判断
00E9 950E 177 SUBB A, 0EH
00EB F514 178 MOV 14H, A
00ED E511 179 MOV A, 11H
00EF 950D 180 SUBB A, 0DH
00F1 F515 181 MOV 15H, A
00F3 E510 182 MOV A, 10H ;判断
00F5 950C 183 SUBB A, 0CH
00F7 F516 184 MOV 16H, A
00F9 400C 185 JC LOP490
00FB 0F 186 INC R7
00FC 8913 187 MOV 13H,R1 ;建立余数
00FE 851412 188 MOV 12H,14H
0101 851511 189 MOV 11H,15H
0104 851610 190 MOV 10H,16H
A51 MACRO ASSEMBLER SPEED3 09/03/2006 11:00:10 PAGE 4
0107 D8A3 191 LOP490: DJNZ R0, CHU47
192 ;======================================================================
193
194
195
196
197
0109 120115 198 LCALL DEPART
199
200
010C 12017E 201 LCALL HC595_DISP
010F 120209 202 LCALL DELAY0
0112 02003A 203 LJMP INITIAL
204
205
206 ;=================================================================
207 ; DEPART DIVX RESULT TO FOUR DIGITS
208 ; IN:R6R7
209 ; OUT:25H,26H,27H,28H
210 ;=================================================================
0115 211 DEPART:
212
213
0115 EE 214 QIAN: MOV A,R6
0116 FC 215 MOV R4,A
0117 EF 216 MOV A,R7
0118 FD 217 MOV R5,A
0119 218 SUB10:
0119 C3 219 CLR C
011A EF 220 MOV A,R7
221
011B 94E8 222 SUBB A,#0E8H
011D FF 223 MOV R7,A
011E EE 224 MOV A,R6
225
011F 9403 226 SUBB A,#3H;减去一千判断符号
0121 FE 227 MOV R6,A
0122 30E702 228 JNB ACC.7,SUB11
0125 212C 229 AJMP BAI0
230
0127 231 SUB11:
0127 0525 232 INC 25H
0129 020115 233 LJMP QIAN
234 ;-----------------------------------------------------
012C ED 235 BAI0: MOV A,R5
012D FF 236 MOV R7,A
012E EC 237 MOV A,R4
012F FE 238 MOV R6,A
0130 EE 239 BAI: MOV A,R6
0131 FC 240 MOV R4,A
0132 EF 241 MOV A,R7
0133 FD 242 MOV R5,A
243
0134 244 SUB20:
0134 C3 245 CLR C
0135 EF 246 MOV A,R7
247
0136 9464 248 SUBB A,#64H
0138 FF 249 MOV R7,A
0139 EE 250 MOV A,R6
251
013A 9400 252 SUBB A,#0H;减去一千判断符号
013C FE 253 MOV R6,A
013D 30E702 254 JNB ACC.7,SUB21
0140 2147 255 AJMP SHI0
256
A51 MACRO ASSEMBLER SPEED3 09/03/2006 11:00:10 PAGE 5
0142 257 SUB21:
0142 0526 258 INC 26H
259
0144 020130 260 LJMP BAI
261 ;------------------------------------------------------------
0147 ED 262 SHI0: MOV A,R5
0148 FF 263 MOV R7,A
0149 EC 264 MOV A,R4
014A FE 265 MOV R6,A
014B EE 266 SHI: MOV A,R6
014C FC 267 MOV R4,A
014D EF 268 MOV A,R7
014E FD 269 MOV R5,A
270
014F 271 SUB30:
014F C3 272 CLR C
0150 EF 273 MOV A,R7
274
0151 940A 275 SUBB A,#0AH
0153 FF 276 MOV R7,A
0154 EE 277 MOV A,R6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -