⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basic-52.lst

📁 一个用PROTEUS搭建的51单片机的基本运行系统
💻 LST
📖 第 1 页 / 共 5 页
字号:
  293:					;
  294:					; Now floating point and the other temps
  295:					;
  296:					; FP Uses to locations 03CH
  297:					;
  298:					; Now the stack designators.
  299:					;
  300:		N      003E	SPSAV	EQU	3EH
  301:		N      003F	S_LEN	EQU	3FH
  302:		N      0040	T_HH	EQU	40H
  303:		N      0041	T_LL	EQU	41H
  304:		N      0042	INTXAH	EQU	42H
  305:		N      0043	INTXAL	EQU	43H
  306:		N      0045	MT1	EQU	45H
  307:		N      0046	MT2	EQU	46H
  308:		N      0047	MILLIV	EQU	47H		;TIMER LOCATIONS
  309:		N      0048	TVH	EQU	48H
  310:		N      0049	TVL	EQU	49H
  311:		N      004A	SAVE_T	EQU	4AH
  312:		N      004B	SP_H	EQU	4BH		;SERIAL PORT TIME OUT
  313:		N      004C	SP_L	EQU	4CH
  314:		N      004D	CMNDSP	EQU	4DH		;SYSTEM STACK POINTER
  315:		N      00FF	IRAMTOP	EQU	0FFH		;TOP OF RAM
  316:		N      00FE	STACKTP	EQU	0FEH		;ARG AND CONTROL STACK TOPS
  317:					;
  318:					; The character equates
  319:					;
  320:		N      000D	CR	EQU	0DH		;CARRIAGE RETURN
  321:		N      000A	LF	EQU	0AH		;LINE FEED
  322:		N      0007	BELL	EQU	07H		;BELL CHARACTER
  323:		N      0008	BS	EQU	08H		;BACK SPACE
  324:		N      0003	CNTRLC	EQU	03H		;CONTROL C
  325:		N      0004	CNTRLD	EQU	04H		;CONTROL D
  326:		N      0000	NULL	EQU	00H		;NULL
  327:					;
  328:				$EJECT

ASEM-51 V1.2                                        Copyright (c) 1996 by W.W. Heinz                                         PAGE 10



 Line  I  Addr  Code            Source

  329:					;
  330:					; The internal system equates
  331:					;
  332:		N      0049	LINLEN	EQU	73		;THE LENGTH OF AN INPUT LINE
  333:		N      0001	EOF	EQU	01		;END OF FILE CHARACTER
  334:		N      0001	ASTKAH	EQU	01		;ASTKA IS IN PAGE 1 OF RAM
  335:		N      0000	CSTKAH	EQU	00		;CSTKA IS IN PAGE 0 OF RAM
  336:		N      0001	FTYPE	EQU	01		;CONTROL STACK "FOR"
  337:		N      0002	GTYPE	EQU	02		;CONTROL STACK "GOSUB"
  338:		N      0003	DTYPE	EQU	03		;DO-WHILE/UNTIL TYPE
  339:		N      8000	ROMADR	EQU	8000H		;LOCATION OF ROM
  340:					;
  341:					; The floating point equates
  342:					;
  343:		N      0006	FPSIZ	EQU	6		;NO. OF BYTES IN A FLOATING NUM
  344:		N      0004	DIGIT	EQU	FPSIZ-2		;THE MANTISSA OF A FLOATING NUM
  345:		N      0009	STESIZ	EQU	FPSIZ+3		;SIZE OF SYMBOL ADJUSTED TABLE ELEMENT
  346:		N      1993	FP_BASE	EQU	1993H		;BASE OF FLOATING POINT ROUTINES
  347:		N      0200	PSTART	EQU	512		;START OF A PROGRAM IN RAM
  348:		N      0011	FSIZE	EQU	FPSIZ+FPSIZ+2+2+1
  349:					;
  350:				$EJECT

ASEM-51 V1.2                                        Copyright (c) 1996 by W.W. Heinz                                         PAGE 11



 Line  I  Addr  Code            Source

  351:					;**************************************************************
  352:					;
  353:	  0047			USENT:	; User entry jump table
  354:					;
  355:					;**************************************************************
  356:					;
  357:	  0047	17 85			DW	CMND1		;(00, 00H)COMMAND MODE JUMP
  358:	  0049	12 15			DW	IFIX		;(01, 01H)CONVERT FP TO INT
  359:	  004B	0F E6			DW	PUSHAS		;(02, 02H)PUSH VALUE ONTO ARG STACK
  360:	  004D	0F DC			DW	POPAS		;(03, 03H)POP VALUE OFF ARG STACK
  361:	  004F	04 95			DW	PG1		;(04, 04H)PROGRAM A PROM
  362:	  0051	06 D0			DW	INLINE		;(05, 05H)INPUT A LINE
  363:	  0053	06 B7			DW	UPRNT		;(06, 06H)PRINT A LINR
  364:	  0055	06 9D			DW	CRLF		;(07, 07H)OUTPUT A CRLF
  365:					;
  366:					;**************************************************************
  367:					;
  368:					; This is the operation jump table for arithmetics
  369:					;
  370:					;**************************************************************
  371:					;
  372:	  0057	13 9E		OPTAB:	DW	ALPAR		;(08, 08H)LEFT PAREN
  373:	  0059	13 1D			DW	AEXP		;(09, 09H)EXPONENTAION
  374:	  005B	11 A2			DW	AMUL		;(10, 0AH)FP MUL
  375:	  005D	17 3F			DW	AADD		;(11, 0BH)FLOATING POINT ADD
  376:	  005F	13 FC			DW	ADIV		;(12, 0CH)FLOATING POINT DIVIDE
  377:	  0061	17 1A			DW	ASUB		;(13, 0DH)FLOATING POINT SUBTRACTION
  378:	  0063	14 8A			DW	AXRL		;(14, 0EH)XOR
  379:	  0065	14 76			DW	AANL		;(15, 0FH)AND
  380:	  0067	14 7F			DW	AORL		;(16, 10H)OR
  381:	  0069	13 93			DW	ANEG		;(17, 11H)NEGATE
  382:	  006B	13 CD			DW	AEQ		;(18, 12H)EQUAL
  383:	  006D	13 D9			DW	AGE		;(19, 13H)GREATER THAN OR EQUAL
  384:	  006F	13 DD			DW	ALE		;(20, 14H)LESS THAN OR EQUAL
  385:	  0071	13 D3			DW	ANE		;(21, 15H)NOT EQUAL
  386:	  0073	13 C8			DW	ALT		;(22, 16H)LESS THAN
  387:	  0075	13 B7			DW	AGT		;(23, 17H)GREATER THAN
  388:					;
  389:				$EJECT

ASEM-51 V1.2                                        Copyright (c) 1996 by W.W. Heinz                                         PAGE 12



 Line  I  Addr  Code            Source

  390:					;***************************************************************
  391:					;
  392:					; This is the jump table for unary operators
  393:					;
  394:					;***************************************************************
  395:					;
  396:	  0077	13 81			DW	AABS		;(24, 18H)ABSOLUTE VALUE
  397:	  0079	13 5F			DW	AINT		;(25, 19H)INTEGER OPERATOR
  398:	  007B	13 87			DW	ASGN		;(26, 1AH)SIGN OPERATOR
  399:	  007D	14 88			DW	ANOT		;(27, 1BH)ONE'S COMPLEMENT
  400:	  007F	11 5F			DW	ACOS		;(28, 1CH)COSINE
  401:	  0081	11 C2			DW	ATAN		;(29, 1DH)TANGENT
  402:	  0083	11 63			DW	ASIN		;(30, 1EH)SINE
  403:	  0085	12 7F			DW	ASQR		;(31, 1FH)SQUARE ROOT
  404:	  0087	13 9F			DW	ACBYTE		;(32, 20H)READ CODE
  405:	  0089	13 19			DW	AETOX		;(33, 21H)E TO THE X
  406:	  008B	11 D2			DW	AATAN		;(34, 22H)ARC TANGENT
  407:	  008D	12 B2			DW	ALN		;(35, 23H)NATURAL LOG
  408:	  008F	13 A8			DW	ADBYTE		;(36, 24H)READ DATA MEMORY
  409:	  0091	13 B0			DW	AXBYTE		;(37, 25H)READ EXTERNAL MEMORY
  410:	  0093	14 71			DW	PIPI		;(38, 26H)PI
  411:	  0095	13 E3			DW	ARND		;(39, 27H)RANDOM NUMBER
  412:	  0097	14 9B			DW	AGET		;(40, 28H)GET INPUT CHARACTER
  413:	  0099	17 0F			DW	AFREE		;(41, 29H)COMPUTE #BYTES FREE
  414:	  009B	17 1F			DW	ALEN		;(42, 2AH) COMPUTE LEN OF PORGRAM
  415:	  009D	0F E2			DW	AXTAL		;(43, 2BH) CRYSTAL
  416:	  009F	16 41			DW	PMTOP		;(44, 2CH)TOP OF MEMORY
  417:	  00A1	17 27			DW	ATIME		;(45, 2DH) TIME
  418:	  00A3	14 AB			DW	A_IE		;(46, 2EH) IE
  419:	  00A5	14 AF			DW	A_IP		;(47, 2FH) IP
  420:	  00A7	14 B3			DW	ATIM0		;(48, 30H) TIMER 0
  421:	  00A9	14 B9			DW	ATIM1		;(49, 31H) TIMER 1
  422:	  00AB	14 BF			DW	ATIM2		;(50, 32H) TIMER 2
  423:	  00AD	14 C5			DW	AT2CON		;(51, 33H) T2CON
  424:	  00AF	14 C9			DW	ATCON		;(52, 34H) TCON
  425:	  00B1	14 CD			DW	ATMOD		;(53, 35H) ATMOD
  426:	  00B3	14 D1			DW	ARCAP2		;(54, 36H) RCAP2
  427:	  00B5	14 D7			DW	AP1		;(55, 37H) P1
  428:	  00B7	14 DB			DW	APCON		;(56, 38H) PCON
  429:	  00B9	0F 4C			DW	EXPRB		;(57, 39H) EVALUATE AN EXPRESSION
  430:	  00BB	16 4E			DW	AXTAL1		;(58, 3AH) CALCULATE CRYSTAL
  431:	  00BD	14 E2			DW	LINE		;(59, 3BH) EDIT A LINE
  432:	  00BF	15 AC			DW	PP		;(60, 3CH) PROCESS A LINE
  433:	  00C1	10 8C			DW	UPPL-3		;(61, 3DH) UNPROCESS A LINE
  434:	  00C3	0D 6E			DW	VAR		;(62, 3EH) FIND A VARIABLE
  435:	  00C5	0E D6			DW	GC		;(63, 3FH) GET A CHARACTER
  436:	  00C7	0E DE			DW	GCI		;(64, 40H) GET CHARACTER AND INCREMENT
  437:	  00C9	07 89			DW	INCHAR		;(65, 41H) INPUT A CHARACTER
  438:	  00CB	08 06			DW	CRUN		;(66, 42H) RUN A PROGRAM
  439:				$EJECT

ASEM-51 V1.2                                        Copyright (c) 1996 by W.W. Heinz                                         PAGE 13



 Line  I  Addr  Code            Source

  440:	  00CD	01		OPBOL:	DB	1		;
  441:					;
  442:	  00CE	0F			DB	15		;LEFT PAREN
  443:	  00CF	0E			DB	14		;EXPONENTIAN **
  444:	  00D0	0A			DB	10		;MUL
  445:	  00D1	08			DB	8		;ADD
  446:	  00D2	0A			DB	10		;DIVIDE
  447:	  00D3	08			DB	8		;SUB
  448:	  00D4	03			DB	3		;XOR
  449:	  00D5	05			DB	5		;AND
  450:	  00D6	04			DB	4		;OR
  451:	  00D7	0C			DB	12		;NEGATE
  452:	  00D8	06			DB	6		;EQ
  453:	  00D9	06			DB	6		;GT
  454:	  00DA	06			DB	6		;LT
  455:	  00DB	06			DB	6		;NE
  456:	  00DC	06			DB	6		;LE
  457:	  00DD	06			DB	6		;GE
  458:					;
  459:	  00DE	0F		UOPBOL:	DB	15		;AABS
  460:	  00DF	0F			DB	15		;AAINT
  461:	  00E0	0F			DB	15		;ASGN
  462:	  00E1	0F			DB	15		;ANOT
  463:	  00E2	0F			DB	15		;ACOS
  464:	  00E3	0F			DB	15		;ATAN
  465:	  00E4	0F			DB	15		;ASIN
  466:	  00E5	0F			DB	15		;ASQR
  467:	  00E6	0F			DB	15		;ACBYTE
  468:	  00E7	0F			DB	15		;E TO THE X
  469:	  00E8	0F			DB	15		;AATAN
  470:	  00E9	0F			DB	15		;NATURAL LOG
  471:	  00EA	0F			DB	15		;DBYTE
  472:	  00EB	0F			DB	15		;XBYTE
  473:					;
  474:				$EJECT

ASEM-51 V1.2                                        Copyright (c) 1996 by W.W. Heinz                                         PAGE 14



 Line  I  Addr  Code            Source

  475:					;***************************************************************
  476:					;
  477:					; The ASCII printed messages.
  478:					;
  479:					;***************************************************************
  480:					;
  481:	  00EC	53 54 4F 50	STP:	DB	'STOP"'
	  00F0	22
  482:					;
  483:	  00F1	54 52 59 20	IAN:	DB	'TRY AGAIN"'
	  00F5	41 47 41 49
	  00F9	4E 22
  484:					;
  485:	  00FB	52 45 41 44	RDYS:	DB	'READY"'
	  00FF	59 22
  486:					;
  487:	  0101	20 2D 20 49	INS:	DB	' - IN LINE "'
	  0105	4E 20 4C 49
	  0109	4E 45 20 22
  488:					;
  489:					;**************************************************************
  490:					;
  491:					; This is the command jump table
  492:					;
  493:					;**************************************************************
  494:					;
  495:	  010D	08 06		CMNDD:	DW	CRUN		;RUN
  496:	  010F	10 3A			DW	CLIST		;LIST
  497:	  0111	0B 10			DW	CNULL		;NULL
  498:	  0113	06 54			DW	CNEW		;NEW
  499:	  0115	18 3F			DW	CCONT		;CONTINUE
  500:	  0117	04 61			DW	CPROG		;PROGRAM A PROM
  501:	  0119	17 71			DW	CXFER		;TRANSFER FROM ROM TO RAM
  502:	  011B	17 7D			DW	CRAM		;RAM MODE
  503:	  011D	05 36			DW	CROM		;ROM MODE
  504:	  011F	04 5A			DW	CIPROG		;INTELLIGENT PROM PROGRAMMING
  505:					;
  506:				$EJECT

ASEM-51 V1.2                                        Copyright (c) 1996 by W.W. Heinz                                         PAGE 15



 Line  I  Addr  Code            Source

  507:					;***************************************************************
  508:					;
  509:					; This is the statement jump table.
  510:					;
  511:					;**************************************************************
  512:					;
  513:	  0121			STATD:	;
  514:	  0121	09 76			DW	SLET		;LET		80H
  515:	  0123	06 87			DW	SCLR		;CLEAR		81H
  516:	  0125	0A 7E			DW	SPUSH		;PUSH VAR	82H
  517:	  0127	0A B2			DW	SGOTO		;GO TO		83H
  518:	  0129	16 84			DW	STONE		;TONE		84H
  519:	  012B	0C 31			DW	SPH0		;PRINT MODE 0	85H
  520:	  012D	19 2C			DW	SUI		;USER INPUT	86H
  521:	  012F	19 31			DW	SUO		;USER OUTPUT	87H
  522:	  0131	0A 85			DW	SPOP		;POP VAR	88H
  523:	  0133	0C 35			DW	SPRINT		;PRINT		89H
  524:	  0135	0E 6C			DW	SCALL		;CALL		8AH
  525:	  0137	0D 6A			DW	SDIMX		;DIMENSION	8BH
  526:	  0139	06 04			DW	STRING		;STRING ALLO	8CH
  527:	  013B	16 F7			DW	SBAUD		;SET BAUD	8DH
  528:	  013D	19 19			DW	SCLOCK		;CLOCK		8EH
  529:	  013F	0C 33			DW	SPH1		;PRINT MODE 1   8FH
  530:					;
  531:					; No direct mode from here on
  532:					;
  533:	  0141	08 5C			DW	SSTOP		;STOP		90H
  534:	  0143	0E 5F			DW	SOT		;ON TIME	91H
  535:	  0145	14 0B			DW	SONEXT		;ON EXT INT	92H
  536:	  0147	0B 16			DW	SRETI		;RET FROM INT	93H
  537:	  0149	0F 0E			DW	S_DO		;DO		94H
  538:	  014B	0B D6			DW	SRESTR		;RESTOR		95H
  539:	  014D	0F 05			DW	WCR		;REM		96H
  540:	  014F	0B 67			DW	SNEXT		;NEXT		97H
  541:	  0151	14 01			DW	SONERR		;ON ERROR	98H
  542:	  0153	0C F4			DW	S_ON		;ON		99H
  543:	  0155	0D FE			DW	SINPUT		;INPUT		9AH
  544:	  0157	0B EB			DW	SREAD		;READ		9BH
  545:	  0159	0E F5			DW	FINDCR		;DATA		9CH
  546:	  015B	0B 18			DW	SRETRN		;RETURN		9DH
  547:	  015D	0A 8E			DW	SIF		;IF		9EH
  548:	  015F	0B 35			DW	SGOSUB		;GOSUB		9FH
  549:	  0161	0A 44			DW	SFOR		;FOR		A0H
  550:	  0163	0B 04			DW	SWHILE		;WHILE		A1H
  551:	  0165	0B 09			DW	SUNTIL		;UNTIL		A2H
  552:	  0167	17 85			DW	CMND1		;END		A3H
  553:	  0169	18 5C			DW	I_DL		;IDLE		A4H
  554:	  016B	0F EE			DW	ST_A		;STORE AT	A5H
  555:	  016D	0F F2			DW	LD_A		;LOAD AT	A6H
  556:	  016F	05 0C			DW	PGU		;PGM		A7H
  557:	  0171	07 BC			DW	RROM		;RUN A ROM	A9H
  558:					;
  559:				$EJECT

ASEM-51 V1.2                                        Copyright (c) 1996 by W.W. Heinz                                         PAGE 16



 Line  I  Addr  Code            Source

  560:					;**************************************************************
  561:					;
  562:	  0173			TOKTAB:	; This is the basic token table
  563:					;
  564:					;**************************************************************
  565:					;
  566:					; First the tokens for statements
  567:					;
  568:	  0173	80			DB	80H		;LET TOKEN
  569:	  0174	4C 45 54		DB	'LET'
  570:					;
  571:	  0177	81			DB	81H		;CLEAR TOKEN
  572:	  0178	43 4C 45 41		DB	'CLEAR'
	  017C	52
  573:					;
  574:	  017D	82			DB	82H		;PUSH TOKEN
  575:	  017E	50 55 53 48		DB	'PUSH'
  576:					;
  577:		N      0083	T_GOTO	EQU	83H
  578:					;
  579:	  0182	83			DB	83H		;GO TO TOKEN
  580:	  0183	47 4F 54 4F		DB	'GOTO'
  581:					;
  582:	  0187	84			DB	84H		;TOGGLE TOKEN
  583:	  0188	50 57 4D		DB	'PWM'
  584:					;
  585:	  018B	85			DB	85H		;PRINT HEX MODE 0
  586:	  018C	50 48 30 2E		DB	'PH0.'
  587:					;
  588:	  0190	86			DB	86H		;USER IN TOKEN
  589:	  0191	55 49			DB	'UI'
  590:					;
  591:	  0193	87			DB	87H		;USER OUT TOKEN
  592:	  0194	55 4F			DB	'UO'
  593:					;
  594:	  0196	88			DB	88H		;POP TOKEN
  595:	  0197	50 4F 50		DB	'POP'
  596:					;
  597:				$EJECT

ASEM-51 V1.2                                        Copyright (c) 1996 by W.W. Heinz                                         PAGE 17



 Line  I  Addr  Code            Source

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -