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

📄 ex3_utility.lst

📁 基于摩托罗拉S12标准源程序 包括:SCIO,Timer
💻 LST
📖 第 1 页 / 共 5 页
字号:
  0049 ec83         LDD   3,SP
  004b 8c0004       CPD   #4
  004e 2c3f         BGE   *+65 ;abs = 008f
  417:        {
  418:  	    if((echo<='f') && (echo>='0')) 
  0050 e682         LDAB  2,SP
  0052 c030         SUBB  #48
  0054 c136         CMPB  #54
  0056 2237         BHI   *+57 ;abs = 008f
  419:  	    {
  420:  	      if (echo>='a')  echo-=(0x20); 	//covert upper case
  0058 e682         LDAB  2,SP
  005a c161         CMPB  #97
  005c 2504         BCS   *+6 ;abs = 0062
  005e c020         SUBB  #32
  0060 6b82         STAB  2,SP
  421:  	      if ((echo>='0') && (echo<='9'))
  0062 e682         LDAB  2,SP
  0064 c030         SUBB  #48
  0066 c109         CMPB  #9
  0068 2202         BHI   *+4 ;abs = 006c
  422:  	  	    cdata=echo-0x30; 
  006a 2004         BRA   *+6 ;abs = 0070
  423:  	      else
  424:  	        cdata=echo-0x37;
  006c e682         LDAB  2,SP
  006e c037         SUBB  #55
  0070 6b85         STAB  5,SP
  425:  	      count++; 
  0072 ee83         LDX   3,SP
  0074 08           INX   
  0075 6e83         STX   3,SP
  426:  	      tx_char0(echo);			//send echo to screen
  0077 e682         LDAB  2,SP
  0079 160000       JSR   tx_char0
  427:  	  	  *i_ptr=(*i_ptr<<4);
  007c ee80         LDX   0,SP
  007e ec00         LDD   0,X
  0080 59           ASLD  
  0081 59           ASLD  
  0082 59           ASLD  
  0083 59           ASLD  
  0084 6c00         STD   0,X
  428:  	      *i_ptr+=cdata;
  0086 b746         TFR   D,Y
  0088 e685         LDAB  5,SP
  008a 87           CLRA  
  008b 19ee         LEAY  D,Y
  008d 6d00         STY   0,X
  008f e686         LDAB  6,SP
  0091 04117a       DBEQ  B,*-131 ;abs = 000e
  429:  	    }	
  430:  	  }
  431:  	}  
  432:  
  433:  	if(count!=0 && echo==CR) 
  0094 ec83         LDD   3,SP
  0096 2709         BEQ   *+11 ;abs = 00a1
  0098 e682         LDAB  2,SP
  009a c10d         CMPB  #13
  009c 2603         BNE   *+5 ;abs = 00a1
  434:  	  return(OK);
  009e c601         LDAB  #1
  00a0 21           SKIP1 
  435:  	else 
  436:  	  return(NOTOK);
  00a1 c7           CLRB  
  437:  }
  00a2 1b87         LEAS  7,SP
  00a4 3d           RTS   
  438:  
  439:  /*******************************************************************
  440:  * Input byte (hex) subroutine
  441:  * Description : Get the data(byte) from user  
  442:  *             : 
  443:  *			  :
  444:  * Example     : N/A 
  445:  * Input 	  : N/A
  446:  * Output	  : *c_ptr
  447:  * Modify      : N/A
  448:  * Return      : status [OK for ('0'-'z') or NOTOK for others chars]
  449:  *********************************************************************/ 
  450:  byte input_byte(byte *c_ptr) 
  451:  {

Function: input_byte
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 6ca9         STD   7,-SP
  452:  	byte		echo,cdata,loop=ENABLE;	
  0002 c601         LDAB  #1
  0004 6b86         STAB  6,SP
  453:  	int			count=0;
  0006 c7           CLRB  
  0007 87           CLRA  
  0008 6c83         STD   3,SP
  454:  	
  455:  	*c_ptr=0;
  000a ee80         LDX   0,SP
  000c 6b00         STAB  0,X
  456:  
  457:  	while(loop == ENABLE)
  458:  	{
  459:  	  echo=rx_char0();
  000e 160000       JSR   rx_char0
  0011 6b82         STAB  2,SP
  460:  	  if((echo==ESC)||(echo==DOT)||(echo==CR)) 
  0013 c11b         CMPB  #27
  0015 2708         BEQ   *+10 ;abs = 001f
  0017 c12e         CMPB  #46
  0019 2704         BEQ   *+6 ;abs = 001f
  001b c10d         CMPB  #13
  001d 2602         BNE   *+4 ;abs = 0021
  461:  	    loop = DISABLE;			//break the while loop		
  001f 6986         CLR   6,SP
  462:        if (echo==BS || echo==DEL)
  0021 c108         CMPB  #8
  0023 2704         BEQ   *+6 ;abs = 0029
  0025 c17f         CMPB  #127
  0027 2620         BNE   *+34 ;abs = 0049
  463:        {
  464:         	if(count>0) 			//del 4 bit data in buffer
  0029 ee83         LDX   3,SP
  002b 2f1c         BLE   *+30 ;abs = 0049
  465:         	{
  466:         	  count--;
  002d 09           DEX   
  002e 6e83         STX   3,SP
  467:         	  *c_ptr=*c_ptr>>4;
  0030 ee80         LDX   0,SP
  0032 e600         LDAB  0,X
  0034 54           LSRB  
  0035 54           LSRB  
  0036 54           LSRB  
  0037 54           LSRB  
  0038 6b00         STAB  0,X
  468:  	      tx_char0(echo);		//send bs the char on screen
  003a e682         LDAB  2,SP
  003c 160000       JSR   tx_char0
  469:  	      tx_char0(' ');		//send space to clear the char
  003f c620         LDAB  #32
  0041 160000       JSR   tx_char0
  470:  	      tx_char0(echo);		//send bs again to move back the cursor
  0044 e682         LDAB  2,SP
  0046 160000       JSR   tx_char0
  471:  	    }
  472:        }
  473:        if (count<2)				//update 4 bit data to buffer
  0049 ec83         LDD   3,SP
  004b 8c0002       CPD   #2
  004e 2c39         BGE   *+59 ;abs = 0089
  474:        {
  475:  	    if((echo<='f') && (echo>='0')) 
  0050 e682         LDAB  2,SP
  0052 c030         SUBB  #48
  0054 c136         CMPB  #54
  0056 2231         BHI   *+51 ;abs = 0089
  476:  	    {
  477:  	      if (echo>='a')  echo-=(0x20); 	//covert upper case
  0058 e682         LDAB  2,SP
  005a c161         CMPB  #97
  005c 2504         BCS   *+6 ;abs = 0062
  005e c020         SUBB  #32
  0060 6b82         STAB  2,SP
  478:  	      if ((echo>='0') && (echo<='9'))
  0062 e682         LDAB  2,SP
  0064 c030         SUBB  #48
  0066 c109         CMPB  #9
  0068 2202         BHI   *+4 ;abs = 006c
  479:  	  	    cdata=echo-0x30; 
  006a 2004         BRA   *+6 ;abs = 0070
  480:  	      else
  481:  	        cdata=echo-0x37;
  006c e682         LDAB  2,SP
  006e c037         SUBB  #55
  0070 6b85         STAB  5,SP
  482:  	      count++; 
  0072 ee83         LDX   3,SP
  0074 08           INX   
  0075 6e83         STX   3,SP
  483:  	      tx_char0(echo);			//send echo to screen
  0077 e682         LDAB  2,SP
  0079 160000       JSR   tx_char0
  484:  	  	  *c_ptr=(*c_ptr<<4);
  007c ee80         LDX   0,SP
  007e e600         LDAB  0,X
  0080 8610         LDAA  #16
  0082 12           MUL   
  0083 6b00         STAB  0,X
  485:  	      *c_ptr+=cdata;
  0085 eb85         ADDB  5,SP
  0087 6b00         STAB  0,X
  0089 e686         LDAB  6,SP
  008b 041180       DBEQ  B,*-125 ;abs = 000e
  486:  	    }	
  487:  	  }
  488:  	}  
  489:  	
  490:  	if (echo==DOT||echo ==ESC){
  008e e682         LDAB  2,SP
  0090 c12e         CMPB  #46
  0092 2704         BEQ   *+6 ;abs = 0098
  0094 c11b         CMPB  #27
  0096 2606         BNE   *+8 ;abs = 009e
  491:  	   *c_ptr=echo;
  0098 ee80         LDX   0,SP
  009a 6b00         STAB  0,X
  492:  	   return(OK);
  009c 2008         BRA   *+10 ;abs = 00a6
  493:  	   }
  494:  
  495:  	if(count!=0 && echo==CR)
  009e ee83         LDX   3,SP
  00a0 2707         BEQ   *+9 ;abs = 00a9
  00a2 c10d         CMPB  #13
  00a4 2603         BNE   *+5 ;abs = 00a9
  496:  	  return(OK);
  00a6 c601         LDAB  #1
  00a8 21           SKIP1 
  497:  	else 
  498:  	  return(NOTOK);
  00a9 c7           CLRB  
  499:  }
  00aa 1b87         LEAS  7,SP
  00ac 3d           RTS   
  500:  
  501:  /*******************************************************************
  502:  * Input String (ASCII) subroutine
  503:  * Description : Get the data(byte) from user  
  504:  *             : 
  505:  *			  :
  506:  * Example     : N/A 
  507:  * Input 	  : N/A
  508:  * Output	  : *c_ptr
  509:  * Modify      : N/A
  510:  * Return      : status [OK for ('0'-'z') or NOTOK for others chars]
  511:  *********************************************************************/ 
  512:  byte input_string(byte *c_ptr, byte *n) 
  513:  {

Function: input_string
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 6cab         STD   5,-SP
  514:  	byte	echo,loop=ENABLE;	
  0002 c601         LDAB  #1
  0004 6b84         STAB  4,SP
  515:  	byte	count=0;
  0006 6982         CLR   2,SP
  516:  
  517:  	while(loop == ENABLE)
  518:  	{
  519:  	  echo=rx_char0();
  0008 160000       JSR   rx_char0
  000b 6b83         STAB  3,SP

⌨️ 快捷键说明

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