- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
                        查看更多
                        
                    
                5项目一任2汇编语言与指令系统概述
                    2 汇编语言与指令系统概述 机器语言 		机器语言就是用二进制编码表示每条指令。 汇编语言 		汇编语言是符号化的机器语言。 高级语言 		高级语言是接近自然语言和数学语言的算法语言。 1)Ri(R0、R1)作间址寄存器   (1)内部RAM低128字节(00H~7FH),用MOV指令。 Page.38 [例1.12]   (2)片外RAM寻址(地址范围00H~FFH),用MOVX指令。 MOVX    A,@R1 2)DPTR作间址寄存器   外部RAM/ ROM全部64KB空间(0000H~FFFFH) MOV     DPTR,#2000H MOVX       A, @DPTR       3)SP作间址寄存器        PUSH、POP。     仅在内部RAM中寻址,SP不出现在指令中 * 2.1 计算机语言         一条汇编语言指令中最多包含 4 个区段, 如下所示:         [标号:] 操作码 [操作数] [;注释]           4 个区段之间要用分隔符分开: 标号与操作码之间用“: ”隔开, 操作码与操作数之间用空格隔开, 操作数与注释之间用“;”隔开, 如果操作数有两个以上, 则在操作数之间要用逗号“,”隔开  (乘法指令和除法指令除外  )。  2.2 汇编指令格式:       1. 单字节指令       单字节指令格式由8位二进制编码表示, 例如:         CLR   A→E4H        2. 双字节指令        双字节指令格式由两个字节组成, 操作码和操作数, 例如:    	MOV  A, #10H→74H  10H           3. 三字节指令        三字节指令格式中, 第一个字节为操作码, 后两个字节为操作数, 例如:           	MOV  40H, #30H→75H 40H 30H  2.3 寻址方式  (1)Rn(n=0~7):表示八个通用寄存器 R0~R7。 (2)Ri(i=0或1):表示两个寄存器R0、R1,它们常在寄存器间接寻址中作为8位地址指针。 (3)#data 8:表示8位立即数,即包含在指令中的8位常数,如#10或。 (4)#data 16:表示 16位立即数,即包含在指令中的 16位常数,如#2010H。 (5)direct:表示片内RAM(含特殊功能寄存器)的直接地址。 (6)addr11:表示11位目的地址。 (7)addr16:表示16位目的地址。 符号说明: (8)rel:表示带符号的8位地址偏移量。 (9)bit:表示位地址。 (10)@:间接寻址方式中间址寄存器的前缀标志,表示间接寻址(读成at)。 (11)(X):表示由X所指定的某寄存器或单元中的内容。 (12)((X)):表示由X间接寻址的单元中的内容。 (13)←:表示指令的操作结果是将箭头右边的内容传送到箭头左边的单元中。 (14)→:表示指令的操作结果是将箭头左边的内容传送到箭头右边的单元中。         所谓寻址方式, 就是寻找操作数地址的方式, 在用汇编语言编程时, 数据的存放、传送、 运算都要通过指令来完成。 编程者必须自始至终都要十分清楚操作数的位置, 以及如何将它们传送到适当的寄存器去参与运算。每一种计算机都具有多种寻址方式。寻址方式的多少是反映指令系统优劣的主要指标之一。        在 AT89C51单片机指令系统中, 有以下  7种寻址方式:     (1) 立即寻址;    (2) 直接寻址;    (3) 寄存器寻址;    (4) 寄存器间接寻址;    (5) 变址寻址;    (6) 相对寻址;    (7) 位寻址  1. 立即寻址         立即寻址方式是指操作数包含在指令字节中。 跟在指令操作码后面的数就是参加运算的数, 该操作数称为立即数。 立即数有一字节和二字节两种可能, 例如指令:     MOV   A, # 3AH   MOV   DPTR, # 0DFFFH        上述两条指令均为立即寻址方式, 第一条指令的功能是将立即数 3AH送累加器A中, 第二条指令的功能是将立即数 0DFFFH送数据指针DPTR中(0DFH→DPH, 0FFH→DPL)。          2. 直接寻址         在指令中直接给出操作数的地址, 这种寻址方式就属于直接寻址方式。在这种方式中, 指令的操作数部分直接是操作数的地址。          直接寻址方式中可以访问 2种存储器空间:          (1) 内部数据存储器的低 128 个字节单元(00H~7FH)。               (2) 特殊功能寄
                 原创力文档
原创力文档 
                        

文档评论(0)