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

📄 ex3_utility.lst

📁 基于摩托罗拉S12标准源程序 包括:SCIO,Timer
💻 LST
📖 第 1 页 / 共 5 页
字号:
  520:  	  if((echo==ESC)||(echo==DOT)||(echo==CR)) 
  000d c11b         CMPB  #27
  000f 2708         BEQ   *+10 ;abs = 0019
  0011 c12e         CMPB  #46
  0013 2704         BEQ   *+6 ;abs = 0019
  0015 c10d         CMPB  #13
  0017 2602         BNE   *+4 ;abs = 001b
  521:  	    loop = DISABLE;			//break the while loop		
  0019 6984         CLR   4,SP
  522:        if (echo==BS || echo==DEL)
  001b c108         CMPB  #8
  001d 2704         BEQ   *+6 ;abs = 0023
  001f c17f         CMPB  #127
  0021 261a         BNE   *+28 ;abs = 003d
  523:        {
  524:         	if(count>0) 			//del 4 bit data in buffer
  0023 e682         LDAB  2,SP
  0025 2716         BEQ   *+24 ;abs = 003d
  525:         	{
  526:         	  count--;
  0027 6382         DEC   2,SP
  527:         	  c_ptr--;
  0029 ee87         LDX   7,SP
  002b 09           DEX   
  002c 6e87         STX   7,SP
  528:  	      tx_char0(echo);		//send bs the char on screen
  002e e683         LDAB  3,SP
  0030 160000       JSR   tx_char0
  529:  	      tx_char0(' ');		//send space to clear the char
  0033 c620         LDAB  #32
  0035 160000       JSR   tx_char0
  530:  	      tx_char0(echo);		//send bs again to move back the cursor
  0038 e683         LDAB  3,SP
  003a 160000       JSR   tx_char0
  531:  	    }
  532:        }
  533:        if ((count<0x80)&&(echo!=DEL)&&(echo!=BS))				//update 4 bit data to buffer
  003d e682         LDAB  2,SP
  003f c180         CMPB  #128
  0041 2417         BCC   *+25 ;abs = 005a
  0043 e683         LDAB  3,SP
  0045 c17f         CMPB  #127
  0047 2711         BEQ   *+19 ;abs = 005a
  0049 c108         CMPB  #8
  004b 270d         BEQ   *+15 ;abs = 005a
  534:        {
  535:  	      count++; 
  004d 6282         INC   2,SP
  536:  	      tx_char0(echo);			//send echo to screen
  004f 160000       JSR   tx_char0
  537:  	      *c_ptr++=echo;
  0052 ee87         LDX   7,SP
  0054 e683         LDAB  3,SP
  0056 6b30         STAB  1,X+
  0058 6e87         STX   7,SP
  005a e684         LDAB  4,SP
  005c 0411a9       DBEQ  B,*-84 ;abs = 0008
  538:  	  }
  539:  	}  
  540:  	
  541:  	if (echo==DOT||echo ==ESC){
  005f e683         LDAB  3,SP
  0061 c12e         CMPB  #46
  0063 2704         BEQ   *+6 ;abs = 0069
  0065 c11b         CMPB  #27
  0067 2606         BNE   *+8 ;abs = 006f
  542:  	   *c_ptr++=echo;
  0069 ee87         LDX   7,SP
  006b 6b30         STAB  1,X+
  543:  	   *c_ptr='\r';
  544:         *n=count;
  545:  	   return(OK);
  006d 200f         BRA   *+17 ;abs = 007e
  546:  	   }
  547:  
  548:  	if(count!=0 && echo==CR)
  006f a682         LDAA  2,SP
  0071 2718         BEQ   *+26 ;abs = 008b
  0073 c10d         CMPB  #13
  0075 2614         BNE   *+22 ;abs = 008b
  549:  	{
  550:  	  tx_char0('\n');			//send echo to screen
  0077 c60a         LDAB  #10
  0079 160000       JSR   tx_char0
  551:        *c_ptr='\r';
  007c ee87         LDX   7,SP
  007e c60d         LDAB  #13
  0080 6b00         STAB  0,X
  552:        *n=count;
  0082 ee80         LDX   0,SP
  0084 a682         LDAA  2,SP
  0086 6a00         STAA  0,X
  553:  	  return(OK);
  0088 c601         LDAB  #1
  008a 21           SKIP1 
  554:  	}
  555:  	else 
  556:  	  return(NOTOK);
  008b c7           CLRB  
  557:  }
  008c 1b85         LEAS  5,SP
  008e 3d           RTS   
  558:  
  559:  /*******************************************************************
  560:  * Input byte (dec) subroutine
  561:  * Description : Get the data(byte) from user  
  562:  *             : 
  563:  *			  :
  564:  * Example     : N/A 
  565:  * Input 	  : N/A
  566:  * Output	  : *c_ptr
  567:  * Modify      : N/A
  568:  * Return      : status [OK for ('0'-'z') or NOTOK for others chars]
  569:  *********************************************************************/ 
  570:  byte input_dec(byte *c_ptr) 
  571:  {

Function: input_dec
Source  : D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\S12_Ex4_Portb_ICD_CW31_Data\Flash_Application\ObjectCode\ex3_utility.c.o" -Ol0

  0000 1b92         LEAS  -14,SP
  0002 3b           PSHD  
  572:  	byte		echo,cdata,loop=ENABLE;	
  0003 c601         LDAB  #1
  0005 6b8d         STAB  13,SP
  573:  	int			count=0,i_data,i_data1,i_data2,i,j;
  0007 c7           CLRB  
  0008 87           CLRA  
  0009 6c84         STD   4,SP
  574:  	
  575:  	i_data=0;
  000b 6c82         STD   2,SP
  576:  	*c_ptr=0;
  000d ee80         LDX   0,SP
  000f 6b00         STAB  0,X
  577:  	while(loop == ENABLE)
  578:  	{
  579:  	  echo=rx_char0();
  0011 160000       JSR   rx_char0
  0014 6b88         STAB  8,SP
  580:  	  if((echo==ESC)||(echo==DOT)||(echo==CR)) 
  0016 c11b         CMPB  #27
  0018 2708         BEQ   *+10 ;abs = 0022
  001a c12e         CMPB  #46
  001c 2704         BEQ   *+6 ;abs = 0022
  001e c10d         CMPB  #13
  0020 2602         BNE   *+4 ;abs = 0024
  581:  	    loop = DISABLE;			//break the while loop		
  0022 698d         CLR   13,SP
  582:        if (echo==BS || echo==DEL)
  0024 c108         CMPB  #8
  0026 2704         BEQ   *+6 ;abs = 002c
  0028 c17f         CMPB  #127
  002a 261f         BNE   *+33 ;abs = 004b
  583:        {
  584:         	if(count>0) 			//del 4 bit data in buffer
  002c ee84         LDX   4,SP
  002e 2f1b         BLE   *+29 ;abs = 004b
  585:         	{
  586:         	  count--;
  0030 09           DEX   
  0031 6e84         STX   4,SP
  587:         	  i_data=i_data>>4;
  0033 ed82         LDY   2,SP
  0035 c604         LDAB  #4
  0037 160000       JSR   _ISHRS
  003a 6c82         STD   2,SP
  588:  	      tx_char0(echo);		//send bs the char on screen
  003c e688         LDAB  8,SP
  003e 160000       JSR   tx_char0
  589:  	      tx_char0(' ');		//send space to clear the char
  0041 c620         LDAB  #32
  0043 160000       JSR   tx_char0
  590:  	      tx_char0(echo);		//send bs again to move back the cursor
  0046 e688         LDAB  8,SP
  0048 160000       JSR   tx_char0
  591:  	    }
  592:        }
  593:        if (count<3)				//update 4 bit data to buffer
  004b ee84         LDX   4,SP
  004d 8e0003       CPX   #3
  0050 2c1f         BGE   *+33 ;abs = 0071
  594:        {
  595:  	    if((echo<='9') && (echo>='0')) 
  0052 e688         LDAB  8,SP
  0054 c030         SUBB  #48
  0056 c109         CMPB  #9
  0058 2217         BHI   *+25 ;abs = 0071
  596:  	    {
  597:  //	      if ((echo>='0') && (echo<='9'))
  598:  	  	    cdata=echo-0x30; 
  599:  	      count++; 
  005a 08           INX   
  005b 6e84         STX   4,SP
  600:  	      tx_char0(echo);			//send echo to screen
  005d 37           PSHB  
  005e e689         LDAB  9,SP
  0060 160000       JSR   tx_char0
  601:  	  	  i_data=(i_data<<4);
  0063 ec83         LDD   3,SP
  0065 59           ASLD  
  0066 59           ASLD  
  0067 59           ASLD  
  0068 59           ASLD  
  0069 6c83         STD   3,SP
  602:  	      i_data+=cdata;
  006b 33           PULB  
  006c 87           CLRA  
  006d e382         ADDD  2,SP
  006f 6c82         STD   2,SP
  0071 e68d         LDAB  13,SP
  0073 04119b       DBEQ  B,*-98 ;abs = 0011
  603:  	    }	
  604:  	  }
  605:  	}  
  606:  	
  607:  	if (echo==DOT||echo ==ESC){
  0076 e688         LDAB  8,SP
  0078 c12e         CMPB  #46
  007a 2704         BEQ   *+6 ;abs = 0080
  007c c11b         CMPB  #27
  007e 2606         BNE   *+8 ;abs = 0086
  608:  	   *c_ptr=echo;
  0080 ee80         LDX   0,SP
  0082 6b00         STAB  0,X
  609:  	   return(OK);
  0084 204d         BRA   *+79 ;abs = 00d3
  610:  	   }
  611:  
  612:  	if(count!=0 && echo==CR)
  0086 ee84         LDX   4,SP
  0088 274c         BEQ   *+78 ;abs = 00d6
  008a c10d         CMPB  #13
  008c 2648         BNE   *+74 ;abs = 00d6
  613:  	{
  614:  	  for (i=0;i<count;i++)
  008e c7           CLRB  
  008f 87           CLRA  
  0090 6c86         STD   6,SP
  0092 2039         BRA   *+59 ;abs = 00cd
  615:  	  {
  616:  	     i_data1 = ((i_data)>>((unsigned char)(4*i))&0xf);
  0094 e687         LDAB  7,SP
  0096 58           ASLB  
  0097 58           ASLB  
  0098 ed82         LDY   2,SP
  009a 160000       JSR   _ISHRS
  009d c40f         ANDB  #15
  009f 87           CLRA  
  00a0 6c8e         STD   14,SP
  617:  	     i_data2=1;
  0

⌨️ 快捷键说明

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