汇编指令由操作码或伪操作码、目的操作数和源操作数构成DW(DefineWord)定义数据字命令功能:用于从指定地址开始,在程序存储器单元中定义16位的数据字。格式:[标号:]DW16位数表存放规则:高8位在前(低地址),低8位在后(高地址)。DS(DefineStorage)定义存储区命令功能:用于从指定地址开始,保留指定数目的字节单元为存储区,供程序运行使用。汇编时对这些单元不赋值。格式:[标号:]DS16位数表用EQU可以把一个汇编符号赋给字符名称,如上例中的R1,而DATA只能把数据赋给字符名。寻址方式寻址空间立即数寻址ROM(汇编后数据直接存放在ROM中)直接寻址片内低128字节和SFR寄存器寻址通用寄存器R0~R7某些SFR,如A、B(乘除指令中)、DPTR寄存器间接寻址片内RAM低128B[@Ri,SP(仅PUSH和POP)]片外RAM(@Ri,@DPTR)变址寻址(基址+变址寻址)ROM(@A+PC,@A+DPTR)相对寻址ROM256B范围位寻址片内RAM20H~2FH单元的位(128位)部分SFR中的可寻址位@RidirectRnACC#data传送指令在片内的操作功能整字节交换指令XCHA,Rn;(A)←→(Rn)XCHA,direct;(A)←→(direct)XCHA,@Ri;(A)←→((Ri))(2)半字节交换指令:XCHDA,@Ri;(A)3~0←→((Ri))3~0(3)累加器高低半字节交换指令:SWAPA;(A)3~0←→(A)7~45)堆栈操作指令组:进栈、出栈两种操作。PUSHdirect;SP←(SP)+1,(SP)←(direct)POPdirect;direct←((SP)),SP←(SP)-1传送类指令一般不影响标志位。个别影响P位。但堆栈指令(PUSH和POP)可以直接修改状态字PSW。乘除指令组乘积<0FFH(即(B)=0),则OV=0,否则OV=1。该运算总使CY=0。除法当除数为0(B=0)时,OV=1,表明除法无意义,无法进行;其它情况下,OV=0。任何情况下,CY=0。指令十进制调整的内容(BCD调整)(1)如果任何两个对应位BCD数相加的结果向高一位无进位时,若得到的结果小于或等于9,则该位不需修正;若得到的结果大于9且小于16位,则该位进行加6修正。(2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正。(3)低位修正结果使高位大于9时,高位进行加6修正。A寄存器寄存器间接寻址@R1、@R0(外部RAM低256B)寄存器间接寻址@DPTR(外部RAM64KB)ANL常用于屏蔽字节中的某些位。欲清除的位和“0”与,欲保留的位和“1”与ORL用途:用于使字节中的某些位置“1”。欲不变的位,用“0”去“或”,欲置1的位,用“1”去“或”。异或有一初一全一出零累加器清0指令:CLRA;A←0累加器按位取反指令:CPLA;A←(A)LJMPaddr16;跳转范围64KB,PC←addr16,三字节指令AJMP绝对转移指令AJMPaddr11;跳转范围2KB,PC←(PC)+2PC10~0←addr11SJMPrel;目的地址=(PC)+2+rel简洁转移JMP@A+DPTR;PC←(A)+(DPTR)JZrel;若(A)=0,则PC←(PC)+2+rel若(A)≠0,则PC←(PC)+2JNZrel;若(A)≠0,则PC←(PC)+2+rel若(A)=0,则PC←(PC)+2CJNEA,#data,rel若(A)-data=0:顺序执行PC←(PC)+3CY=0若(A)-data>0:跳转PC←(PC)+3+relCY=0若(A)-data<0:跳转PC←(PC)+3+relCY=lDJNZdirect,rel;三字节指令LCALLaddr16;PC←(PC)+3;SP←(SP)+1,(SP)←(PC)7~0;SP←(SP)+1,(SP)←(PC)15~8;PC←addr16已知DELAY=1200H,试问MCS-51单片机执行下列指令后,堆栈中数据如何变化?PC中内容是什么?MOVSP,#30HDELAY:LCALL2356H(SP)=32H,(31H)=03H,(32H)=12H,PC=2356H。ACALLaddr11;PC←(PC)+2;SP←(SP)+1,(SP)←(PC)7~0;SP←(SP)+1,(SP)←(PC)15~8;PC10-0←addr11返回指令RET;子程序返回指令;PC15~8←(SP),(SP)←(SP)-1;PC7~0←(SP),(SP)←(SP)-1位地址的表示方法主要有下列四种:以AC为例?直接位地址表示:0D6H(PSW的位6)?点操作符表示:PSW.60D0H.6?位名称表示:AC将内部RAM中20H单元的第6位(位地址为06H)的内容,传送到P1.0中。MOVC,06HMOVP1.0,C位置位清零指令(共4条)CLRbit;bit←0CLRCY;CY←0SETBbit;bit←1SETBCY;CY←1ANLC,bit;CY←(CY)∧bitANLC,/bit;CY←(CY)∧ORLC,bi...