📄 conio.lst
字号:
514 00f5 8be9 MAR *0+,AR1
515 00f6 83a0 SAR AR3,*+
516 00f7 7a80 CALL _getline
00f8 013d'
517 00f9 7c02 SBRK 2
518 *** 152 ----------------------- val = buf[0] ? atol_F240(&buf) : deflt;
519 .line 21
520 ;>>>> if (buf[0] == 0)
521 ;>>>> val = deflt;
522 ;>>>> else
523 00fa 8b8a MAR * ,AR2
524 00fb b203 LARK AR2,3
525 00fc 8be0 MAR *0+
526 00fd 1080 LAC *
527 00fe e388 BZ LL8
00ff 0109'
528 0100 8b8b MAR * ,AR3
529 0101 b303 LARK AR3,3
530 0102 8be9 MAR *0+,AR1
531 0103 83a0 SAR AR3,*+
532 0104 7a80 CALL _atol_F240
0105 01bc'
533 0106 8b90 MAR *-
534 0107 7980 B LL9
0108 010c'
535 0109 LL8:
536 0109 7c08 SBRK 8-LF6
537 010a 69a0 ZALS *+
538 010b 6180 ADDH *
539 010c LL9:
540 010c 8b8a MAR * ,AR2
541 010d b201 LARK AR2,1
542 010e 8be0 MAR *0+
543 010f 90a0 SACL *+
544 0110 9880 SACH *
545 *** 155 ----------------------- if ( val < lowlimit || val > highlimit ) goto g2;
TMS320C1x/C2x/C2xx/C5x COFF Assembler Beta Version 6.63 Sat Jan 10 00:36:46 1998
Copyright (c) 1987-1996 Texas Instruments Incorporated
conio.asm PAGE 12
546 .line 24
547 ;>>>> val = atol_F240(buf);
548 ;>>>> } while (val<lowlimit || val>highlimit);
549 0111 e302 BNV $+2
0112 0113'
550 0113 8b90 MAR *-
551 0114 69a0 ZALS *+
552 0115 6180 ADDH *
553 0116 7c09 SBRK 9-LF6
554 0117 66a0 SUBS *+
555 0118 6589 SUBH * ,AR1
556 0119 e302 BNV $+6
011a 011f'
557 011b e304 BGZ L12
011c 0094'
558 011d 7980 B $+4
011e 0121'
559 011f e344 BLZ L12
0120 0094'
560 0121 e302 BNV $+2
0122 0123'
561 0123 8b8a MAR * ,AR2
562 0124 7807 ADRK 7-LF6
563 0125 69a0 ZALS *+
564 0126 6180 ADDH *
565 0127 7c0b SBRK 11-LF6
566 0128 66a0 SUBS *+
567 0129 6589 SUBH * ,AR1
568 012a e302 BNV $+6
012b 0130'
569 012c e344 BLZ L12
012d 0094'
570 012e 7980 B $+4
012f 0132'
571 0130 e304 BGZ L12
0131 0094'
572 *** 157 ----------------------- return val;
573 .line 26
574 ;>>>> return val;
575 0132 8b8a MAR * ,AR2
576 0133 7809 ADRK 9-LF6
577 0134 69a0 ZALS *+
578 0135 6180 ADDH *
579 0136 EPI0_6:
580 .line 27
581 0136 8b89 MAR * ,AR1
582 ; <restore register vars>
583 0137 8b90 MAR *-
584 0138 0680 LAR AR6,*
585 0139 7c0e SBRK 14
586 013a 0090 LAR AR0,*-
587 013b 7680 PSHD *
588 013c ef00 RET
589
TMS320C1x/C2x/C2xx/C5x COFF Assembler Beta Version 6.63 Sat Jan 10 00:36:46 1998
Copyright (c) 1987-1996 Texas Instruments Incorporated
conio.asm PAGE 13
590 .endfunc 158,000000040H,13
591
592 .sym _getline,_getline,36,2,0
593 .globl _getline
594
595 .func 164
596 ;>>>> int getline(char *x, int maxlen)
597 ******************************************************
598 * FUNCTION DEF : _getline
599 ******************************************************
600 013d _getline:
601
602 0000 LF7 .set 0
603
604 013d 8aa0 POPD *+
605 013e 80a0 SAR AR0,*+
606 013f 8180 SAR AR1,*
607 0140 b004 LARK AR0,4
608 0141 00e0 LAR AR0,*0+
609 ; <save register vars>
610 0142 86a0 SAR AR6,*+
611 0143 87ae SAR AR7,*+,AR6
612 0144 b601 LARK AR6,1
613 0145 b703 LARK AR7,3
614 0146 8bef MAR *0+,AR7
615 0147 8bea MAR *0+,AR2
616
617 .sym _x,-3+LF7,20,9,16
618 .sym _maxlen,-4+LF7,4,9,16
619 .sym _x,1,20,1,16
620 .sym _pos,2,4,1,16
621 .sym _c,3,4,1,16
622 .line 2
623 ;>>>> int c;
624 0148 bf0a LARK AR2,-3+LF7
0149 fffd
625 014a 8be0 MAR *0+
626 014b 108e LAC * ,AR6
627 014c 908a SACL * ,AR2
628 *** 167 ----------------------- pos = 0;
629 .line 4
630 ;>>>> int pos = 0;
631 ;>>>> do
632 014d b900 LACK 0
633 014e 7805 ADRK 5-LF7
634 014f 9089 SACL * ,AR1
635 0150 L14:
636 *** -----------------------g2:
637 *** 171 ----------------------- if ( (c = getch()) != 8 ) goto g5;
638 .line 8
639 ;>>>> c = getch();
640 ;>>>> if (c == '\b')
641 0150 7a89 CALL _getch,AR1
0151 0000'
TMS320C1x/C2x/C2xx/C5x COFF Assembler Beta Version 6.63 Sat Jan 10 00:36:46 1998
Copyright (c) 1987-1996 Texas Instruments Incorporated
conio.asm PAGE 14
642 0152 8b8f MAR * ,AR7
643 0153 9080 SACL *
644 0154 ba08 SUBK 8
645 0155 e308 BNZ L17
0156 0160'
646 *** 175 ----------------------- if ( pos <= 0 ) goto g10;
647 .line 12
648 ;>>>> if (pos > 0)
649 0157 be47 SSXM
650 0158 8b8a MAR * ,AR2
651 0159 b202 LARK AR2,2
652 015a 8be0 MAR *0+
653 015b 1080 LAC *
654 015c e3cc BLEZ L22
015d 01a0'
655 *** 176 ----------------------- --pos;
656 .line 13
657 ;>>>> pos--;
658 ;>>>> else
659 ;>>>> c = '\a'; /* bell */
660 015e ba01 SUBK 1
661 015f 9080 SACL *
662 0160 L17:
663 *** -----------------------g5:
664 *** 181 ----------------------- if ( c != 13 ) goto g7;
665 .line 18
666 ;>>>> if (c == '\r')
667 0160 8b8f MAR * ,AR7
668 0161 1089 LAC * ,AR1
669 0162 9080 SACL *
670 0163 1080 LAC *
671 0164 ba0d SUBK 13
672 0165 e308 BNZ L19
0166 0173'
673 *** 182 ----------------------- x[pos] = 0;
674 .line 19
675 ;>>>> x[pos++] = 0;
676 0167 8b8e MAR * ,AR6
677 0168 108a LAC * ,AR2
678 0169 b202 LARK AR2,2
679 016a 8be0 MAR *0+
680 016b 2088 ADD * ,AR0
681 016c 9080 SACL *
682 016d 038b LAR AR3,* ,AR3
683 016e b900 LACK 0
684 016f 908a SACL * ,AR2
685 *** 182 ----------------------- ++pos;
686 0170 1080 LAC *
687 0171 b801 ADDK 1
688 0172 9080 SACL *
689 0173 L19:
690 *** -----------------------g7:
691 *** 184 ----------------------- if ( c == 13 || c == 8 || c == 7 ) goto g11;
692 .line 21
TMS320C1x/C2x/C2xx/C5x COFF Assembler Beta Version 6.63 Sat Jan 10 00:36:46 1998
Copyright (c) 1987-1996 Texas Instruments Incorporated
conio.asm PAGE 15
693 ;>>>> if (c != '\r' && c != '\b' && c != '\a')
694 0173 8b8f MAR * ,AR7
695 0174 1089 LAC * ,AR1
696 0175 9080 SACL *
697 0176 1080 LAC *
698 0177 ba0d SUBK 13
699 0178 e388 BZ L23
0179 01a3'
700 017a 8b8f MAR * ,AR7
701 017b 1089 LAC * ,AR1
702 017c 9080 SACL *
703 017d 1080 LAC *
704 017e ba08 SUBK 8
705 017f e388 BZ L23
0180 01a3'
706 0181 8b8f MAR * ,AR7
707 0182 1089 LAC * ,AR1
708 0183 9080 SACL *
709 0184 1080 LAC *
710 0185 ba07 SUBK 7
711 0186 e388 BZ L23
0187 01a3'
712 *** 186 ----------------------- if ( pos-maxlen == (-1) ) goto g10;
713 .line 23
714 ;>>>> if (pos == maxlen-1)
715 ;>>>> c = '\a';
716 ;>>>> else
717 0188 be47 SSXM
718 0189 8b8a MAR * ,AR2
719 018a b202 LARK AR2,2
720 018b 8be0 MAR *0+
721 018c 1080 LAC *
722 018d 7c06 SBRK 6-LF7
723 018e 3080 SUB *
724 018f bfa0 SUBK -1
0190 ffff
725 0191 e388 BZ L22
0192 01a0'
726 *** 189 ----------------------- x[pos] = c;
727 .line 26
728 ;>>>> x[pos++] = c;
729 0193 8b8e MAR * ,AR6
730 0194 108a LAC * ,AR2
731 0195 7806 ADRK 6-LF7
732 0196 2088 ADD * ,AR0
733 0197 9080 SACL *
734 0198 038f LAR AR3,* ,AR7
735 0199 108b LAC * ,AR3
736 019a 908a SACL * ,AR2
737 *** 189 ----------------------- ++pos;
738 019b 1080 LAC *
739 019c b801 ADDK 1
740 019d 9080 SACL *
741 *** 189 ----------------------- goto g11;
TMS320C1x/C2x/C2xx/C5x COFF Assembler Beta Version 6.63 Sat Jan 10 00:36:46 1998
Copyright (c) 1987-1996 Texas Instruments Incorporated
conio.asm PAGE 16
742 019e 7980 B L23
019f 01a3'
743 01a0 L22:
744 *** -----------------------g10:
745 *** 187 ----------------------- c = 7;
746 .line 24
747 01a0 b907 LACK 7
748 01a1 8b8f MAR * ,AR7
749 01a2 9080 SACL *
750 01a3 L23:
751 *** -----------------------g11:
752 *** 192 ----------------------- putch(c);
753 .line 29
754 ;>>>> putch(c);
755 01a3 8b8f MAR * ,AR7
756 01a4 1089 LAC * ,AR1
757 01a5 90a0 SACL *+
758 01a6 7a80 CALL _putch
01a7 0018'
759 01a8 8b9f MAR *-,AR7
760 *** 193 ----------------------- if ( c != 13 ) goto g2;
761 .line 30
762 ;>>>> } while (c != '\r');
763 01a9 1089 LAC * ,AR1
764 01aa 9080 SACL *
765 01ab 1080 LAC *
766 01ac ba0d SUBK 13
767 01ad e308 BNZ L14
01ae 0150'
768 *** 195 ----------------------- return pos;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -