📄 main.lst
字号:
745 000017 nop
746 000017 b0mov a,val
747 000017 sub a,#( sm - 1 )
748 000017 jnc $+3
749 000017 mov a,#sm
750 000017 b0mov val,a
751 000017 endif
752 000017 endm
753 000017 //====================================================
754 000017 // clr_ramX ;clear ram from #00 to max address(bank0,bank1)
755 000017 //note: y,z,c may be changed.
756 000017 //====================================================
757 000017 clr_ram0 expand adr
758 000017 clr y // set ram bank0
759 000017 b0mov z,#(adr) // use indirect addressing index pointer (@yz)
760 000017 // set pointer = 0x00xx
761 000017 clr @yz
762 000017 decms z // z = z -1
763 000017 jmp $-2 // skip if z = 0
764 000017 clr @yz
765 000017 endm
766 000017 //====================================================
767 000017 clr_ram1 expand adr
768 000017 b0mov y,#1 // set ram bank1
769 000017 b0mov z,#(adr) // use indirect addressing index pointer (@yz)
770 000017 // set pointer = 0x00xx
771 000017 clr @yz
772 000017 decms z // z = z -1
773 000017 jmp $-2 // skip if z = 0
774 000017 clr @yz
775 000017 endm
776 000017 //====================================================
777 000017 sleep expand
778 000017 b0bset fcpum0
779 000017 endm
780 000017 //====================================================
781 000017 // circularly shift val
782 000017 //note: 1. c will be changed.
783 000017 // 2. must includestd macro1.h
784 000017 //====================================================
785 000017 rrcmn expand mem,val
786 000017 repeat val
787 000017 rrcm mem
788 000017 endm
789 000017 endm
790 000017 //====================================================
791 000017 rlcmn expand mem,val
792 000017 repeat val
793 000017 rlcm mem
794 000017 endm
795 000017 endm
796 000017 //====================================================
797 000017 shln expand mem,val
798 000017 repeat val
799 000017 shl mem
800 000017 endm
801 000017 endm
802 000017 //====================================================
803 000017 shrn expand mem,val
804 000017 repeat val
805 000017 shr mem
806 000017 endm
807 000017 endm
808 000017 //====================================================
809 000017 roln expand mem,val
810 000017 repeat val
811 000017 rol mem
812 000017 endm
813 000017 endm
814 000017 //====================================================
815 000017 rorn expand mem,val
816 000017 repeat val
817 000017 ror mem
818 000017 endm
819 000017 endm
820 000017 //====================================================
821 000017 notb expand f
822 000017 b0bts1 f
823 000017 jmp $+3
824 000017 b0bclr f
825 000017 jmp $+2
826 000017 b0bset f
827 000017 endm
828 000017 //====================================================
829 000017 // add_de, adc_de, adcm_de, addm_de ;algorism addition
830 000017 //====================================================
831 000017 add_de expand acc,v1
832 000017 add acc,v1
833 000017 daa
834 000017 endm
835 000017 //====================================================
836 000017 adc_de expand acc,v1
837 000017 adc acc,v1
838 000017 daa
839 000017 endm
840 000017 //====================================================
841 000017 adcm_de expand v1,v2
842 000017 b0mov a,v2
843 000017 adc a,v1
844 000017 daa
845 000017 b0mov v1,a
846 000017 endm
847 000017 //====================================================
848 000017 addm_de expand v1,v2
849 000017 b0mov a,v2
850 000017 add a,v1
851 000017 daa
852 000017 b0mov v1,a
853 000017 endm
854 000017 //====================================================
855 000017 // subm_de, sbcm_de ;algorism subtration
856 000017 //====================================================
857 000017 Subm_de expand v1,v2
858 000017 mov a,#99h
859 000017 sub a,v2
860 000017 adc a,v1
861 000017 daa
862 000017 b0mov v1,a
863 000017 endm
864 000017 //====================================================
865 000017 Sbcm_de expand v1,v2
866 000017 mov a,#99h
867 000017 sbc a,v2
868 000017 adc a,v1
869 000017 daa
870 000017 b0mov v1,a
871 000017 endm
872 000017 //====================================================
873 000017 Xchgupcycle_ expand adr, list:vararg
874 000017 @s_temp1=adr
875 000017 for ls, <list>
876 000017 xch a, ls
877 000017 xch a, @s_temp1
878 000017 @s_temp1 = @s_temp1 + 1
879 000017 endm
880 000017 xch a,@s_temp1
881 000017 endm
882 000017 //====================================================
883 000017 //must use serial ram byte,can economize ram byte
884 000017 Downbyte_cycle expand adr,list:vararg
885 000017 @s_temp1 = adr
886 000017 for ls, <list>
887 000017 xch a,@s_temp1
888 000017 @s_temp1 = @s_temp1 + 1
889 000017 endm
890 000017 xch a,@s_temp1
891 000017 xch a,adr
892 000017 endm
893 000017 //ex: downbyte_cycle wk0,wk1,wk2,...,wkn
894 000017 // (wkn are serial ram byte)
895 000017 //result:wkn,wk0,wk1,...wk(n-1)
896 000017 //====================================================
897 000017 //must use serial ram byte,can economize ram byte
898 000017 Upbyte_cycle expand adr,list:vararg
899 000017 @s_temp1 = adr
900 000017 for ls, <list>
901 000017 xch a,ls
902 000017 xch a,@s_temp1
903 000017 @s_temp1 = @s_temp1 + 1
904 000017 endm
905 000017 xch a,@s_temp1
906 000017 endm
907 000017 //ex: upbyte_cycle wk0,wk1,wk2,...,wkn
908 000017 // (wkn are serial ram byte)
909 000017 //result:wk1,wk2,wk3,...wk0
910 000017 //====================================================
911 000017 //Note:将v1与v2中的数据交换
912 000017 //====================================================
913 000017 XCHM expand v1,v2
914 000017 xch a,v2
915 000017 xch a,v1
916 000017 xch a,v2
917 000017 endm
918 000017 //====================================================
919 000017 //Note:将v2中的数据bit倒置存于v1中
920 000017 //====================================================
921 000017 ConvertM expand v1,v2
922 000017 clr v1
923 000017 bts0 v2.0
924 000017 bset v1.7
925 000017 bts0 v2.1
926 000017 bset v1.6
927 000017 bts0 v2.2
928 000017 bset v1.5
929 000017 bts0 v2.3
930 000017 bset v1.4
931 000017 bts0 v2.4
932 000017 bset v1.3
933 000017 bts0 v2.5
934 000017 bset v1.2
935 000017 bts0 v2.6
936 000017 bset v1.1
937 000017 bts0 v2.7
938 000017 bset v1.0
939 000017 endm
940 000017 //====================================================
941 000017 //Note:将v2中的数据bit倒置取反并存于v1中
942 000017 //====================================================
943 000017 Convert_M expand v1,v2
944 000017 clr v1
945 000017 bts1 v2.0
946 000017 bset v1.7
947 000017 bts1 v2.1
948 000017 bset v1.6
949 000017 bts1 v2.2
950 000017 bset v1.5
951 000017 bts1 v2.3
952 000017 bset v1.4
953 000017 bts1 v2.4
954 000017 bset v1.3
955 000017 bts1 v2.5
956 000017 bset v1.2
957 000017 bts1 v2.6
958 000017 bset v1.1
959 000017 bts1 v2.7
960 000017 bset v1.0
961 000017 endm
962 000017 //====================================================
963 000017 //Note: 将位f1与位f2相与赋予f2
964 000017 //====================================================
965 000017 AND_f macro f1,f2
966 000017 bts0 f1
967 000017 jmp $+2
968 000017 bclr f2
969 000017 endm
970 000017
971 000017
972 000000 .code
973 000000 org 00h
974 000000 include vec.asm ; System Vector
975 000000 ;**********************************
976 000000 ; Main routine Vector *
977 000000 ;**********************************
978 000000 0000 nop ; 0
979 000001 0000 nop ; 1 you can delete this struction
980 000002 800A jmp @@int_main ; 2 you can delete this struction
981 000003 ; jmp @@int_main ; 3 you can delete this struction
982 000003 ; JMP @@int_main ; 4 ; reserved for user!
983 000003 ; JMP @@int_main ; 5 ; |
984 000003 ; JMP @@int_main ; 6 ; |
985 000003 ; JMP @@int_main ; 7 ; reserved for user!
986 000003 ;**********************************
987 000003 ; Interrupt Vector *
988 000003 ;**********************************
989 000008 org 08h
990 000008 803C jmp @@int_rs ; 8 Interrupt Service Routine
991 000009
992 000009 800A jmp @@int_main ; 9 you can delete this struction
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -