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

📄 utility.lst

📁 基于摩托罗拉S12标准源程序 包括:SCIO,Timer
💻 LST
📖 第 1 页 / 共 5 页
字号:
  0035 ed82         LDY   2,SP
  0037 c604         LDAB  #4
  0039 160000       JSR   _ISHRS
  003c 6c82         STD   2,SP
  600:  	      tx_char0(echo);		//send bs the char on screen
  003e e686         LDAB  6,SP
  0040 160000       JSR   tx_char0
  601:  	      tx_char0(' ');		//send space to clear the char
  0043 c620         LDAB  #32
  0045 160000       JSR   tx_char0
  602:  	      tx_char0(echo);		//send bs again to move back the cursor
  0048 e686         LDAB  6,SP
  004a 160000       JSR   tx_char0
  603:  	    }
  604:        }
  605:        if (count<3)				//update 4 bit data to buffer
  004d ec84         LDD   4,SP
  004f 8c0003       CPD   #3
  0052 2c21         BGE   *+35 ;abs = 0075
  606:        {
  607:  	    if((echo<='9') && (echo>='0')) 
  0054 e686         LDAB  6,SP
  0056 c030         SUBB  #48
  0058 c109         CMPB  #9
  005a 2219         BHI   *+27 ;abs = 0075
  608:  	    {
  609:  	      if ((echo>='0') && (echo<='9'))
  610:  	  	    cdata=echo-0x30; 
  611:  	      count++; 
  005c ee84         LDX   4,SP
  005e 08           INX   
  005f 6e84         STX   4,SP
  612:  	      tx_char0(echo);			//send echo to screen
  0061 37           PSHB  
  0062 e687         LDAB  7,SP
  0064 160000       JSR   tx_char0
  613:  	  	  i_data=(i_data<<4);
  0067 ec83         LDD   3,SP
  0069 59           ASLD  
  006a 59           ASLD  
  006b 59           ASLD  
  006c 59           ASLD  
  006d 6c83         STD   3,SP
  614:  	      i_data+=cdata;
  006f 33           PULB  
  0070 87           CLRA  
  0071 e382         ADDD  2,SP
  0073 6c82         STD   2,SP
  0075 e68d         LDAB  13,SP
  0077 041197       DBEQ  B,*-102 ;abs = 0011
  615:  	    }	
  616:  	  }
  617:  	}  
  618:  	
  619:  	if (echo==DOT||echo ==ESC){
  007a e686         LDAB  6,SP
  007c c12e         CMPB  #46
  007e 2704         BEQ   *+6 ;abs = 0084
  0080 c11b         CMPB  #27
  0082 2606         BNE   *+8 ;abs = 008a
  620:  	   *c_ptr=echo;
  0084 ee80         LDX   0,SP
  0086 6b00         STAB  0,X
  621:  	   return(OK);
  0088 204f         BRA   *+81 ;abs = 00d9
  622:  	   }
  623:  
  624:  	if(count!=0 && echo==CR)
  008a ec84         LDD   4,SP
  008c 274e         BEQ   *+80 ;abs = 00dc
  008e e686         LDAB  6,SP
  0090 c10d         CMPB  #13
  0092 2648         BNE   *+74 ;abs = 00dc
  625:  	{
  626:  	  for (i=0;i<count;i++)
  0094 c7           CLRB  
  0095 87           CLRA  
  0096 6c87         STD   7,SP
  0098 2039         BRA   *+59 ;abs = 00d3
  627:  	  {
  628:  	     i_data1 = ((i_data)>>((unsigned char)(4*i))&0xf);
  009a e688         LDAB  8,SP
  009c 58           ASLB  
  009d 58           ASLB  
  009e ed82         LDY   2,SP
  00a0 160000       JSR   _ISHRS
  00a3 c40f         ANDB  #15
  00a5 87           CLRA  
  00a6 6c8e         STD   14,SP
  629:  	     i_data2=1;
  00a8 02           INY   
  00a9 6d8b         STY   11,SP
  630:  		 for(j=0;j<i;j++)
  00ab c7           CLRB  
  00ac 6c89         STD   9,SP
  00ae 200d         BRA   *+15 ;abs = 00bd
  631:  		   i_data2 *= 10;
  00b0 c60a         LDAB  #10
  00b2 87           CLRA  
  00b3 ed8b         LDY   11,SP
  00b5 13           EMUL  
  00b6 6c8b         STD   11,SP
  00b8 ee89         LDX   9,SP
  00ba 08           INX   
  00bb 6e89         STX   9,SP
  00bd ec89         LDD   9,SP
  00bf ac87         CPD   7,SP
  00c1 2ded         BLT   *-17 ;abs = 00b0
  632:  	     *c_ptr+= i_data1*i_data2;
  00c3 e68f         LDAB  15,SP
  00c5 a68c         LDAA  12,SP
  00c7 12           MUL   
  00c8 ee80         LDX   0,SP
  00ca eb00         ADDB  0,X
  00cc 6b00         STAB  0,X
  00ce ee87         LDX   7,SP
  00d0 08           INX   
  00d1 6e87         STX   7,SP
  00d3 ec87         LDD   7,SP
  00d5 ac84         CPD   4,SP
  00d7 2dc1         BLT   *-61 ;abs = 009a
  633:  	  }
  634:  	  return(OK);
  00d9 c601         LDAB  #1
  00db 21           SKIP1 
  635:  	}
  636:  	else 
  637:  	  return(NOTOK);
  00dc c7           CLRB  
  638:  }
  00dd 1bf010       LEAS  16,SP
  00e0 3d           RTS   
  639:  
  640:  /*******************************************************************
  641:  * Display internal memory to screen subroutine
  642:  * Description : User inputs the internal memory start address 
  643:  *             : and end address  
  644:  *			  :
  645:  * Example     : start_add=0x1000; end_add=0x1200 
  646:  * Input 	  : start_add and end_add
  647:  * Output	  : N/A
  648:  * Modify      : register D 
  649:  * Return      : status (OK or NOTOK) 
  650:  *********************************************************************/ 
  651:  void data_display()
  652:  {

Function: data_display
Source  : D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\sources\utility.c
Options : -Env"GENPATH=D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\bin;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\cmd;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\prm;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\sources;D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\LIB;D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\SRC;D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\INCLUDE" -Env"LIBPATH=D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\bin" -Env"TEXTPATH=D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\bin" -Lasm=%n.lst -ObjN="D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\S12_Ex4_Portb_ICD_Data\Flash_Application\ObjectCode\utility.c.o" -Ol0

  0000 1bf1ee       LEAS  -18,SP
  653:  	unsigned int	*word,temp,start_add,end_add,i,j;
  654:  	unsigned int	itemp;
  655:  	byte			*ptr,add_status,lf;
  656:  	
  657:  	word=&temp;
  0003 1a8c         LEAX  12,SP
  0005 6e8a         STX   10,SP
  658:  	
  659:  	printf0("\n\r");	
  0007 cc0000       LDD   #"\012\015"
  000a 160000       JSR   printf0
  660:  	printf0("	Start Address = \r");
  000d cc0000       LDD   #"\011Start Address = \015"
  0010 160000       JSR   data_display:233
  661:  	if(input_word(word)==OK)
  0013 260b         BNE   *+13 ;abs = 0020
  662:  	{
  663:  	  start_add = *word;
  0015 ee8a         LDX   10,SP
  0017 ec00         LDD   0,X
  0019 6c82         STD   2,SP
  664:  	  add_status = OK;
  001b c601         LDAB  #1
  001d 6b8f         STAB  15,SP
  665:  	}
  001f 8f           SKIP2 
  666:  	else
  667:  	  add_status = NOTOK;
  0020 698f         CLR   15,SP
  668:  	  
  669:  	printf0("\n\r");	
  0022 cc0000       LDD   #"\012\015"
  0025 160000       JSR   printf0
  670:  	printf0("	End Address = \r");
  0028 cc0000       LDD   #"\011End Address = \015"
  002b 160000       JSR   data_display:233
  671:  	if(input_word(word)==OK)
  002e 2606         BNE   *+8 ;abs = 0036
  672:  	  end_add = *word;
  0030 ee8a         LDX   10,SP
  0032 ec00         LDD   0,X
  0034 2005         BRA   *+7 ;abs = 003b
  673:  	else
  674:  	  end_add = start_add+0x100;  
  0036 ec82         LDD   2,SP
  0038 c30100       ADDD  #256
  003b 6c88         STD   8,SP
  675:  
  676:  	itemp=end_add-start_add;
  003d a382         SUBD  2,SP
  003f 6cf010       STD   16,SP
  677:  	if((itemp)>0)
  0042 1827009f     LBEQ  *+163 ;abs = 00e5
  678:  	{  
  679:  	  ptr=(byte *)start_add;		//point to start address
  0046 ec82         LDD   2,SP
  0048 6c80         STD   0,SP
  680:  	  j=16;
  004a c610         LDAB  #16
  004c 87           CLRA  
  004d 6c86         STD   6,SP
  681:  	  for (i=0; i<(end_add-start_add);i++)
  004f c7           CLRB  
  0050 6c84         STD   4,SP
  0052 060000       JMP   data_display:213
  682:  	  {
  683:  	    if (j>=16)
  0055 ec86         LDD   6,SP
  0057 8c0010       CPD   #16
  005a 251e         BCS   *+32 ;abs = 007a
  684:  	    {
  685:  	    	printf0("\n\r");
  005c cc0000       LDD   #"\012\015"
  005f 160000       JSR   printf0
  686:  	     	temp=(int)ptr;
  0062 ec80         LDD   0,SP
  0064 6c8c         STD   12,SP
  687:  			hex_asc((byte)(temp>>8));
  0066 e68c         LDAB  12,SP
  0068 160000       JSR   hex_asc
  688:  			hex_asc((byte)(temp));
  006b e68d         LDAB  13,SP
  006d 160000       JSR   hex_asc
  689:  		    printf0(" : \r");
  0070 cc0000       LDD   #" : \015"
  0073 160000       JSR   printf0
  690:  	    	j=0;
  0076 c7           CLRB  
  0077 87           CLRA  
  0078 6c86         STD   6,SP
  691:  	    }
  692:  	    hex_asc(*ptr++);
  007a ee80         LDX   0,SP
  007c e630         LDAB  1,X+
  007e 6e80         STX   0,SP
  0080 160000       JSR   hex_asc
  693:  	    tx_char0(' ');
  0083 c620         LDAB  #32
  0085 160000       JSR   tx_char0
  694:  	    j++;
  0088 ee86         LDX   6,SP
  008a 08           INX   
  008b 6e86         STX   6,SP
  695:  	    if(j>=16)
  008d 8e0010       CPX   #16
  0090 2532         BCS   *+52 ;abs = 00c4
  696:  	    {
  697:  	      ptr-=16;
  0092 ec80         LDD   0,SP
  0094 830010       SUBD  #16
  0097 6c80         STD   0,SP
  698:  	  	  for(lf=0;lf<16;lf++)
  0099 698e         CLR   14,SP
  699:  	  	  {
  700:  	  	    if((*ptr>='0')&&(*ptr<'z'))
  009b ee80         LDX   0,SP
  009d e600         LDAB  0,X
  009f c030         SUBB  #48
  00a1 c149         CMPB  #73
  00a3 2204         BHI   *+6 ;abs = 00a9
  701:  	  	      tx_char0(*ptr);
  00a5 e600         LDAB  0,X
  00a7 200b         BRA   *+13 ;abs = 00b4
  702:  	  	    else if (*ptr==' ')
  00a9 e600         LDAB  0,X
  00ab c120         CMPB  #32
  00ad 2603         BNE   *+5 ;abs = 00b2
  703:  	  	      tx_char0(' ');
  00af c620         LDAB  #32
  00b1 8f           SKIP2 
  704:  	  	    else
  705:  	  	      tx_char0('.');  
  00b2 c62e         LDAB  #46
  00b4 160000       JSR   tx_char0
  706:  	  	    *ptr++;
  00b7 ee80         LDX   0,SP
  00b9 08           INX   
  00ba 6e80         STX   0,SP
  00bc 628e         INC   14,SP
  00be e68e         LDAB  14,SP
  00c0 c110         CMPB  #16
  00c2 25d7         BCS   *-39 ;abs = 009b
  707:  	      }
  708:  	    }
  709:  		if(check_user_abort()==OK)
  00c4 160000       JSR   check_user_abort
  00c7 042106       DBNE  B,*+9 ;abs = 00d0
  710:  		  i=(end_add-start_add);
  00ca ec88         LDD   8,SP

⌨️ 快捷键说明

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