义隆单片机指令集

更新时间:2023-06-15 01:02:27 阅读: 评论:0

义隆单⽚机指令集
隆单⽚机指令系统
3.1.EM78指令概述
EM78156 & EM78P156 单⽚机共有的58 条指令,其宽度为13 位。每⼀个指令码可分割成两部份,第⼀部分为标⽰指令功能的运算码(OPCODE ),第⼆部份則指出运算时所需之參数,亦即运算码(OPERAND )。⽽指令的类型⼤致可分为下列四种:
(1)控制型指令(control operation ):如等等。
(2)⾯向寄存器(字节操作)型指令(register oriented ):如
MOV A, Reg_B ;move Reg_B to A
ADD Reg_B, A ;add Reg_B with A, and
;save in Reg_B ... 等等。
(3)位操作型指令(bit oriented ):如
韩国奥运会主题曲
BC,等等。
(4)常数型指令(constant operation ):如
MOV A, @0x55 ;move 0x55 to A
XOR @0xFF ;Xor A with 0xFF
⼀般⽽⾔,EM78 系列⼋位微控制器除⼀个指令需两个周期之外,其他的指令只需⼀个指令周期,除了对PC (Program Counter)做“写”的指令,需⼆个指令周期,如(MOV PC, A)。
3.2.EMC 汇编语⾔指令集
符号解说:
1.符号‘R’:代表⼀般⽤途寄存器中的其中⼀个。
2.符号‘B’:代表⼀般⽤途寄存器中的某⼀位。
3.符号‘K’:代表8位或10位的常数或内容。
4.符号‘A’:代表累加寄存器。
3.2.1. ⾯向寄存器(字节操作)型指令(26条)
delicacy
助记符号指令动作标志影响指令周期语⾔描述
ADD A,R A+R->A Z,C,DC 1 ADD
ADD R,A A+R->R Z,C,DC 1 ADD
AND A,R A&R->A Z 1 AND
AND R,A A&R->R Z 1 AND
CLR R 0->R Z 1 Clear Register
CLRA 0->A Z 1 Clear the A register
COM R /R->R Z 1 Complement R
助记符号指令动作标志影响指令周期语⾔描述
COMA R /R->A Z 1 Complement R,Place in A
DAA A寄存器调整为BCD值 C 1 Decimal Adjust
DEC R R-1->R Z 1 Decrement R
DECA R R-1->A Z 1 Decrement R,Place in A
DJZ R R-1->R 结果为零就跳过下⼀个指令 1 Decrement R,Skip if 0
DJZA R R-1->A 结果为零就跳过下⼀个指令 1 Decrement R,Plea in A register, Skip if 0 INC R R+1->R Z 1 Increment R INCA R R+1->A Z 1 Increment R,Plea in A
JZ R R+1->R, 结果为零就跳过下⼀个指令 1 Increment R,Skip if 0
JZA R R+1->A, 结果为零就跳过下⼀个指令 1 Increment R,Place in the A regir,Skipif 0
MOV R,A A->R 1 Move Data
MOV A,R R->A Z 1 Move Data
MOV R,R R->R Z 1 Move Data
OR A,R A OR R ->A Z 1 Inclusive OR
OR R,A A OR R->R Z 1 Inclusive OR
SUB A,R R-A->A Z,C,DC 1 Subtract
SUB R,A R-A->R Z,C,DC 1 Subtract
XOR A,R A XOR R->A Z 1 Exclusive OR
英语课堂教学评价XOR R,A A XOR R->R Z 1 Exclusive OR
3.2.2. ⾯向位操作类指令(10条)
助记符号指令动作标志影响指令周期语⾔描述
BC R,B 0->R(B) 1 Bit Clear
BS R,B 1->R(B) 1 Bit Set
JBC R,B 如果R(B)=0,则跳过下⼀个指令 1 Bit Test, Skip if Clear JBS R,B 如果R(B)=1,则跳过下⼀个指令 1 Bit Test, Skip if Set RLC R R(N)->R(N+1) R(7)->C
C->R(0) C 1 Rotate Left R through Carry
RLCA R R(N)->A(N+1) R(7)->C
C->A(0) C 1 Rotate Left R through Carry,Place in the A Register RRC R R(N)->R(N-1) R(0)->C
C->R(7) C 1 Rotate Right R through Carry
助记符号指令动作标志影响指令周期语⾔描述
RRCA R R(N)->A(N-1) R(0)->C
C->A(7) C 1 Rotate Right R through Carry,Place in the A Register SWAP R R(0-3)->R(4-7) R(4-7)->R(0-3) 1 Swap R SWAPA R R(0-3)->A(4-7) R(4-7)->A(0-3) 1 Swap R
3.2.3. 常数操作和控制类指令(22条)
entive助记符号指令动作标志影响指令周期语⾔描述
ADD A,K A+K->A Z,C,DC 1 ADD
AND A,K A&K->A Z 1 AND
CALL K PC+1->[SP] (PAGE,K)->PC 1 Subroutine Call CONTR CONT->A 1 Move CONT to the A register
CONTW A->CONT 1 Move A to CONT
DISI 禁⽌中断 1 Disable Interrupt
ENI 使能中断 1 Enable Interrupt
INT PC+1->[SP] 001H->PC 1 Software interrupt
IOR R IOCR->A 1 Move IOCR to the A register
IOW R A->IOCR 1 Move A to IOCR
JMP K (PAGE,K)->PC 1 Unconditional Branch
MOV A,K K->A 1 Move Data
NOP 1 No Operation
OR A,K A OR K->A Z 1 Inclusive OR
RET [堆栈顶端]->PC 1 Return from Subroutine
RETI [堆栈顶端]->PC,使能中断 1 Return from Interrupt
RETL K K->A, [堆栈顶端]->PC Return Immediate Data to the A Register
SLEP 0->WDT , 振荡器停⽌振荡T,P 1 Into Sleep mode
SUB A,K K-A->A Z,C,DC 1 Subtract
TBL PC+A->PC Z,C,DC 2 Table Look Up
crispsWDTC 0->WDT T,P 1 Clear Watchdog Timer
XOR A,K A XOR K->A Z 1 Exclusive OR
3.3.EM78指令寻址⽅式
关于对寄存器的存取,必须要先说明寄存器的位址,说明暂存的位址的⽅式称做寻址⽅式,EM78的寻址⽅式有两种,⼀种为直接寻址,⼀种为间接寻址。
3.3.1. ⽴即数寻址
这种⽅式就是操作数为⽴即数,可直接从指令中获取。
例:MOV A,@0x16 ;将常数0x16送给寄存器A
3.3.2. 直接寻址
若是使⽤者要存取寄存器的内容,可以在运算码上直接描述。
例:将寄存器0X20的内容,COPY到寄存器0X21中。
MOV A, 0X20 MOV 0X21, A
3.3.3. 间接寻址
这种寻址⽅式是通过寄存器R4来实现的,R4的bit0-5是⽤来选择寄存器(地址:00-06,0F-3F)
若是使⽤者所需要存取的寄存器,有位址相邻的特性,使⽤间接寻址是很⽅便的。
例:写⼀个程序,將寄存器0X20~0X3F的值都填0。
;设定A = 0X20。
设定间接寻址寄存器(0X04)
;的內含值为0X20
;清除0X04所指的寄存器。
;递增间接寻址寄存器(0X04)
;设定A=0X04寄存器的值。
;⽐较间接寻址的位址是否
;以到0X3F。若是则结束。
;否则在继续。
corkMOV A, @0X20 MOV 0X04, A
AGAIN:CLR 0
INC 0X04 MOV A, 0X04
XOR A, 0X3F JBS 0X03, 2
JMP AGAIN END:
3.3.
4. 位寻址
这种位寻址是对寄存器中的任⼀位(bit)进⾏操作。
例:BS 0x12,2 ;将寄存器0x12的第2位置为“1”。
3.4.EM78指令说明
ADD Add
语法ADD A,R
编码0 0011 10rr rrrrr
操作內容 A + R --> A
受影响的标志Z,C,DC﹔零标志﹐进位标志和辅助进位标志都会受影响
说明將A寄存器的內含值加上R寄存器的內含值﹐並且把结果载⼊A寄存器中。语法ADD R,A
编码0 0011 11rr rrrrr
操作內容 A + R --> R
受影响的标志Z,C,DC﹔零标志﹐进位标志和辅助标志都会受影响
说明將A寄存器的內含值加上R寄存器的內含值﹐並且把结果载⼊R寄存器中。语法ADD A, k
编码 1 1111 kkkk kkkk
操作內容K + A --> A
avc是什么意思
受影响的标志Z,C,DC﹔零标志﹐进位标志和辅助标志都会受影响
说明將A寄存器的內含值加上⽴即值K﹐並且把结果载⼊A寄存器中。
举例说明下两⾏指令敘述为A = R11 + R12.
MOV A,0x11
ADD A,0x12 ;A = R11 + R12
下两⾏指令敘述为R10 = R11 + R12.
MOV A,0x11
MOV 0x10,A
MOV A,0x12dailyreport
ADD 0x10,A ;R10 = R11 + R12
下两⾏指令敘述为A = 0x01 + 0x01.
MOV A,@0x01 ;A = 0x01
ADD A,@0x01 ;A = 0x02
AND And
语法AND A,R
编码0 0010 10rr rrrrr
操作內容 A & R --> A
受影响的标志Z﹔零标志
说明將A寄存器和R寄存器AND在⼀起﹐并将结果存⼊A寄存器。
语法AND R,A
编码0 0010 11rr rrrrr宝安桃源居
操作內容 A & R --> R
受影响的标志Z﹔零标志
说明將A寄存器和R寄存器AND在⼀起﹐并将结果存⼊R寄存器。
语法AND A,K
编码 1 1010 kkkk kkkk
操作內容 A & K --> A
受影响的标志Z﹔零标志
说明將A寄存器和⽴即值K﹐AND在⼀起﹐并将结果存⼊A寄存器。
举例说明將port 6和R10 register AND起來, 并将结果输出到port6
MOV A,0x6 ;從port6输⼊内容
AND A,0x10 ;把内容和R10 做AND MOV 0x6,A ;将结果输出到port6 R10 = R11 AND R12 MOV A,0x11
MOV 0x10,A
过来英语
MOV A,0x12
AND 0x10,A ;R10 = R11 AND R12
BC Bit Clear
语法BC R,b
编码0 100b bbrr rrrrr
操作內容0 --> R(b)
受影响的标志⽆
说明R寄存器的位“b”被清为0。

本文发布于:2023-06-15 01:02:27,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/956516.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   指令   标志   影响
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图