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

📄 utility.lst

📁 基于摩托罗拉S12标准源程序 包括:SCIO,Timer
💻 LST
📖 第 1 页 / 共 5 页
字号:
  004b ec84         LDD   4,SP
  004d 8c0004       CPD   #4
  0050 2c21         BGE   *+35 ;abs = 0073
  365:        {
  366:  	    if((echo<='9') && (echo>='0')) 
  0052 e688         LDAB  8,SP
  0054 c030         SUBB  #48
  0056 c109         CMPB  #9
  0058 2219         BHI   *+27 ;abs = 0073
  367:  	    {
  368:  	      if ((echo>='0') && (echo<='9'))
  369:  	  	    cdata=echo-0x30; 
  370:  	      count++; 
  005a ee84         LDX   4,SP
  005c 08           INX   
  005d 6e84         STX   4,SP
  371:  	      tx_char0(echo);			//send echo to screen
  005f 37           PSHB  
  0060 e689         LDAB  9,SP
  0062 160000       JSR   tx_char0
  372:  	  	  i_data=(i_data<<4);
  0065 ec83         LDD   3,SP
  0067 59           ASLD  
  0068 59           ASLD  
  0069 59           ASLD  
  006a 59           ASLD  
  006b 6c83         STD   3,SP
  373:  	      i_data+=cdata;
  006d 33           PULB  
  006e 87           CLRA  
  006f e382         ADDD  2,SP
  0071 6c82         STD   2,SP
  0073 e68d         LDAB  13,SP
  0075 041199       DBEQ  B,*-100 ;abs = 0011
  374:  	    }	
  375:  	  }
  376:  	}  
  377:  	if(count!=0 && echo==CR) 
  0078 ec84         LDD   4,SP
  007a 274e         BEQ   *+80 ;abs = 00ca
  007c e688         LDAB  8,SP
  007e c10d         CMPB  #13
  0080 2648         BNE   *+74 ;abs = 00ca
  378:  	{  
  379:  	  for (i=0;i<count;i++)
  0082 c7           CLRB  
  0083 87           CLRA  
  0084 6c86         STD   6,SP
  0086 2039         BRA   *+59 ;abs = 00c1
  380:  	  {
  381:  	     i_data1 = ((i_data)>>((unsigned char)(4*i))&0xf);
  0088 e687         LDAB  7,SP
  008a 58           ASLB  
  008b 58           ASLB  
  008c ed82         LDY   2,SP
  008e 160000       JSR   _ISHRU
  0091 c40f         ANDB  #15
  0093 87           CLRA  
  0094 6c8e         STD   14,SP
  382:  	     i_data2=1;
  0096 02           INY   
  0097 6d8b         STY   11,SP
  383:  		 for(j=0;j<i;j++)
  0099 c7           CLRB  
  009a 6c89         STD   9,SP
  009c 200d         BRA   *+15 ;abs = 00ab
  384:  		   i_data2 *= 10;
  009e c60a         LDAB  #10
  00a0 87           CLRA  
  00a1 ed8b         LDY   11,SP
  00a3 13           EMUL  
  00a4 6c8b         STD   11,SP
  00a6 ee89         LDX   9,SP
  00a8 08           INX   
  00a9 6e89         STX   9,SP
  00ab ec89         LDD   9,SP
  00ad ac86         CPD   6,SP
  00af 2ded         BLT   *-17 ;abs = 009e
  385:  	     *i_ptr+= i_data1*i_data2;
  00b1 ec8e         LDD   14,SP
  00b3 ed8b         LDY   11,SP
  00b5 13           EMUL  
  00b6 ee80         LDX   0,SP
  00b8 e300         ADDD  0,X
  00ba 6c00         STD   0,X
  00bc ee86         LDX   6,SP
  00be 08           INX   
  00bf 6e86         STX   6,SP
  00c1 ec86         LDD   6,SP
  00c3 ac84         CPD   4,SP
  00c5 2dc1         BLT   *-61 ;abs = 0088
  386:  	  }
  387:  	  return(OK);
  00c7 c601         LDAB  #1
  00c9 21           SKIP1 
  388:  	}
  389:  	else 
  390:  	  return(NOTOK);
  00ca c7           CLRB  
  391:  }
  00cb 1bf010       LEAS  16,SP
  00ce 3d           RTS   
  392:  
  393:  
  394:  /*******************************************************************
  395:  * Input word (hex) subroutine
  396:  * Description : Get the data(word) from user   
  397:  *             :   
  398:  *			  :
  399:  * Example     : N/A 
  400:  * Input 	  : N/A
  401:  * Output	  : *i_ptr
  402:  * Modify      : N/A
  403:  * Return      : status [OK for ('0'-'z') or NOTOK for others chars]
  404:  *********************************************************************/ 
  405:  byte input_word(unsigned int *i_ptr) //3046
  406:  {

Function: input_word
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 6ca9         STD   7,-SP
  407:  	byte		echo,cdata,loop=ENABLE;	
  0002 c601         LDAB  #1
  0004 6b86         STAB  6,SP
  408:  	int			count=0;
  0006 c7           CLRB  
  0007 87           CLRA  
  0008 6c83         STD   3,SP
  409:  	
  410:  	*i_ptr=0;
  000a ee80         LDX   0,SP
  000c 6c00         STD   0,X
  411:  
  412:  	while(loop == ENABLE)
  413:  	{
  414:  	  echo=rx_char0();
  000e 160000       JSR   rx_char0
  0011 6b82         STAB  2,SP
  415:  	  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
  416:  	    loop = DISABLE;			//break the while loop		
  001f 6986         CLR   6,SP
  417:        if (echo==BS || echo==DEL)
  0021 c108         CMPB  #8
  0023 2704         BEQ   *+6 ;abs = 0029
  0025 c17f         CMPB  #127
  0027 2622         BNE   *+36 ;abs = 004b
  418:        {
  419:         	if(count>0) 			//del 4 bit data in buffer
  0029 ec83         LDD   3,SP
  002b 2f1e         BLE   *+32 ;abs = 004b
  420:         	{
  421:         	  count--;
  002d 830001       SUBD  #1
  0030 6c83         STD   3,SP
  422:         	  *i_ptr=*i_ptr>>4;
  0032 ee80         LDX   0,SP
  0034 ec00         LDD   0,X
  0036 49           LSRD  
  0037 49           LSRD  
  0038 49           LSRD  
  0039 49           LSRD  
  003a 6c00         STD   0,X
  423:  	      tx_char0(echo);		//send bs the char on screen
  003c e682         LDAB  2,SP
  003e 160000       JSR   tx_char0
  424:  	      tx_char0(' ');		//send space to clear the char
  0041 c620         LDAB  #32
  0043 160000       JSR   tx_char0
  425:  	      tx_char0(echo);		//send bs again to move back the cursor
  0046 e682         LDAB  2,SP
  0048 160000       JSR   tx_char0
  426:  	    }
  427:        }
  428:        if (count<4)				//update 4 bit data to buffer
  004b ec83         LDD   3,SP
  004d 8c0004       CPD   #4
  0050 2c3d         BGE   *+63 ;abs = 008f
  429:        {
  430:  	    if((echo<='f') && (echo>='0')) 
  0052 e682         LDAB  2,SP
  0054 c030         SUBB  #48
  0056 c136         CMPB  #54
  0058 2235         BHI   *+55 ;abs = 008f
  431:  	    {
  432:  	      if (echo>='a')  echo-=(0x20); 	//covert upper case
  005a e682         LDAB  2,SP
  005c c161         CMPB  #97
  005e 2504         BCS   *+6 ;abs = 0064
  0060 c020         SUBB  #32
  0062 6b82         STAB  2,SP
  433:  	      if ((echo>='0') && (echo<='9'))
  0064 e682         LDAB  2,SP
  0066 c030         SUBB  #48
  0068 c109         CMPB  #9
  006a 2202         BHI   *+4 ;abs = 006e
  434:  	  	    cdata=echo-0x30; 
  006c 2004         BRA   *+6 ;abs = 0072
  435:  	      else
  436:  	        cdata=echo-0x37;
  006e e682         LDAB  2,SP
  0070 c037         SUBB  #55
  0072 6b85         STAB  5,SP
  437:  	      count++; 
  0074 ee83         LDX   3,SP
  0076 08           INX   
  0077 6e83         STX   3,SP
  438:  	      tx_char0(echo);			//send echo to screen
  0079 e682         LDAB  2,SP
  007b 160000       JSR   tx_char0
  439:  	  	  *i_ptr=(*i_ptr<<4);
  007e ee80         LDX   0,SP
  0080 ec00         LDD   0,X
  0082 59           ASLD  
  0083 59           ASLD  
  0084 59           ASLD  
  0085 59           ASLD  
  0086 6c00         STD   0,X
  440:  	      *i_ptr+=cdata;
  0088 e685         LDAB  5,SP
  008a 87           CLRA  
  008b e300         ADDD  0,X
  008d 6c00         STD   0,X
  008f e686         LDAB  6,SP
  0091 04117a       DBEQ  B,*-131 ;abs = 000e
  441:  	    }	
  442:  	  }
  443:  	}  
  444:  
  445:  	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
  446:  	  return(OK);
  009e c601         LDAB  #1
  00a0 21           SKIP1 
  447:  	else 
  448:  	  return(NOTOK);
  00a1 c7           CLRB  
  449:  }
  00a2 1b87         LEAS  7,SP
  00a4 3d           RTS   
  450:  
  451:  /*******************************************************************
  452:  * Input byte (hex) subroutine
  453:  * Description : Get the data(byte) from user  
  454:  *             : 
  455:  *			  :
  456:  * Example     : N/A 
  457:  * Input 	  : N/A
  458:  * Output	  : *c_ptr
  459:  * Modify      : N/A
  460:  * Return      : status [OK for ('0'-'z') or NOTOK for others chars]
  461:  *********************************************************************/ 
  462:  byte input_byte(byte *c_ptr) 
  463:  {

Function: input_byte
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 6ca9         STD   7,-SP
  464:  	byte		echo,cdata,loop=ENABLE;	
  0002 c601         LDAB  #1
  0004 6b86         STAB  6,SP
  465:  	int			count=0;
  0006 c7           CLRB  
  0007 87           CLRA  
  0008 6c83         STD   3,SP
  466:  	
  467:  	*c_ptr=0;
  000a ee80         LDX   0,SP
  000c 6b00         STAB  0,X
  468:  
  469:  	while(loop == ENABLE)
  470:  	{
  471:  	  echo=rx_char0();
  000e 160000       JSR   rx_char0
  0011 6b82         STAB  2,SP
  472:  	  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
  473:  	    loop = DISABLE;			//break the while loop		
  001f 6986         CLR   6,SP
  474:        if (echo==BS || echo==DEL)
  0021 c108         CMPB  #8
  0023 2704         BEQ   *+6 ;abs = 0029
  0025 c17f         CMPB  #127
  0027 2622         BNE   *+36 ;abs = 004b

⌨️ 快捷键说明

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