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

📄 fuzzy11a.lst

📁 Embedded magazine soure code for the year 1991
💻 LST
📖 第 1 页 / 共 3 页
字号:
M68HC11 Portable Cross Assembler  0.05   MS-DOS/PC-DOS  Page 1
 Thu Oct 10 16:08:33 1991 
Command line: 
 d:\pasm\PASMHC11.EXE -l FUZZY11A.lst FUZZY11A.ASM
Options list: 
ON  - b - Printing of macro definitions
ON  - c - Printing of macro calls
OFF - d - Placing of symbolic debugging information in COFF
ON  - e - Printing of macro expansions  (changed) 
ON  - f - Printing of conditional directives
OFF - g - Printing of generated constants list
OFF - q - Expanding and printing of structured syntax
OFF - s - Printing of symbol table
OFF - u - Printing of conditional unassembled source
OFF - x - Printing of cross reference table
OFF - m - Suppress printing of error messages
ON  - w - Printing of warning messages
OFF - v - Suppress printing of updated status
OFF - y - Enabling of sgs extensions
ON  - o - Create object code
ON  -   - Formatting of source line listing 
Create listing file - l - FUZZY11A.lst 
 
Xdefs: 
  NONE 
 
Xrefs: 
  NONE 

Input file(s): FUZZY11A.ASM (241 lines) 
 
Output file: FUZZY11A.o  
Listing file: FUZZY11A.lst 

M68HC11 Portable Cross Assembler  0.05  FUZZY11A.ASM  Page 2
 Thu Oct 10 16:08:33 1991  
Options - MD,MC,NOG,NOU,W,NOMEX,CL,FMT,O
 
LINE   S PC   OPCO OPERANDS  S LABEL    MNEMO OPERANDS COMMENT
00001                          *   Fuzzy Logic Inferrence Engine
00002                          *
00003                          *** Data structures and variables
00004                          *
00005                                   opt   mex      
00006  A 0000                           ORG   $0000    ;Beginning of HC11 RAM
00007  A 0000      08        A CURRENT_INS RMB 8       ;Storage for 8 8-bit inputs
00008  A 0008      20        A FUZ_OUTS RMB   32       ;Storage for fuzzy outputs
00009  A 0028      04        A COG_OUTS RMB   4        ;Defuzzified outputs
00010  A 002c      01        A LOWEST_IF RMB  1        ;Holds min grade of IF parts
00011  A 002d      02        A SUM_OF_FUZ RMB 2        ;11-bit sum of fuzzy outs
00012  A 002f      03        A SUM_OF_PROD RMB 3       ;19-bit sum of products
00013  A 0032      01        A COGDEX   RMB   1        ;Current out # for COG loop 0->4
00014  A 0033      01        A SUMDEX   RMB   1        ;Index for sum loop 8->0
00015                          
00016  A b600                           ORG   $B600    Beginning of HC11 EEPROM
00017  A b600      b610      A IN_MF_PTRS FDB IN0MF    ;Addr of MF data for input 0
00018  A b602      b618      A          FDB   IN1MF    ;Addr of MF data for input 1
00019  A b604      b61c      A          FDB   IN2MF    ;Addr of MF data for input 2
00020  A b606      b630      A          FDB   IN3MF    ;Addr of MF data for input 3
00021  A b608      b644      A          FDB   IN4MF    ;Addr of MF data for input 4
00022  A b60a      b644      A          FDB   IN5MF    ;Addr of MF data for input 5
00023  A b60c      b644      A          FDB   IN6MF    ;Addr of MF data for input 6
00024  A b60e      b644      A          FDB   IN7MF    ;Addr of MF data for input 7
00025                          *
00026                          * Input membership functions are defined by four 8-bit values per
00027                          * input label. Up to 8 labels per input so max size of MF data
00028                          * structure is 8*8*4=256 bytes. Unused labels take no space.
00029                          * Membership functions are trapezoids with the base greater than or
00030                          * equal to the top. Values are entered into this program as the
00031                          * X coordinates of 4 points but are stored as 2 points and 2 slopes.
00032                          * 
00033                          ***** MACRO Definition for input membership functions
00034                          *
00035         MACRO DEF        INMF     MACR           ;For input membership functions
00036                              FCB \0                      ;First inflection point
00037                              IFNE \1-\0                    ;Check for divide by zero
00038                               FCB    ($FF+((\1-\0)/3))/(\1-\0) ;If not, calc slope
00039                              ENDC
00040                              IFEQ \1-\0                    ;Check for divide by zero
00041                               FCB    $00                     ;Indicates vertical slope
00042                              ENDC
00043                              FCB \2                      ;Third inflection point
00044                              IFNE \3-\2                    ;Check for divide by zero
00045                               FCB    ($FF+((\3-\2)/3))/(\3-\2) ;If not, calc slope
00046                              ENDC
00047                              IFEQ \3-\2                    ;Check for divide by zero
00048                               FCB    $00                     ;Indicates vertical slope
00049                              ENDC
00050                                   ENDM           
00051                          *   
00052                          *****

M68HC11 Portable Cross Assembler  0.05  FUZZY11A.ASM  Page 3
 Thu Oct 10 16:08:33 1991  
Options - MD,MC,NOG,NOU,W,MEX,CL,FMT,O
 
LINE   S PC   OPCO OPERANDS  S LABEL    MNEMO OPERANDS COMMENT
00053  A b610      b610      A INPUT_MFS EQU  *        ;Input membership functions
00054                          
00055  A b610      b610      A IN0MF    EQU   *        ;(0) ROTATION
00056         MACRO INV                 INMF  0,0,0,8*4 ;  (0) STOPPED
00056 +A b610      00        A          FCB   0        ;First inflection point
00056 +                                 IFNE  0-0      ;Check for divide by zero
00056 +                                 ENDC           
00056 +                                 IFEQ  0-0      ;Check for divide by zero
00056 +A b611      00        A          FCB   $00      ;Indicates vertical slope
00056 +                                 ENDC           
00056 +A b612      00        A          FCB   0        ;Third inflection point
00056 +                                 IFNE  8*4-0    ;Check for divide by zero
00056 +A b613      08        A          FCB   ($FF+((8*4-0)/3))/(8*4-0) ;If not, calc slope
00056 +                                 ENDC           
00056 +                                 IFEQ  8*4-0    ;Check for divide by zero
00056 +                                 ENDC           
00056 +                        
00057         MACRO INV                 INMF  0,8*4,$FF,$FF ;  (1) NOT_STOPPED
00057 +A b614      00        A          FCB   0        ;First inflection point
00057 +                                 IFNE  8*4-0    ;Check for divide by zero
00057 +A b615      08        A          FCB   ($FF+((8*4-0)/3))/(8*4-0) ;If not, calc slope
00057 +                                 ENDC           
00057 +                                 IFEQ  8*4-0    ;Check for divide by zero
00057 +                                 ENDC           
00057 +A b616      ff        A          FCB   $FF      ;Third inflection point
00057 +                                 IFNE  $FF-$FF  ;Check for divide by zero
00057 +                                 ENDC           
00057 +                                 IFEQ  $FF-$FF  ;Check for divide by zero
00057 +A b617      00        A          FCB   $00      ;Indicates vertical slope
00057 +                                 ENDC           
00057 +                        
00058                          
00059  A b618      b618      A IN1MF    EQU   *        ;(1) EXAMPLE1
00060         MACRO INV                 INMF  $20,$40,$60,$A0 ;  (0) TEST1
00060 +A b618      20        A          FCB   $20      ;First inflection point
00060 +                                 IFNE  $40-$20  ;Check for divide by zero
00060 +A b619      08        A          FCB   ($FF+(($40-$20)/3))/($40-$20) ;If not, calc slope
00060 +                                 ENDC           
00060 +                                 IFEQ  $40-$20  ;Check for divide by zero
00060 +                                 ENDC           
00060 +A b61a      60        A          FCB   $60      ;Third inflection point
00060 +                                 IFNE  $A0-$60  ;Check for divide by zero
00060 +A b61b      04        A          FCB   ($FF+(($A0-$60)/3))/($A0-$60) ;If not, calc slope
00060 +                                 ENDC           
00060 +                                 IFEQ  $A0-$60  ;Check for divide by zero
00060 +                                 ENDC           
00060 +                        
00061                          
00062  A b61c      b61c      A IN2MF    EQU   *        ;(2) TEMPERATURE
00063         MACRO INV                 INMF  2*0,2*0,2*40,2*50 ;    (0) COLD
00063 +A b61c      00        A          FCB   2*0      ;First inflection point
00063 +                                 IFNE  2*0-2*0  ;Check for divide by zero

M68HC11 Portable Cross Assembler  0.05  FUZZY11A.ASM  Page 4
 Thu Oct 10 16:08:33 1991  
Options - MD,MC,NOG,NOU,W,MEX,CL,FMT,O
 
LINE   S PC   OPCO OPERANDS  S LABEL    MNEMO OPERANDS COMMENT
00063 +                                 ENDC           
00063 +                                 IFEQ  2*0-2*0  ;Check for divide by zero
00063 +A b61d      00        A          FCB   $00      ;Indicates vertical slope
00063 +                                 ENDC           
00063 +A b61e      50        A          FCB   2*40     ;Third inflection point
00063 +                                 IFNE  2*50-2*40 ;Check for divide by zero
00063 +A b61f      0d        A          FCB   ($FF+((2*50-2*40)/3))/(2*50-2*40) ;If not, calc slope
00063 +                                 ENDC           
00063 +                                 IFEQ  2*50-2*40 ;Check for divide by zero
00063 +                                 ENDC           
00063 +                        
00064         MACRO INV                 INMF  2*40,2*50,2*60,2*70 ;  (1) COOL
00064 +A b620      50        A          FCB   2*40     ;First inflection point
00064 +                                 IFNE  2*50-2*40 ;Check for divide by zero
00064 +A b621      0d        A          FCB   ($FF+((2*50-2*40)/3))/(2*50-2*40) ;If not, calc slope

⌨️ 快捷键说明

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