新闻中心

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

评论


技术专区