- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章EM78指令系统及程序设计.doc
EM78指令系统
EM78指令概述
EM78 系列单片机共有的 47 条(EM78P447和451、458有48条) 指令,其寬度为 13 位。每一个指令码可分割成两部份,第一部分为标示指令功能的运算码( OPCODE ),第二部份則指出运算時所需之參数,亦即运算码( OPERAND )。而指令的类型大致可分为下列四种:
(1)控制型指令( control operation ): 如
INT...等等。
(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,JBS...等等。
(4)常数型指令( constant operation ):如
MOV A, @0x55 ; move 0x55 to A
XOR @0xFF ;Xor A with 0xFF
一般而言,EM78 系列八位微控制器除了對 PC (Program Counter)做 “写” 的指令如 (MOV PC, A),需二个指令周期外,其他的指令只需一个指令周期,。
EM78指令寻址方式
关于对寄存器的存取,必須要先说明寄存器的位址,说明暫存的位址的方式称做寻址方式,EM78的寻址方式有两种,一种为直接寻址,一种为間接寻址。
立即数寻址
这种方式就是操作数为立即数,可直接从指令中获取。
例:MOV A,@0x16 ;将常数0x16送给寄存器A
直接寻址
若是使用者要存取寄存器的内容,可以在运算码上直接描述。
例:將寄存器0X20的内容,COPY到寄存器0X21中。
MOV A, 0X20
MOV 0X21, A
间接寻址
这种寻址方式是通过寄存器R4来实现的,R4的bit0-5是用来选择寄存器(地址:00-06,0F-3F)
若是使用者所需要存取的寄存器,有位址相邻的特性,使用間接寻址是很方便的。
例:写一个程序,將寄存器0X20 ~ 0X3F的值都填0。
MOV A, @0X20
MOV 0X04, A
AGAIN:
CLR 0
INC 0X04
MOV A, 0X04
XOR A, 0X3F
JBS 0X03, 2
JMP AGAIN
END:
位寻址
这种位寻址是对寄存器中的任一位(bit)进行操作。
例:BS 0x12,2 ;将寄存器0x12的第2位置为“1”。
EM78指令说明
ADD 加
语法 ADD A,R 编码 0 0011 10rr rrrr 操作 A+R(A 对标志位影响 D,C,DC 说明 无 举例 实现A=R11+R12:
MOV A,0X11
ADD A,0X12
语法 ADD R,A 编码 0 0011 11rr rrrr 操作 A+R(R 对标志位影响 Z,C,DC 说明 无 举例 实现R10=R11+R12:
MOV A,0X11
MOV 0X10,A
MOV A,0X12
ADD 0X10,A 语法 ADD A,K 编码 1 1111 kkkk kkkk 操作 A+K(A 对标志位影响 Z,C,DC 说明 无 举例 实现A=0X01+0X01:
MOV A,@0X01
ADD A,@0X01
AND 与
语法 AND A,R 编码 0 0010 10rr rrrr 操作 AR(A 对标志位影响 Z 说明 无 举例 P6口和R10寄存器相与,结果输出至P6口:
MOV A,0X6 ;P6口输入
AND A,0X10 ;相与
MOV 0X6,A ;P6口输出
语法 AND R,A 编码 0 0010 11rr rrrr 操作 AR(R 对标志位影响 Z 说明 无 举例 实现R10=R11R12:
MOV A,0X11
MOV 0X10,A
MOV A,0X12
AND 0X10,A
语法 AND A,K 编码 1 1010 kkkk kkkk 操作 AK(A 对标志位影响 Z 说明 无 举例 无
BC 位清0
语法 BC R,b 编码 0 100b bbrr rrrr 操作 0(R(b) 对标志位影响 无 说明 R寄存器第b位清0 举例 MOV A,@0X0F
MOV 0X10,A ;R10BC 0X10,3 ;R10 BS 位置1
语法 BS R,b 编码 0
文档评论(0)