新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機匯編指令入門學習和查看

        單片機匯編指令入門學習和查看

        作者: 時間:2016-11-25 來源:網絡 收藏
        ORL A,R5 ; A與R5內容或
        ORL A,R6 ; A與R6內容或
        ORL A,R7 ; A與R7內容或
        JNC L0017 ;進位為0轉移
        ACALL L0017 ;絕對調用
        ANL 02H,A ; 直接地址與A與
        ANL 02H,#02H ; 立即數與直接地址與
        ANL A,#02H ; A與立即數與
        ANL A,02H ;A與直接地址與
        ANL A,@R0 ; A與R0間址與
        ANL A,@R1 ; A與R1間址與
        ANL A,R0 ; A與R0與
        ANL A,R1 ; A與R1與
        ANL A,R2 ; A與R2與
        ANL A,R3 ; A與R3與
        ANL A,R4 ; A與R4與
        ANL A,R5 ; A與R5與
        ANL A,R6 ; A與R6與
        ANL A,R7 ; A與R7與
        JZ L0084 ;A為零轉移
        L0084: AJMP L0017 ;絕對轉移
        XRL 01H,A ;直接地址與A異或
        XRL 02H,#01H ; 直接地址與立即數異或
        XRL A,#01H ;A與立即數異或
        XRL A,01H ; A與直接地址異或
        XRL A,@R0 ; A與R0間址址異或
        XRL A,@R1 ; A與R1間址址異或
        XRL A,R0 ; A與R0異或
        XRL A,R1 ; A與R1異或
        XRL A,R2 ; A與R2異或
        XRL A,R3 ; A與R3異或
        XRL A,R4 ; A與R4異或
        L0095: XRL A,R5 ; A與R5異或
        XRL A,R6 ; A與R6異或
        XRL A,R7 ; A與R7異或
        JNZ L0084 ;A不為零轉
        L009A: ACALL L0084 ;絕對調用
        ORL C,01H ;直接位或到進位
        JMP @A+DPTR;相對于DPTR間接轉
        MOV A,#01H ;立即數送A
        MOV 01H,#02H ;立即數送直接地址
        MOV @R0,#01H ;立即數送間址R0
        MOV @R1,#02H ; 立即數送間址R1
        MOV R0,#01H ; 立即數送R0
        MOV R1,#01H ; 立即數送R1
        MOV R2,#01H ; 立即數送R2
        MOV R3,#01H ; 立即數送R3
        MOV R4,#01H ; 立即數送R4
        MOV R5,#01H ; 立即數送R5
        MOV R6,#01H ; 立即數送R6
        MOV R7,#01H ; 立即數送R7
        SJMP L00BA ;短轉移
        L00BA: AJMP L0095 ;絕對轉移
        ANL C,02H ;直接地址與進位與
        ORG 00C0H ;
        MOV 02H,01H ;直接地址送直接地址
        MOV 01H,@R0;間址R0送直接地址
        MOV 01H,@R1; 間址R1送直接地址
        MOV 01H,R0 ; R0送直接地址
        MOV 01H,R1 ; R1送直接地址
        MOV 01H,R2 ; R2送直接地址
        MOV 01H,R3 ; R3送直接地址
        MOV 01H,R4 ; R4送直接地址
        MOV 01H,R5 ; R5送直接地址
        MOV 01H,R6 ; R6送直接地址
        MOV 01H,R7 ; R7送直接地址
        NOP
        MOV DPTR,#1234H;建立數據指針地址為1234H
        ACALL L00BA ;絕對調用
        MOV 03H,C ;進位送03H位(即20H的03位)
        MOVC A,@A+DPTR ;由A+DPTR尋扯的程序存貯器字節送A
        SUBB A,#01H ;A減去立即數和進位位
        SUBB A,02H ; A減去直接地址內容和進位位
        SUBB A,@R0 ; A減去R0間接RAM和進位位
        SUBB A,@R1 ; A減去R1間接RAM和進位位
        SUBB A,R0 ; A減去R0和進位位
        SUBB A,R1 ; A減去R1和進位位
        SUBB A,R2 ; A減去R2和進位位
        SUBB A,R3 ; A減去R3和進位位
        SUBB A,R4 ; A減去R4和進位位
        SUBB A,R5 ; A減去R5和進位位
        SUBB A,R6 ; A減去R6和進位位
        SUBB A,R7 ; A減去R7和進位位
        ORL C,/00H ;直接位的反或到進位
        AJMP L0084 ;絕對轉移
        MOV C,03H ;直接位數送進位
        INC DPTR ;數據指針加1
        MUL AB ;A乘以B
        NOP ;A5H為二字節空操作指令
        NOP
        MOV @R0,05H ;直接字芯送R0間接RAM
        MOV @R1,05H ; 直接字芯送R1間接RAM
        MOV R0,05H ; 直接字芯送R0
        MOV R1,05H ; 直接字芯送R1
        S0100: MOV R2,05H ; 直接字芯送R2
        MOV R3,05H ; 直接字芯送R3
        MOV R4,05H ; 直接字芯送R4
        MOV R5,05H ; 直接字芯送R5
        MOV R6,05H ; 直接字芯送R6
        MOV R7,05H ; 直接字芯送R7
        ANL C,/04H ; 直接位的反與到進位
        ACALL S0100 ;絕對調用
        CPL 04H ;直接位取反
        CPL C ;進位取反
        CJNE A,#01H,L0139 ;立即數與A比較,不相等則轉移
        CJNE A,01H,L0139 ; 直接字節與A比較,不相等則轉移
        CJNE @R0,#01H,L0139 ; 立即數與R0間接RAM比較,不相等則轉移
        CJNE @R1,#01H,L0139 ; 立即數與R1間接RAM比較,不相等則轉移
        CJNE R0,#01H,L0139 ; 立即數與R0比較,不相等則轉移
        CJNE R1,#01H,L0139 ; 立即數與R1比較,不相等則轉移
        CJNE R2,#01H,L0139 ; 立即數與R2比較,不相等則轉移
        CJNE R3,#01H,L0139 ; 立即數與R3比較,不相等則轉移
        CJNE R4,#01H,L0139 ; 立即數與R4比較,不相等則轉移
        CJNE R5,#01H,L0139 ; 立即數與R5比較,不相等則轉移
        CJNE R6,#01H,L0139 ; 立即數與R6比較,不相等則轉移
        CJNE R7,#01H,L0139 ; 立即數與R7比較,不相等則轉移
        PUSH 00H ;直接字節進棧,SP加1
        L0139: AJMP L0084 ;絕對轉移
        CLR 04H ;直接位清零
        CLR C ;清零進位
        SWAP A ;A左環移四位(A的二個半字節交換)
        XCH A,05H ;交換A和直接字節
        XCH A,@R0 ; 交換A和R0間接RAM
        XCH A,@R1 ; 交換A和R1間接RAM
        XCH A,R0 ; 交換A和R0
        XCH A,R1 ; 交換A和R1
        XCH A,R2 ; 交換A和R2
        XCH A,R3 ; 交換A和R3
        XCH A,R4 ; 交換A和R4
        XCH A,R5 ; 交換A和R5
        XCH A,R6 ; 交換A和R6
        XCH A,R7 ; 交換A和R7
        POP 00H ;直接字節出棧,SP減1
        ACALL L0139 ;絕對調用
        SETB 03H ;置位直接位
        SETB C ;置位進位
        DA A ;A的十進制加法調熊
        DJNZ 01H,L0139 ;直接字節減1,不為零則轉移
        XCHD A,@R0 ;交換A和R0間接RAM的低4位
        XCHD A,@R1 ; 交換A和R1間接RAM的低4位
        L0158: DJNZ R0,L0139 ; R0減1,不為零則轉移
        DJNZ R1,L0158 ; R1減1,不為零則轉移
        DJNZ R2,L0158 ; R2減1,不為零則轉移
        DJNZ R3,L0158 ; R3減1,不為零則轉移
        DJNZ R4,L0158 ; R4減1,不為零則轉移
        DJNZ R5,L0158 ; R5減1,不為零則轉移
        DJNZ R6,L0158 ; R6減1,不為零則轉移
        DJNZ R7,L0158 ; R7減1,不為零則轉移
        MOVX A,@DPTR ;外部數據(16位地址)送A
        L0169: NOP
        AJMP L0139 ;絕對轉移
        MOVX A,@R0 ;R0間址即外部數據(8位地址)送A
        MOVX A,@R1 ; R1間址即外部數據(8位地址)送A
        CLR A ;清零A
        MOV A,05H ;直接字節送A
        MOV A,@R0 ;R0間接RAM送A
        MOV A,@R1 ; R1間接RAM送A
        MOV A,R0 ; R0送A
        MOV A,R1 ; R1送A
        MOV A,R2 ; R2送A
        MOV A,R3 ; R3送A
        MOV A,R4 ; R4送A
        MOV A,R5 ; R5送A
        MOV A,R6 ; R6送A
        MOV A,R7 ; R7送A
        MOVX @DPTR,A ;A送外部數據(16位地址)
        NOP
        ACALL L0169 ;絕對調用
        MOVX @R0,A ;A送R0間址即外部數據(8位地址)
        MOVX @R1,A ; A送R1間址即外部數據(8位地址)
        CPL A ;A取反
        MOV 05H,A ;A送直接字節
        MOV @R0,A ; A送R0間址即間接RAM
        MOV @R1,A ; A送R1間址即間接RAM
        MOV R0,A ; A送R0
        MOV R1,A ; A送R1
        MOV R2,A ; A送R2
        MOV R3,A ; A送R3
        MOV R4,A ; A送R4
        MOV R5,A ; A送R5
        MOV R6,A ; A送R6
        MOV R7,A ; A送R7

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 博爱县| 金沙县| 曲沃县| 海宁市| 鄂伦春自治旗| 静乐县| 广昌县| 麦盖提县| 龙川县| 云南省| 蕲春县| 巴塘县| 山阳县| 鲁甸县| 白水县| 英山县| 安远县| 遵化市| 萨迦县| 广州市| 龙井市| 河北省| 临洮县| 全南县| 酒泉市| 翁源县| 汉沽区| 炎陵县| 石泉县| 霍林郭勒市| 巴里| 穆棱市| 自贡市| 周至县| 南涧| 正定县| 长子县| 霍邱县| 贵溪市| 高青县| 施甸县|