亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? calc.sdi

?? 一個用仿真單片機為計算器的PROTEUS工程
?? SDI
?? 第 1 頁 / 共 5 頁
字號:
,,,;4 FUNCTION CALCULATOR PROGRAM
,,,;Assumes 1.2MHz Clock for scan timing.
,,,
,,,
,,,
,,,; TODO : Custom Character for the 'M' sign
,,,;        Check instances of multiple decimal point presses ( all covered ?)
,,,
,,,;Reset vector
,,,                org 0000h
0000,02 01 00,,                jmp start
,,,
,,,;Start of the program
,,,                org 0100h
,,,
0100,74 30,start,start:          mov A,#030h                     ;1 line, 8 bits
0102,12 08 A9,,                call wrcmd
0105,74 0C,,                mov A,#LCD_SETVISIBLE + 4
0107,12 08 A9,,                call wrcmd
010A,74 8F,,                mov A,#LCD_SETDDADDR+15         ; Start at right hand side of the display
010C,12 08 A9,,                call wrcmd
010F,74 07,,                mov A,#LCD_SETMODE + 3          ; Automatic Increment - Display shift left.
0111,12 08 A9,,                call wrcmd
,,,
0114,75 25 00,,                mov 025h,#00h                   ; Set output mode (floating point).
,,,
0117,12 10 9C,,                call boundsbuffer               ; Initialise the bounds buffer - used for error chec
011A,75 6E 04,,                mov mode,#4                     ; Initialise the constant buffer to 100. Primarily u
011D,75 6D 31,,                mov digitcode,#031h
0120,12 0E EA,,                call storedigit
0123,75 6D 30,,                mov digitcode,#030h
0126,12 0E EA,,                call storedigit
0129,75 6D 30,,                mov digitcode,#030h
012C,12 0E EA,,                call storedigit
,,,
012F,75 67 00,,                mov status,#00h                 ; variable used to determine the first key press aft
0132,75 6B 00,,                mov bufferctr,#00h
0135,75 6C 00,,                mov opcounter,#00h
0138,75 73 00,,                mov decimalcnt,#00h
013B,12 09 83,,                call waitkey
,,,
013E,75 87 01,halt,halt:           mov PCON,#1                     ;Halt
,,,
,,,
,,,;***********************************************************
,,,;**** Floating Point Package ****
,,,;********************************
,,,
,,,$INCLUDE (FP52.ASM)
,,,; This is a complete BCD floating point package for the 8051 micro-
,,,; controller. It provides 8 digits of accuracy with exponents that
,,,; range from +127 to -127. The mantissa is in packed BCD, while the
,,,; exponent is expressed in pseudo-twos complement. A ZERO exponent
,,,; is used to express the number ZERO. An exponent value of 80H or
,,,; greater than means the exponent is positive, i.e. 80H = E 0,
,,,; 81H = E+1, 82H = E+2 and so on. If the exponent is 7FH or less,
,,,; the exponent is negative, 7FH = E-1, 7EH = E-2, and so on.
,,,; ALL NUMBERS ARE ASSUMED TO BE NORMALIZED and all results are
,,,; normalized after calculation. A normalized mantissa is >=.10 and
,,,; <=.99999999.
,,,;
,,,; The numbers in memory assumed to be stored as follows:
,,,;
,,,; EXPONENT OF ARGUMENT 2   =   VALUE OF ARG_STACK+FP_NUMBER_SIZE
,,,; SIGN OF ARGUMENT 2       =   VALUE OF ARG_STACK+FP_NUMBER_SIZE-1
,,,; DIGIT 78 OF ARGUMENT 2   =   VALUE OF ARG_STACK+FP_NUMBER_SIZE-2
,,,; DIGIT 56 OF ARGUMENT 2   =   VALUE OF ARG_STACK+FP_NUMBER_SIZE-3
,,,; DIGIT 34 OF ARGUMENT 2   =   VALUE OF ARG_STACK+FP_NUMBER_SIZE-4
,,,; DIGIT 12 OF ARGUMENT 2   =   VALUE OF ARG_STACK+FP_NUMBER_SIZE-5
,,,;
,,,; EXPONENT OF ARGUMENT 1   =   VALUE OF ARG_STACK
,,,; SIGN OF ARGUMENT 1       =   VALUE OF ARG_STACK-1
,,,; DIGIT 78 OF ARGUMENT 1   =   VALUE OF ARG_STACK-2
,,,; DIGIT 56 OF ARGUMENT 1   =   VALUE OF ARG_STACK-3
,,,; DIGIT 34 OF ARGUMENT 1   =   VALUE OF ARG_STACK-4
,,,; DIGIT 12 OF ARGUMENT 1   =   VALUE OF ARG_STACK-5
,,,;
,,,; The operations are performed thusly:
,,,;
,,,; ARG_STACK+FP_NUMBER_SIZE = ARG_STACK+FP_NUMBER_SIZE # ARG_STACK
,,,;
,,,; Which is ARGUMENT 2 = ARGUMENT 2 # ARGUMENT 1
,,,;
,,,; Where # can be ADD, SUBTRACT, MULTIPLY OR DIVIDE.
,,,;
,,,; Note that the stack gets popped after an operation.
,,,;
,,,; The FP_COMP instruction POPS the ARG_STACK TWICE and returns status.
,,,;
,,,;**********************************************************************
,,,;
,,,$EJECT
,,,;**********************************************************************
,,,;
,,,; STATUS ON RETURN - After performing an operation (+, -, *, /)
,,,;                    the accumulator contains the following status
,,,;
,,,; ACCUMULATOR - BIT 0 - FLOATING POINT UNDERFLOW OCCURED
,,,;
,,,;             - BIT 1 - FLOATING POINT OVERFLOW OCCURED
,,,;
,,,;             - BIT 2 - RESULT WAS ZER0
,,,;
,,,;             - BIT 3 - DIVIDE BY ZERO ATTEMPTED
,,,;
,,,;             - BIT 4 - NOT USED, 0 RETURNED
,,,;
,,,;             - BIT 5 - NOT USED, 0 RETURNED
,,,;
,,,;             - BIT 6 - NOT USED, 0 RETURNED
,,,;
,,,;             - BIT 7 - NOT USED, 0 RETURNED
,,,;
,,,; NOTE: When underflow occures, a ZERO result is returned.
,,,;       When overflow or divide by zero occures, a result of
,,,;       .99999999 E+127 is returned and it is up to the user
,,,;       to handle these conditions as needed in the program.
,,,;
,,,; NOTE: The Compare instruction returns F0 = 0 if ARG 1 = ARG 2
,,,;       and returns a CARRY FLAG = 1 if ARG 1 is > ARG 2
,,,;
,,,;***********************************************************************
,,,;
,,,$EJECT
,,,;***********************************************************************
,,,;
,,,; The following values MUST be provided by the user
,,,;
,,,;***********************************************************************
,,,;
,,,ARG_STACK_PAGE  EQU     01h     ;External memory page for arg stack
,,,ARG_STACK       EQU     24H     ;ARGUMENT STACK POINTER
,,,FORMAT          EQU     25H     ;LOCATION OF OUTPUT FORMAT BYTE
,,,;OUTPUT         EQU     R5OUT   ;CALL LOCATION TO OUTPUT A CHARACTER in R5
,,,CONVT           EQU     0048H   ;String addr TO CONVERT NUMBERS
000B,,,INTGRC          BIT     26H.1   ;BIT SET IF INTEGER ERROR
000B,,,ADD_IN          BIT     26H.3   ;DCMPXZ IN BASIC BACKAGE
000B,,,ZSURP           BIT     26H.6   ;ZERO SUPRESSION FOR HEX PRINT
,,,;
,,,;***********************************************************************
,,,;
,,,; The following equates are used internally
,,,;
,,,;***********************************************************************
,,,;
,,,FP_NUMBER_SIZE  EQU     6
,,,DIGIT           EQU     FP_NUMBER_SIZE-2
,,,R0B0            EQU     0
,,,R1B0            EQU     1
,,,UNDERFLOW       EQU     0
,,,OVERFLOW        EQU     1
,,,ZERO            EQU     2
,,,ZERO_DIVIDE     EQU     3
,,,;
,,,;***********************************************************************
,,,$EJECT
,,,        ;**************************************************************
,,,        ;
,,,        ; The following internal locations are used by the math pack
,,,        ; ordering is important and the FP_DIGITS must be bit
,,,        ; addressable
,,,        ;
,,,        ;***************************************************************
,,,        ;
,,,FP_STATUS       EQU     28H             ;NOT used data pointer me
,,,FP_TEMP         EQU     FP_STATUS+1     ;NOT USED
,,,FP_CARRY        EQU     FP_STATUS+2     ;USED FOR BITS
,,,FP_DIG12        EQU     FP_CARRY+1
,,,FP_DIG34        EQU     FP_CARRY+2
,,,FP_DIG56        EQU     FP_CARRY+3
,,,FP_DIG78        EQU     FP_CARRY+4
,,,FP_SIGN         EQU     FP_CARRY+5
,,,FP_EXP          EQU     FP_CARRY+6
000B,,,MSIGN           BIT     FP_SIGN.0
000B,,,XSIGN           BIT     FP_CARRY.0
000B,,,FOUND_RADIX     BIT     FP_CARRY.1
000B,,,FIRST_RADIX     BIT     FP_CARRY.2
000B,,,DONE_LOAD       BIT     FP_CARRY.3
,,,FP_NIB1         EQU     FP_DIG12
,,,FP_NIB2         EQU     FP_NIB1+1
,,,FP_NIB3         EQU     FP_NIB1+2
,,,FP_NIB4         EQU     FP_NIB1+3
,,,FP_NIB5         EQU     FP_NIB1+4
,,,FP_NIB6         EQU     FP_NIB1+5
,,,FP_NIB7         EQU     FP_NIB1+6
,,,FP_NIB8         EQU     FP_NIB1+7
,,,FP_ACCX         EQU     FP_NIB1+8
,,,FP_ACCC         EQU     FP_NIB1+9
,,,FP_ACC1         EQU     FP_NIB1+10
,,,FP_ACC2         EQU     FP_NIB1+11
,,,FP_ACC3         EQU     FP_NIB1+12
,,,FP_ACC4         EQU     FP_NIB1+13
,,,FP_ACC5         EQU     FP_NIB1+14
,,,FP_ACC6         EQU     FP_NIB1+15
,,,FP_ACC7         EQU     FP_NIB1+16
,,,FP_ACC8         EQU     FP_NIB1+17
,,,FP_ACCS         EQU     FP_NIB1+18
,,,        ;
,,,$EJECT
,,,
000C,,,FP_BASE         EQU     $
,,,
,,,        ;**************************************************************
,,,        ;
,,,        ; The floating point entry points and jump table
,,,        ;
,,,        ;**************************************************************
,,,        ;
0141,21 71,,        AJMP    FLOATING_ADD
0143,21 67,,        AJMP    FLOATING_SUB
0145,41 24,,        AJMP    FLOATING_COMP
0147,41 55,,        AJMP    FLOATING_MUL
0149,41 8A,,        AJMP    FLOATING_DIV
014B,81 51,,        AJMP    HEXSCAN
014D,81 8A,,        AJMP    FLOATING_POINT_INPUT
014F,A1 42,,        AJMP    FLOATING_POINT_OUTPUT
0151,C1 BF,,        AJMP    CONVERT_BINARY_TO_ASCII_STRING
0153,C1 66,,        AJMP    CONVERT_ASCII_STRING_TO_BINARY
0155,C1 9B,,        AJMP    MULNUM10
0157,E1 07,,        AJMP    HEXOUT
,,,;
,,,; the remaining jump to routines were extracted from basic52
,,,; by me to make the floating point software stand alone
,,,;
0159,81 7E,,        AJMP    PUSHR2R0                        ; INTEGER to FLOAT
015B,E1 4C,,        AJMP    IFIX                            ; FLOAT to INTEGER
015D,E1 8D,,        AJMP    PUSHAS                          ; PUSH R2:R0 TO ARGUMENT
015F,E1 89,,        AJMP    POPAS                           ; POP ARGUMENT TO R3:R1
0161,E1 AA,,        AJMP    MOVAS                           ; COPY ARGUMENT
0163,E1 CE,,        AJMP    AINT                            ; INT FUNCTION
0165,E1 F6,,        AJMP    PUSHC                           ; PUSH ARG IN DPTR TO STACK
,,,        ;
,,,$EJECT
,,,        ;
0167,,FLOATING_SUB,FLOATING_SUB:
,,,        ;
0167,75 A0 01,,        MOV     P2,#ARG_STACK_PAGE
016A,A8 24,,        MOV     R0,ARG_STACK
016C,18,,        DEC     R0              ;POINT TO SIGN
016D,E2,,        MOVX    A,@R0           ;READ SIGN
016E,B2 E0,,        CPL     ACC.0
0170,F2,,        MOVX    @R0,A
,,,        ;
,,,        ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
,,,        ;
0171,,FLOATING_ADD,FLOATING_ADD:
,,,        ;
,,,        ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
,,,        ;
,,,        ;
0171,91 32,,        ACALL   MDES1           ;R7=TOS EXP, R6=TOS-1 EXP, R4=TOS SIGN
,,,                                ;R3=TOS-1 SIGN, OPERATION IS R1 # R0
,,,        ;
0173,EF,,        MOV     A,R7            ;GET TOS EXPONENT
0174,60 0D,,        JZ      POP_AND_EXIT    ;IF TOS=0 THEN POP AND EXIT
0176,BE 00 12,,        CJNE    R6,#0,LOAD1     ;CLEAR CARRY EXIT IF ZERO
,,,        ;
,,,        ;**************************************************************
,,,        ;
0179,,SWAP_AND_EXIT,SWAP_AND_EXIT:  ; Swap external args and return
,,,        ;
,,,        ;**************************************************************
,,,        ;
0179,91 26,,        ACALL   LOAD_POINTERS
017B,7F 06,,        MOV     R7,#FP_NUMBER_SIZE
,,,        ;
017D,E2,SE1,SE1:    MOVX    A,@R0           ;SWAP THE ARGUMENTS
017E,F3,,        MOVX    @R1,A
017F,18,,        DEC     R0
0180,19,,        DEC     R1
0181,DF FA,,        DJNZ    R7,SE1
,,,        ;
0183,,POP_AND_EXIT,POP_AND_EXIT:
,,,        ;
0183,E5 24,,        MOV     A,ARG_STACK     ;POP THE STACK
0185,24 06,,        ADD     A,#FP_NUMBER_SIZE
0187,F5 24,,        MOV     ARG_STACK,A
0189,E4,,        CLR     A
018A,22,,        RET
,,,        ;
,,,        ;
018B,9E,LOAD1,LOAD1:  SUBB    A,R6            ;A = ARG 1 EXP - ARG 2 EXP
018C,8F 30,,        MOV     FP_EXP,R7       ;SAVE EXPONENT AND SIGN
018E,8C 2F,,        MOV     FP_SIGN,R4
0190,50 09,,        JNC     LOAD2           ;ARG1 EXPONENT IS LARGER OR SAME
0192,8E 30,,        MOV     FP_EXP,R6
0194,8B 2F,,        MOV     FP_SIGN,R3
0196,F4,,        CPL     A
0197,04,,        INC     A               ;COMPENSATE FOR EXP DELTA
0198,C8,,        XCH     A,R0            ;FORCE R0 TO POINT AT THE LARGEST
0199,C9,,        XCH     A,R1            ;EXPONENT
019A,C8,,        XCH     A,R0
,,,        ;
019B,FF,LOAD2,LOAD2:  MOV     R7,A            ;SAVE THE EXPONENT DELTA IN R7
019C,C2 33,,        CLR     ADD_IN
019E,BD 00 02,,        CJNE    R5,#0,$+5
01A1,D2 33,,        SETB    ADD_IN
,,,        ;
,,,$EJECT
,,,        ; Load the R1 mantissa
,,,        ;
01A3,91 43,,        ACALL   LOADR1_MANTISSA ;LOAD THE SMALLEST NUMBER
,,,        ;
,,,        ; Now align the number to the delta exponent
,,,        ; R4 points to the string of the last digits lost
,,,        ;
01A5,BF 0B 00,,        CJNE    R7,#DIGIT+DIGIT+3,$+3
01A8,40 02,,        JC      $+4
01AA,7F 0A,,        MOV     R7,#DIGIT+DIGIT+2
,,,        ;
01AC,75 2A 00,,        MOV     FP_CARRY,#00    ;CLEAR THE CARRY
01AF,71 83,,        ACALL   RIGHT           ;SHIFT THE NUMBER
,,,        ;
,,,        ; Set up for addition and subtraction
,,,        ;
01B1,7F 04,,        MOV     R7,#DIGIT       ;LOOP COUNT
01B3,79 2E,,        MOV     R1,#FP_DIG78
01B5,74 9E,,        MOV     A,#9EH
01B7,C3,,        CLR     C
01B8,9C,,        SUBB    A,R4

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉久久夜色精品国产使用方法| 国产女人aaa级久久久级| 精品国产三级电影在线观看| 欧美激情一区二区三区不卡| 国产精品久久久久永久免费观看| 亚洲女同女同女同女同女同69| 日韩精品专区在线| 国产精品国产馆在线真实露脸| 日韩国产精品久久久| heyzo一本久久综合| 欧美人与性动xxxx| 亚洲欧美日韩在线不卡| 国产一区二区美女| 欧美精品日韩精品| 亚洲精品自拍动漫在线| 国产精品综合网| 在线综合视频播放| 一区二区三区中文在线观看| 国产福利精品一区| 久久网站热最新地址| 日日摸夜夜添夜夜添精品视频| 色国产精品一区在线观看| 久久精品视频在线看| 久久国产三级精品| 欧美电影免费观看高清完整版在线| 国产精品久久久久影院| 一区二区三区精品| 欧美成人性战久久| 亚洲精品美国一| 国产高清成人在线| 久久久久88色偷偷免费 | 国产suv一区二区三区88区| 欧美一级免费观看| 视频一区视频二区中文字幕| 欧美日韩国产精品成人| 亚洲成av人片观看| 欧美日本国产视频| 日韩高清不卡一区二区三区| 欧美日韩精品一区二区三区四区 | 在线观看免费亚洲| 中文字幕佐山爱一区二区免费| 国产91精品入口| 国产精品免费久久| www.亚洲色图.com| 日韩伦理电影网| 91在线视频播放地址| 亚洲少妇30p| 午夜精品久久久久久久99樱桃| 久久久久国产精品麻豆ai换脸| 日韩黄色免费电影| 69久久夜色精品国产69蝌蚪网| 日日骚欧美日韩| 精品欧美久久久| 国产美女主播视频一区| 中文字幕 久热精品 视频在线| 成人高清视频免费观看| 亚洲视频网在线直播| 欧美日韩黄色一区二区| 麻豆久久久久久| 久久久久久久久久久电影| 成人黄色国产精品网站大全在线免费观看 | 一区二区成人在线| 欧美色倩网站大全免费| 男人的j进女人的j一区| 欧美羞羞免费网站| 亚洲国产综合色| 欧美激情中文不卡| 国产98色在线|日韩| 亚洲激情av在线| 538prom精品视频线放| 国产精品一区二区久久不卡 | 一本色道久久综合亚洲91| 亚洲成人av在线电影| 欧美刺激午夜性久久久久久久| 国产91富婆露脸刺激对白| 一区二区三区在线视频免费观看| 91精品国产综合久久久久久漫画| 国产成人av影院| 亚洲电影一区二区三区| 精品国产区一区| 欧美中文字幕不卡| 国产精品一区三区| 亚洲自拍欧美精品| 成人欧美一区二区三区黑人麻豆| 日韩免费视频一区二区| 亚洲欧美视频在线观看| 国产在线观看一区二区| 亚洲欧美色综合| 久久影院午夜片一区| 欧美亚洲国产一区二区三区| 国产很黄免费观看久久| 五月开心婷婷久久| 中文字幕一区二区三| 精品日韩av一区二区| 在线观看国产一区二区| 成人sese在线| 国产一区二区91| 日韩av在线发布| 一区二区三区在线视频观看 | 日韩影院精彩在线| 亚洲欧美一区二区久久 | 国产成人亚洲精品狼色在线| 五月天中文字幕一区二区| 国产视频911| 99精品视频在线播放观看| 亚洲欧洲成人自拍| 欧美日韩国产精选| 色综合一个色综合亚洲| 成人ar影院免费观看视频| 国产乱人伦偷精品视频免下载| 男女男精品视频| 亚洲mv在线观看| 天天综合天天做天天综合| 亚洲精品成人少妇| 日韩美女精品在线| 最新久久zyz资源站| 国产精品美女久久久久久久网站| 久久久久久黄色| 久久综合九色综合欧美就去吻| 日韩一区二区在线看| 91精品国产综合久久小美女| 风间由美一区二区三区在线观看| 国产精一区二区三区| 国产麻豆9l精品三级站| 国产精品一级二级三级| 国产91精品免费| 97久久久精品综合88久久| 91麻豆国产自产在线观看| 久久久精品欧美丰满| 91精品一区二区三区久久久久久 | 欧美性视频一区二区三区| 91视频观看视频| 日本韩国精品在线| 在线观看欧美日本| 欧美区视频在线观看| 日韩欧美国产1| 国产天堂亚洲国产碰碰| 国产精品久线在线观看| 一区二区三区自拍| 亚洲成a人v欧美综合天堂| 日韩高清一区二区| 国产黄色成人av| 91亚洲精品久久久蜜桃网站| 欧美亚洲国产一区在线观看网站| 欧美一卡二卡三卡四卡| 久久久精品免费免费| 亚洲欧美日韩久久精品| 亚洲www啪成人一区二区麻豆| 精品一区二区三区免费| 粉嫩嫩av羞羞动漫久久久| 欧美丝袜丝交足nylons图片| 日韩美女在线视频| 椎名由奈av一区二区三区| 日韩avvvv在线播放| 国产成人精品三级麻豆| 亚洲色图欧美在线| 国产精品性做久久久久久| 日韩精品五月天| 国产呦萝稀缺另类资源| 92精品国产成人观看免费| 欧美一级午夜免费电影| 国产精品免费aⅴ片在线观看| 日日摸夜夜添夜夜添国产精品| 国产美女娇喘av呻吟久久| 在线观看一区二区视频| 精品国产乱子伦一区| 夜夜亚洲天天久久| 国产成人亚洲综合色影视| 欧美日韩美少妇| 中文久久乱码一区二区| 美女在线观看视频一区二区| 播五月开心婷婷综合| 欧美不卡视频一区| 亚洲午夜一二三区视频| 国产成人三级在线观看| 91精品国产综合久久久久久久久久 | 久久精品夜色噜噜亚洲a∨| 亚洲高清视频中文字幕| 国产成人av电影在线| 日韩女优av电影在线观看| 洋洋成人永久网站入口| 国产ts人妖一区二区| 精品国产乱码久久久久久浪潮| 亚洲电影在线免费观看| 91在线高清观看| 国产日韩高清在线| 久久超碰97人人做人人爱| 欧美日韩在线精品一区二区三区激情| 中文无字幕一区二区三区| 国产乱淫av一区二区三区| 日韩一区二区三区免费看| 亚洲一卡二卡三卡四卡五卡| 91美女在线视频| 自拍偷拍亚洲欧美日韩| 成人午夜电影久久影院| 久久久欧美精品sm网站| 奇米在线7777在线精品| 欧美日韩不卡在线| 亚洲午夜成aⅴ人片| 在线视频欧美区|