- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据传送指令 内部数据传送指令 MOV 注意不能在Rn之间传送 外部RAM 与内部数据传送指令 MOVX MOVX A , @DPTR MOVX A , @Ri MOVX @DPTR , A MOVX @Ri , A ROM与内部数据传送指令 MOVC MOVC A , @A+DPTR MOVC A , @A+PC Eg:(1)? R1内容传送到R0? (2)外部RAM 20H单元的内容传送到A? ? (3) 程序存储器ROM 2000H单元的内容送内部RAM 20H;? (4)? 外部RAM 1000H单元的内容送内部RAM 20H ? (5)?片外RAM 2000H单元中的数据传送到片外RAM 3000H 题型2 * 查表指令的使用 例3.6 已知A中有一个0-9范围的数,查找该数的平方 解:采用DPTR做基址寄存器: MOV A,#data MOV DPTR,#2000H; MOVC A,@A+DPTR; ORG 2000H TAB:DB 0,1,4,9,….81 题型3 * 堆栈操作指令 先进后出、后进先出 PUSH direct ;SP←SP+1,(SP) ← (direct) POP direct ;(SP) → (direct), SP←SP-1 例:P124 习题 3.12 已知SP=73H,(71H)=X,(72H)=Y, (73H)=Z,执行下列程序后,(20H)、(21H)、(22H)内容为多少? POP 20H POP 21H POP 22H PUSH A 对不对? * ADD、ADDC、SUBB 特点:都是以A作为第一操作数。 影响PSW标志位。 只能是8位二进制数据的运算。 INC、DEC MUL AB ;A*B=BA 形成标志 DIV AB ;A÷B=A…B 算术运算指令 逻辑运算指令 ANL、ORL、XRL、 CLR A、CPL A 移位指令 RR、RL、RRC、RLC、SWAP 特点: 只有循环移位。 目的操作数都在A中。 单操作数指令 ANL A,Rn; ANL A,direct; ANL A,@Ri; ANL A,#data; ANL direct,A; ANL direct,#data; * 转移指令 无条件转移指令 LJMP add16 ;长转移指令 AJMP addr11 ;绝对转移指令 SJMP rel ;短转移指令 JMP @A+DPTR ;变址寻址转移指令 条件转移指令 累加器A判零转移指令JZ、JNZ 比较条件转移指令: CJNE A,#data,rel; 减1条件转移指令: DJNZ Rn,rel * 子程序相关的指令 ACLL addr11 LCALL addr16 RET;子程序返回指令,用于子程序末尾。 RETI;中断返回指令,用于中断服务程序末尾。 子程序的开头必须是标号,以供主程序调用。 * 位操作指令 位传送指令: MOV C,bit; MOV bit,C; 位置位、位清零指令 CLR C; CLR bit; SETB C; SETB bit 位运算指令 ANL C,bit;ANL C,/bit; ORL C,bit;ORL C,/bit; CPL C; CPL bit; 位控制转移指令 (1)Cy内容为条件的转移指令 JC rel; JNC rel; (2)位地址内容为条件的转移指令 JB bit,rel; JNB bit,rel; JBC bit,rel; * 第四章 汇编语言程序设计 汇编语言语句有两种:指令性语句和指示性语句 汇编语言语句格式包括:标号、操作码、操作数、注释 常用伪指令的使用方法: ORG:起始汇编伪指令 END:结束汇编伪指令 DB、DW * 四、 程序设计 例: 从外部RAM 2000H 单元开始存放16个无符号单字节数,找出其中最大数,并把结果存入内部RAM 20H 单元。 ORG 0100H SUB1: MOV DPTR,#2000 ;数据首地址 MOV 20H, #00H MOV R0, #16 NEXT0: MOVX A, @DPTR ;取数 CJNE A, 20H, LOOP;A=(20H),C=‘0’ SJMP BACK LOOP: JNC RESET SJMP BACK RESET: MOV 20H, A ;A(20H),重置20H BACK: INC DPTR DJNZ R0, NEXT
文档评论(0)