- 1、本文档共130页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(A)=30H,执行指令MOV@R0
机器指令的编码格式 高5位为操作码,低3位为存放操作数的寄存器编码。如:MOV A,R0 双字节指令 三字节指令 符号指令的格式 如:ANL A,#40H ANL为“与”操作的助记符,立即数“40H”为源操作数,累加器A为目的操作数。 操作数在寄存器中,指令中直接给出该寄存器名称。具有较高的传送和运算速度。 操作码后的字节是操作数的地址,操作数本身放在该地址指示的存储单元中。 举例: MOV A,00H (直接) 相当于 MOV A,R0(寄存器) MOV A,1DH (直接) 相当于 MOV A,R5(寄存器) M0V A,P2(直接) 相当于 MOV A,0A0H(直接) MOV B,A (寄存器) 相当于 MOV B,0E0H(直接) PUSH ACC(直接) 寄存器中内容为地址,从该地址取操作数。 编码中直接给出操作数。操作码之后的操作数称为立即数。 以一个基地址加上一个偏移量地址形成操作数地址。 MOVC A, @A+DPTR ;(A+DPTR) →A MOVC A, @A+PC ; PC+1 →PC,(A+PC)→A 以PC当前值为基准,加上指令中相对偏移量 rel 形成目标地址。 对位地址中内容进行操作。操作的是8位二进制数中的某一位。 思考:下列指令寻址方式 说明: 1.在51中,与外部存储器RAM打交道的只可以是A累加器。所有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。 区别:MOVX A,@Ri与 MOV A,@Ri 在此我们可以看出内外部RAM的区别了,内部RAM间可以直接进行数据的传递,而外部则不行(大于0FF.必须用DPTR)。 比如,要将外部RAM中某一单元(0100H单元)的数据送入另一个单元(0200H单元),也必须先将0100H单元中的内容读入A,然后再送到0200H单元中去。 例2 : 15 0000 1111 8 1000 23(十进制)10111 0010 0011 0110 1 1 1 0 1 0110 10 0 0 1 1 空操作指令(1条) 第八讲 汇编语言程序设计 汇编语言的规范 常用的伪指令 源程序的汇编 程序设计基础与举例 一、单分支程序 例 求单字节有符号数的二进制补码。设有一个单字节二进制数存于A中。 三、多分支程序 例 根据R7的内容转向相应的处理程序。 设R7的内容为0~N,对应的处理程序的入口地址分别为PP0~PPN。 START:MOV DPTR,#TAB ;置分支入口地址表首址 MOV A,R7 ;分支转移序号送A ADD A,R7 ;分支转移序号乘以2 MOV R3,A ;暂存于R3 MOVC A,@A+DPTR ;取高位地址 XCH A,R3 INC A MOVC A,@A+DPTR ;取低位地址 MOV DPL,A ;处理程序入口地址低8位送DPL MOV DPH,R3 ;处理程序入口地址高8位送DPH CLR A JMP @A+DPTR TAB:DW PP0 DW PP1 … … … DW PPN 循环程序 一、先执行后判断 例 50ms延时程序。 若晶振频率为12MHz,则一个机器周期为1μs。执行一条DJNZ指令需要2个机器周期,即 2μs。采用循环计数法实现延时,循环次数可以通过计算获得,并选择先执行后判断的循环结构。程序段如下: DEL:MOV R7,#200 ;1 μs DEL1:MOV R6,#123 ;1 μs NOP ;1 μs DEL2:DJNZ R6,DEL2 ;2μs,计(2×123)μs DJNZ R7,DEL1 ;2μs, RET 共计
文档评论(0)