📄 tfcl.lst
字号:
1120 0911 CD 21 INT 21H
1121 0913 07 POP ES
1122 0914 1F POP DS
1123 0915 A0 01EBr MOV AL,OLD_MSK
1124 0918 E6 21 OUT 21H,AL
1125 091A FB STI
1126 091B B4 4C MOV AH,4CH ;exit
1127 091D CD 21 INT 21H
1128 091F 80 3E 01E4r 00 CHK_INT1: CMP INTFLAG,0 ;计数18次,则减一秒
1129 0924 74 D2 JE MAINLOOP11
1130 0926 C6 06 01E4r 00 MOV INTFLAG,0
1131 092B FE 0E 01E5r DEC COUNT
1132 092F 75 C7 JNE MAINLOOP11
1133 0931 C6 06 01E5r 12 MOV COUNT,18
1134 0936 A0 01E6r MOV AL,SECOND
1135 0939 FE C8 DEC AL
1136 093B 2F DAS
1137 093C A2 01E6r MOV SECOND,AL
1138 093F 80 3E 01E6r 00 CMP SECOND,0 ;等于0则返回
1139 0944 77 03 JA REFRESH1
Turbo Assembler Version 4.1 06/01/12 16:00:27 Page 21
F:\工程文件\Fasm\TFCL.ASM
1140 0946 EB 48 90 RET12: JMP STOP1
1141 0949 B4 02 REFRESH1: MOV AH,02H ;转成ASC 并输出
1142 094B B6 05 MOV DH,05
1143 094D B2 19 MOV DL,25
1144 094F B7 00 MOV BH,00H
1145 0951 CD 10 INT 10H
1146 0953 8A 36 01E6r MOV DH,SECOND
1147 0957 8A D6 MOV DL,DH
1148 0959 80 E2 F0 AND DL,11110000B
1149 095C B1 04 MOV CL,04
1150 095E D2 EA SHR DL,CL
1151 0960 80 CA 30 OR DL,30H
1152 0963 B4 0E MOV AH,0EH
1153 0965 8A C2 MOV AL,DL
1154 0967 CD 10 INT 10H
1155 0969 8A D6 MOV DL,DH
1156 096B 80 E2 0F AND DL,00001111B
1157 096E 80 CA 30 OR DL,30H
1158 0971 B4 0E MOV AH,0EH
1159 0973 8A C2 MOV AL,DL
1160 0975 CD 10 INT 10H
1161 0977 B4 02 MOV AH,02H
1162 0979 B6 12 MOV DH,18
1163 097B B2 00 MOV DL,0
1164 097D B7 00 MOV BH,00H
1165 097F CD 10 INT 10H
1166 0981 B4 02 MOV AH,02H
1167 0983 B0 20 MOV AL,20H
1168 0985 CD 21 INT 21H
1169 0987 B4 02 MOV AH,02H
1170 0989 B0 20 MOV AL,20H
1171 098B CD 21 INT 21H
1172 098D E9 FF15 JMP MAINLOOP1
1173 0990 5A STOP1: POP DX
1174 0991 59 POP CX
1175 0992 5B POP BX
1176 0993 58 POP AX
1177 0994 C3 RET
1178 0995 DELAY1 ENDP
1179 0995 RESTORE1 PROC NEAR ;复位
1180 0995 B0 20 MOV AL,20H
1181 0997 A2 01EDr MOV WE,AL
1182 099A A2 01ECr MOV NS,AL
1183 099D C3 RET
1184 099E RESTORE1 ENDP
1185 099E CFIG_NS1 PROC NEAR ;数据输入 ASC转BCD
1186 099E 50 PUSH AX
1187 099F 53 PUSH BX
1188 09A0 51 PUSH CX
1189 09A1 52 PUSH DX
1190 09A2 B4 02 MOV AH,02H
1191 09A4 B6 11 MOV DH,17
1192 09A6 B2 0A MOV DL,10
1193 09A8 B7 00 MOV BH,00H
1194 09AA CD 10 INT 10H
1195 09AC B4 09 MOV AH,09H
1196 09AE BA 006Er MOV DX,OFFSET DAT5
Turbo Assembler Version 4.1 06/01/12 16:00:27 Page 22
F:\工程文件\Fasm\TFCL.ASM
1197 09B1 CD 21 INT 21H
1198 09B3 B4 01 MOV AH,01H
1199 09B5 CD 21 INT 21H
1200 09B7 2C 30 SUB AL,30H
1201 09B9 2F DAS
1202 09BA D0 E0 D0 E0 D0 E0 D0+ SHL AL,4
1203 E0
1204 09C2 8A F8 MOV BH,AL
1205 09C4 80 E7 F0 AND BH,11110000B
1206 09C7 B4 01 MOV AH,01H
1207 09C9 CD 21 INT 21H
1208 09CB 2C 30 SUB AL,30H
1209 09CD 2F DAS
1210 09CE 8A D8 MOV BL,AL
1211 09D0 80 E3 0F AND BL,00001111B
1212 09D3 02 DF ADD BL,BH
1213 09D5 27 DAA
1214 09D6 80 3E 01F1r 00 CMP LEE,0
1215 09DB 75 07 JNZ CC11
1216 09DD 88 1E 01EDr MOV WE,BL
1217 09E1 EB 05 90 JMP DD11
1218 09E4 88 1E 01ECr CC11: MOV NS,BL
1219 09E8 5A DD11: POP DX
1220 09E9 59 POP CX
1221 09EA 5B POP BX
1222 09EB 58 POP AX
1223 09EC C3 RET
1224 09ED CFIG_NS1 ENDP
1225 09ED CFIG_WE1 PROC NEAR ;数据输入 ASC转BCD
1226 09ED 50 PUSH AX
1227 09EE 53 PUSH BX
1228 09EF 51 PUSH CX
1229 09F0 52 PUSH DX
1230 09F1 B4 02 MOV AH,02H
1231 09F3 B6 11 MOV DH,17
1232 09F5 B2 0A MOV DL,10
1233 09F7 B7 00 MOV BH,00H
1234 09F9 CD 10 INT 10H
1235 09FB B4 09 MOV AH,09H
1236 09FD BA 006Er MOV DX,OFFSET DAT5
1237 0A00 CD 21 INT 21H
1238 0A02 B4 01 MOV AH,01H
1239 0A04 CD 21 INT 21H
1240 0A06 2C 30 SUB AL,30H
1241 0A08 2F DAS
1242 0A09 D0 E0 D0 E0 D0 E0 D0+ SHL AL,4
1243 E0
1244 0A11 8A F8 MOV BH,AL
1245 0A13 80 E7 F0 AND BH,11110000B
1246 0A16 B4 01 MOV AH,01H
1247 0A18 CD 21 INT 21H
1248 0A1A 2C 30 SUB AL,30H
1249 0A1C 2F DAS
1250 0A1D 8A D8 MOV BL,AL
1251 0A1F 80 E3 0F AND BL,00001111B
1252 0A22 02 DF ADD BL,BH
1253 0A24 27 DAA
Turbo Assembler Version 4.1 06/01/12 16:00:27 Page 23
F:\工程文件\Fasm\TFCL.ASM
1254 0A25 80 3E 01F1r 00 CMP LEE,0
1255 0A2A 75 07 JNZ CC12
1256 0A2C 88 1E 01ECr MOV NS,BL
1257 0A30 EB 05 90 JMP DD12
1258 0A33 88 1E 01EDr CC12: MOV WE,BL
1259 0A37 5A DD12: POP DX
1260 0A38 59 POP CX
1261 0A39 5B POP BX
1262 0A3A 58 POP AX
1263 0A3B C3 RET
1264 0A3C CFIG_WE1 ENDP
1265 0A3C CFIG_N1 PROC NEAR
1266 0A3C 50 PUSH AX
1267 0A3D 53 PUSH BX
1268 0A3E 80 3E 01F0r 00 CMP N3,0
1269 0A43 74 03 JZ M11
1270 0A45 EB 14 90 JMP M21
1271 0A48 8A 1E 01EEr M11: MOV BL,N1
1272 0A4C 88 1E 01DAr MOV WHIT, BL
1273 0A50 A0 01F0r MOV AL,N3
1274 0A53 FE C0 INC AL
1275 0A55 A2 01F0r MOV N3,AL
1276 0A58 EB 11 90 JMP EX1
1277 0A5B 8A 1E 01EFr M21: MOV BL,N2
1278 0A5F 88 1E 01DAr MOV WHIT, BL
1279 0A63 A0 01F0r MOV AL,N3
1280 0A66 FE C8 DEC AL
1281 0A68 A2 01F0r MOV N3,AL
1282 0A6B 5B EX1: POP BX
1283 0A6C 58 POP AX
1284 0A6D C3 RET
1285 0A6E CFIG_N1 ENDP
1286 0A6E INTERRUPT1 PROC FAR ;从定时器读取时间
1287 0A6E 9C PUSHF
1288 0A6F 50 PUSH AX
1289 0A70 1E PUSH DS
1290 0A71 B8 0000s MOV AX,DATA
1291 0A74 8E D8 MOV DS,AX
1292 0A76 C6 06 01E4r 01 MOV INTFLAG,1
1293 0A7B B0 20 MOV AL,20H ;EOI
1294 0A7D E6 20 OUT 20H,AL
1295 0A7F 1F POP DS
1296 0A80 58 POP AX
1297 0A81 9D POPF
1298 0A82 CF IRET
1299 0A83 INTERRUPT1 ENDP
1300 ;****************************************************延时子程序 2
1301 0A83 DELAY2 PROC NEAR
1302 0A83 50 PUSH AX
1303 0A84 53 PUSH BX
1304 0A85 51 PUSH CX
1305 0A86 52 PUSH DX
1306 0A87 C6 06 01E4r 00 MAIN2: MOV INTFLAG,0
1307 0A8C C6 06 01E5r 12 MOV COUNT ,18
1308 0A91 A0 01EDr MOV AL,WE
1309 0A94 A2 01E6r MOV SECOND ,AL
1310 0A97 B4 35 MOV AH,35H
Turbo Assembler Version 4.1 06/01/12 16:00:27 Page 24
F:\工程文件\Fasm\TFCL.ASM
1311 0A99 B0 08 MOV AL,08H
1312 0A9B CD 21 INT 21H
1313 0A9D 89 1E 01E9r MOV OLD_OFF,BX
1314 0AA1 8C 06 01E7r MOV OLD_SEG,ES
1315 0AA5 E4 21 IN AL,21H
1316 0AA7 A2 01EBr MOV OLD_MSK,AL
1317 0AAA B4 02 MOV AH,02H
1318 0AAC B6 06 MOV DH,06
1319 0AAE B2 19 MOV DL,25
1320 0AB0 B7 00 MOV BH,00H
1321 0AB2 CD 10 INT 10H
1322 0AB4 FA CLI
1323 0AB5 1E PUSH DS
1324 0AB6 B4 25 MOV AH,25H
1325 0AB8 B0 08 MOV AL,08H
1326 0ABA BA 0000s MOV DX,SEG INTERRUPT2
1327 0ABD 8E DA MOV DS,DX
1328 0ABF BA 0C9Ar MOV DX,OFFSET INTERRUPT2
1329 0AC2 CD 21 INT 21H
1330 0AC4 1F POP DS
1331 0AC5 A0 01EBr MOV AL,OLD_MSK
1332 0AC8 24 FE AND AL,11111110B
1333 0ACA FB STI
1334 0ACB B4 0B MAINLOOP2: MOV AH,0BH ;test keyboard
1335 0ACD CD 21 INT 21H
1336 0ACF 3C 00 CMP AL,00H
1337 0AD1 74 72 JE CHK_INT2
1338 0AD3 B4 08 MOV AH,08H ;get key
1339 0AD5 CD 21 INT 21H
1340 0AD7 3C 72 CMP AL,72H
1341 0AD9 74 17 JZ RESTOR2
1342 0ADB 3C 63 CMP AL,63H
1343 0ADD 74 18 JZ CFG_NS2
1344 0ADF 3C 64 CMP AL,64H
1345 0AE1 74 19 JZ CFG_WE2
1346 0AE3 3C 65 CMP AL,65H ;'e'
1347 0AE5 74 20 JZ CFG2
1348 0AE7 3C 6E CMP AL,6EH ;'n'
1349 0AE9 74 16 JZ CFG_N2
1350 0AEB 3C 1B CMP AL,1BH ;'ESC'
1351 0AED 75 56 JNE CHK_INT2
1352 0AEF EB 2F 90 JMP QUIT2
1353 0AF2 E8 00C6 RESTOR2: CALL RESTORE2
1354 0AF5 EB 90 JMP MAIN2
1355 0AF7 E8 00CA CFG_NS2: CALL CFIG_NS2
1356 0AFA EB 8B JMP MAIN2
1357 0AFC E8 0114 CFG_WE2: CALL CFIG_WE2
1358 0AFF EB 86 JMP MAIN2
1359 0B01 E8 0164 CFG_N2: CALL CFIG_N2
1360 0B04 EB 3F 90 JMP CHK_INT2
1361 0B07 A0 01F1r CFG2: MOV AL,LEE
1362 0B0A 3C 00 CMP AL,0
1363 0B0C 74 08 JZ LEE2
1364 0B0E C6 06 01F1r 00 MOV LEE,0
1365 0B13 EB 06 90 JMP RET21
1366 0B16 C6 06 01F1r 01 LEE2: MOV LEE,1
1367 0B1B EB 4F 90 RET21: JMP RET22
Turbo Assembler Version 4.1 06/01/12 16:00:27 Page 25
F:\工程文件\Fasm\TFCL.ASM
1368 0B1E EB AB MAINLOOP22: JMP MAINLOOP2
1369 0B20 FA QUIT2: CLI
1370 0B21 1E PUSH DS
1371 0B22 06 PUSH ES
1372 0B23 8C D8 MOV AX,DS
1373 0B25 8E C0 MOV ES,AX
1374 0B27 B4 25 MOV AH,25H
1375 0B29 B0 08 MOV AL,08H
1376 0B2B 26: 8B 16 01E7r MOV DX,ES:OLD_SEG
1377 0B30 8E DA MOV DS,DX
1378 0B32 26: 8B 16 01E9r MOV DX,ES:OLD_OFF
1379 0B37 CD 21 INT 21H
1380 0B39 07 POP ES
1381 0B3A 1F POP DS
1382 0B3B A0 01EBr MOV AL,OLD_MSK
1383 0B3E E6 21 OUT 21H,AL
1384 0B40 FB STI
1385 0B41 B4 4C MOV AH,4CH ;exit
1386 0B43 CD 21 INT 21H
1387 0B45 80 3E 01E4r 00 CHK_INT2: CMP INTFLAG,0
1388 0B4A 74 D2 JE MAINLOOP22
1389 0B4C C6 06 01E4r 00 MOV INTFLAG,0
1390 0B51 FE 0E 01E5r DEC COUNT
1391 0B55 75 C7 JNE MAINLOOP22
1392 0B57 C6 06 01E5r 12 MOV COUNT,18
1393 0B5C A0 01E6r MOV AL,SECOND
1394 0B5F FE C8 DEC AL
1395
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -