收藏 分享(赏)

第三与第四章-mcs-51指令系统与汇编语言程序设计.ppt

上传人:无敌 文档编号:968140 上传时间:2018-05-09 格式:PPT 页数:102 大小:1.19MB
下载 相关 举报
第三与第四章-mcs-51指令系统与汇编语言程序设计.ppt_第1页
第1页 / 共102页
第三与第四章-mcs-51指令系统与汇编语言程序设计.ppt_第2页
第2页 / 共102页
第三与第四章-mcs-51指令系统与汇编语言程序设计.ppt_第3页
第3页 / 共102页
第三与第四章-mcs-51指令系统与汇编语言程序设计.ppt_第4页
第4页 / 共102页
第三与第四章-mcs-51指令系统与汇编语言程序设计.ppt_第5页
第5页 / 共102页
点击查看更多>>
资源描述

1、内容安排3.1 MCS-51单片机指令格式3.2 MCS-51指令寻址方式 3.3 MCS-51单片机指令系统,第3章 MCS-51单片机指令系统,指令:是计算机用于控制某个功能部件完成某一指定动作的指示和命令 指令系统:所有指令的集合 指令由两部分组成,即操作码和操作数。 操作码用来规定指令进行什么操作 操作数则是指令操作的对象,3.1 MCS-51单片机指令格式,单字节指令、双字节指令、三字节不同长度的指令,格式不同: (1)单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。 (2)双字节指令:一个字节为操作码,另一个字节是操作数。 (3)三字节指令:操作码占一个字节,操作数占二

2、个字节。其中操作数既可能是数据,也可能是地址。,3.1 MCS-51单片机指令格式,3.2 MCS-51指令寻址方式,寻址方式:指CPU寻找操作数或操作数地址的方法,1. 立即寻址 操作数直接由指令给出,通常紧跟指令操作码之后的字节是操作数,该操作数被称为立即数 立即数:8/16位二进制数如: MOV A,#2AH MOV DPTR, #1324H,3.2 MCS-51指令寻址方式,2.直接寻址 操作数直接以单元地址形式给出 寻址范围: (1) 内部RAM的128个单元 (2) 特殊功能寄存器。除了以单元地址的形式外,还可用寄存器符号的形式给出。 如: MOV A, P0 ; MOV R0,

3、TH0 ;,3.2 MCS-51指令寻址方式,3寄存器寻址寄存器寻址是指指令中的操作数为寄存器中的内容。 可用寄存器有: (1)四组工作寄存器R0R7共32个工作寄存器,由PSW中的RS1、RS2两位状态来选择当前寄存器组 (2)SFR中有A、AB、DPTR及CY 如:MOV R3,#12H ; MOV A,R3 ; (A)(R3),3.2 MCS-51指令寻址方式,4. 寄存器间接寻址方式 寄存器中存放的是操作数的地址 在寄存器的名称前面加前缀标志“” 访问内部RAM或外部数据存储器的低256个字节时,只能采用R0或R1作为间址寄存器。例如: MOV A,Ri ;i=0或1 寻址范围:(1)

4、访问内部RAM低128个单元,其通用形式为Ri(2)对片外数据存储器的64K字节的间接寻址,例如: MOVX A,DPTR,3.2 MCS-51指令寻址方式,(3)片外数据存储器的低256字节 例如:MOVX A,Ri(4)堆栈区 堆栈操作指令PUSH(压栈)和POP(出栈)使用堆栈指针(SP)作间址寄存器,3.2 MCS-51指令寻址方式,5. 基址加变址寄存器间接寻址 以DPTR或PC为基址寄存器,以A为变址寄存器,以两者相加形成的16位地址为操作数的地址。 寻址方式的指令只有3条:MOVC A,A+DPTRMOVC A,A+PCJMP A+DPTR,3.2 MCS-51指令寻址方式,6相

5、对寻址 相对寻址方式是以程序计数器PC的当前值为基准,加上指令中给出的相对偏移量rel以形成目标地址。 目的地址转移指令所在地址转移指令字节数rel 操作数rel为程序转移的偏移量,是一带符号的8位二进制数补码数。 例:,3.2 MCS-51指令寻址方式,PC值变,7位寻址 位寻址是指对片内RAM的位寻址区(20H2FH)和可以位寻址的特殊功能寄存器的各位进行位操作的寻址方式。MCS-51单片机片内RAM有两个区域可以位寻址:(1) 20H2FH单元的128个位;(2) 特殊功能寄存器中字节地址能被整除的寄存器中的各位。,3.2 MCS-51指令寻址方式,特殊功能寄存器PSW中的可寻址位在指令

6、中有如下4种的表示方法: (1)直接使用位地址。例如PSW.5的位地址为0D5H。 (2)位名称的表示方法。例如:PSW.5是F0标志位,可使用F0表示该位。 (3)单元地址加位数的表示方法。例如 :(0D0H).5。 (4)特殊功能寄存器符号加位数的表示方法。例如:PSW.5,3.2 MCS-51指令寻址方式,3.2 MCS-51指令寻址方式,MCS-51的基本指令共111条,按指令所占的字节来分: (1) 单字节指令49条; (2) 双字节指令45条; (3) 三字节指令17条。按功能分类,可分为下面5大类: (1)数据传送类(28条) (2)算术操作类(24条 (3)逻辑运算类(25条)

7、 (4)控制转移类(17条) (5)位操作类(17条),3.3 MCS-51单片机指令系统,数据传送指令位操作把某一单元中内容传送到另一单元中去。 一般传送类指令的通用指令格式为MOV , 源操作数可以是累加器A、通用寄存器Rn、直接地址direct、间址寄存器Ri和立即数。 目的操作数可以是累加器A、通用寄存器Rn、直接地址direct和间址寄存器Ri。,3.3.1 数据传送指令位操作,1. 片内RAM数据传送指令组该类指令共有16条。(1) 以A为目的操作数的指令: MOV A,Rn ; (Rn)A,n=07 MOV A,Ri ; (Ri)A,i=0,1 MOV A,direct ;(di

8、rect)A MOV A,#data ; #dataA,3.3.1 数据传送指令位操作,例 MOV A ,#38H;A38HMOV A ,R0 ;A(R0)设(33H)=7AH;R0=33H,则MOVA ,R0 ;将R0指定的33H中的数7AH送A中执行结果:A=(R0)=(33H)=7AH。,3.3.1 数据传送指令位操作,2.以Rn为目标的操作数的指令: MOV Rn,A ; (A)Rn,n=07 MOV Rn,direct ;(direct)Rn,n=07 MOV Rn,#dat ; #dataRn,n=07例 MOV R1 ,#10H ;将立即数10H送R1寄存器,,3.3.1 数据传

9、送指令位操作,3.以直接地址direct为目的操作数的指令 MOV direct,A ; (A)direct MOV direct,Rn;(Rn)direct, n=07 MOV direct1,direct2; MOV direct,Ri ; (Ri)direct MOV direct,#data; #datadirect例 MOV30H ,31H ;30H(31H) MOV P2 , R2 ;寄存器R2内容送P2口,3.3.1 数据传送指令位操作,4.以寄存器间接地址为目的操作数的指令 MOV Ri,A ;(A)(Ri),i=0,1 MOV Ri,direct ; (direct)(Ri)

10、 MOV Ri,#data ; #data(Ri) 例 : 设(A)=33H ,(R0)=56H ,则执行指令: MOV R0 ,A ;(R0)(A), 即(56H)=33H,3.3.1 数据传送指令位操作,5. 16位数传送指令 MOV DPTR,#data16 ; #data16DPTR 唯一的16位数据的传送指令 ,立即数的高8位送入DPH,立即数的低8位送入DPL。 例 MOV DPTR ,#1011H DPTR1011H,结果为(DPH)=10H, (DPL)=11H,3.3.1 数据传送指令位操作,6.累加器A与外部数据存储器传送指令 MOVX A,DPTR ;(DPTR)A,读外

11、部RAM/IO MOVX A,Ri ;(Ri)A,读外部RAM/IO MOVX DPTR,A;(A)(DPTR),写外部RAM/IO MOVX Ri,A ;(A)(Ri),写外部RAM/IO功能:读外部RAM存储器或I/O中的一个字节,或把A中一个字节的数据写到外部RAM存储器或I/O中。,3.3.1 数据传送指令位操作,7. 堆栈操作指令(PUSH 、POP):2条功能:分别用于保护现场和恢复现场进栈指令PUSH用于保护片内某个单元内容出栈指令POP用于恢复片内某个单元内容 PUSH direct ;(SP)+1(SP),(direct)(SP) POP direct ;(SP)(direc

12、t),(SP)-1(SP),3.3.1 数据传送指令位操作,入栈指令 PUSH direct例: (SP)=60H, (A)=30H ,(B)=70H 时,执行 PUSH Acc ;(SP)+1=61HSP, (A) 61H PUSH B ;(SP)+1=62HSP, (B) 62H结果: (61H)=30H, (62H)=70H, (SP)=62H退栈指令 POP direct例: (SP)=62H, (62H)=70H ,(61H)=30H 时,执行 POP DPH ;(SP) DPH, (SP)1=61HSP POP DPL ;(SP) DPL, (SP)1=60HSP结果: (DPTR

13、)=7030H, (SP)=60H,3.3.1 数据传送指令位操作,8.查表指令 用于读程序存储器中的数据表格的指令,均采用基址寄存器加变址寄存器间接寻址方式。 共两条 (1) MOVC A,A+PC 例 (A)=30H,执行地址1000H处的指令 1000H: MOVC A,A+PC 本指令占用一个字节,执行结果将程序存储器中1031H的内容送入A。,3.3.1 数据传送指令位操作,(2) MOVC A,A+DPTR例:在ROM 1000H开始存有5个字节数,编程将第二个字节数取出送片内RAM 30H单元中。程序段如下:MOV DPTR,#1000H ;置ROM地址指针(基址)DPTR100

14、0HMOV A ,#01H; 表内序号送A(变址),A01HMOVC A,A+DPTR;从ROM 1001H单元中取数送到A MOV 30H ,A; 再存入片内RAM 30H中ORG 1000H ; 伪指令,定义数表起始地址TAB:DB 55H,67H,9AH,34H,57H ;在ROM 1000H开始的空间定义5个单字节数执行结果:(30H)=67H。,3.3.1 数据传送指令位操作,9字节交换指令 (1)整字节交换指令 XCH A,Rn XCH A,direct XCH A,Ri功能:将累加器A的内容与内部RAM、SFR中的内容互换,影响标志位 (2) 低半字节交换指令(XCHD) XCH

15、D A,Ri ;(A)30 (Ri)30功能:累加器A的低四位与片内RAM某单元的低四位交换,高四位不变,3.3.1 数据传送指令位操作,(3)累加器A高低半字节交换指令(SWAP) SWAP A ;A74 A30功能:将累加器A中的高4位与低4位内容互换,不影响标志位例 若(A)=45H,(R0)=20H,(20H)=69H,单独执行下列指令后:SWAP A ;(A)=54HXCH A ,R0 ;(A)= 20H,(R0)=45HXCHD A , R0 ;(A)=49H,(20H)=65H,3.3.1 数据传送指令位操作,功能:执行加、减、乘、除法四则运算和加1、减1操作以及十进制的调整特点

16、: 支持8位无符号数操作,借助溢出标志可对带符号数进行补码运算算术运算类指令执行结果影响PSW,3.3.2 算术运算类指令,1加法指令 共有4条加法运算指令: ADD A,Rn ;(A)+(Rn)A,n=07 ADD A,direct ;(A)+(direct)A ADD A,Ri ;(A)+(Ri)A,i=0,1 ADD A,#data ; (A)+#dataA,3.3.2 算术运算类指令,8位二进制数加法运算指令的一个加数总是累加器A,第二加数可用4种不同寻址方式得到,其相加结果再送回累加器A中,同时影响AC、CY、OV、P位。注意:累加器A中的值前后是不一样的。 影响程序状态字PSW中的

17、OV、C、AC和P的情况如下:(Di,i=0,1,7)进位标志C:和的D7位有进位时,C=1;否则,C=0。辅助进位标志AC:和的D3位有进位时,AC=1;否则,AC=0。溢出标志OV:和的D7、D6位只有一个有进位时,OV=1;否则,OV=0。 溢出表示运算的结果超出了数值所允许的范围。,3.3.2 算术运算类指令,例 :两个8位无符号数相加的和仍是8位。例如内部RAM中40H和41H单元分别存放两个加数,相加结果存放42H单元。程序设计为:MOV R0, #40H;设置数据指针MOV A, R0;取第一个加数INC R0;修改数据指针ADD A, R0;两数相加INC R0;修改数据指针M

18、OV R0,A;存结果假设(40H)=53H;(41H)=FCH。 结果为:(A)=4FH,(CY)=1,(AC)=0,(OV)=0,(P)=1,3.3.2 算术运算类指令,2带进位加法指令标志位Cy参加运算,因此是三个数相加。共4条: ADDC A,Rn;(A)+(Rn)+CA,n=07 ADDC A,direct ;(A)+(direct)+CA ADDCA,Ri ;(A)+(Ri)+CA,i=0,1 ADDCA,#data ;(A)+#data+CA 例:(A)=85H,(20H)=FFH,Cy=1,执行指令: ADDC A,20H结果为:(A)=85H,Cy=1,Ac=1,OV=0,P

19、=1 (A中1 的位数为奇数),3.3.2 算术运算类指令,加1指令INC A ;A(A)+1INC Ri ;Ri(A)+1INC direct ;direct(direct)+1INC Ri ;(Ri)(Ri)+1INC DPTR ;DPTR(DPTR)+1对标志位不产生影响若: (A)0FFH , (Cy)=0执行: INC A结果:(A)00H , (Cy)=0,3.3.2 算术运算类指令,4.十进制调整指令 DA A 用途:紧跟在BCD码加法指令(不包括减法)之后,进行十进制调整。 (96H 为压缩BCD码,表示十位为9, 个位为6) 如两BCD码加: MOV A, #35H ADD

20、A, #46H (A)=7BH, 并不是 81H 但: DA A 后, (A)81H,3.3.2 算术运算类指令,5带借位的减法指令 4条指令: SUBB A,Rn ; (A)-(Rn)- CyA,n=07 SUBB A,direct ; (A)-(direct)- CyA SUBB A,Ri;(A)-((Ri))- CyA, i=0,1 SUBB A,#data ;(A)-#data - CyA 功能:从累加器A中的内容减去指定的变量和进位标志Cy的值,结果存在累加器A中。 如果位7需借位则置“1” Cy,否则清“0”Cy;如果位3需借位则置“1”Ac,否则清“0”Ac;如果位6需借位而位7

21、不需要借位,或者位7需借位,位6不需借位,则置“1”溢出标志位OV,否则清“0”OV。,3.3.2 算术运算类指令,6减1指令 减1类指令共4条,其功能是将操作数指定单元内容减1。 DEC A ;A-1A, A中内容减1DEC Rn ; Rn-1Rn, Rn中内容减1DEC direct ;(direct)-1(direct), 直接地址中内容减1DEC Ri ;(Ri)-1(Ri), Ri间址中的内容减1,3.3.2 算术运算类指令,7乘法指令 MUL AB ; (A)(B) 低8位A 高8位B A、B中都是无符号整数 如果积大于255,OV1,否则OV0;进位标志总是清零 CY0。,3.3

22、.2 算术运算类指令,8.除法指令 DIV AB ; (A)(B) 商 A ,余数B A、B中都是无符号整数 如果除数B为“0”,OV1,否则OV0;进位标志总是清零 Cy0。,3.3.2 算术运算类指令,此类指令共24条,包括或、与、异或、求反、清0、循环移位。其共同特点是当A作目的操作数(第一操作数)时,影响P位;带进位的移位指令影响CY位,其余都不影响PSW,3.3.3 逻辑运算及移位类指令,1.逻辑与指令 ANL A, Rn ANL A, direct ANL A, data ANL A, Ri ANL direct, A ANL direct, data “有0即0,全1为1”,3.

23、3.3 逻辑运算及移位类指令,2.逻辑或指令 ORL A, Rn ORL A, direct ORL A, data ORL A, Ri ORL direct, A ORL direct, data “有1即1,全0为0” 0000 0110 )0110 1101 0110 1111 B 6FH,3.3.3 逻辑运算及移位类指令,3.逻辑异或指令 XRL A, Rn XRL A, direct XRL A, data XRL A, Ri XRL direct, A XRL direct, data 相异为1,相同为0”,3.3.3 逻辑运算及移位类指令,4求反指令(1条) CPL A ;对累加

24、器A的内容各位求反,结果送回A中,影响P位 5清0指令(1条) CLR A ;将累加器A的内容清0注意:MCS-51的指令系统中对字节操作求反、清0,只有这2条指令,其他单元要求反、清0操作,则要用其他的指令或通过累加器A中进行。,3.3.3 逻辑运算及移位类指令,3.3.3 逻辑运算及移位类指令,6循环移位指令(4条) RL A RLC A RR A RRC A,控制转移类指令共计 17 条无条件转移指令条件转移指令子程序调用及返回指令功能:有了丰富的控制转移类指令, 就能很方便地实现程序的向前、 向后跳转, 并根据条件分支运行、 循环运行、 调用子程序等。,3.3.4 控制转移类指令,1无

25、条件转移指令 长转移指令 LJMP addr16; PCaddr16 本指令为三字节指令。指令功能是将16位值送入PC中,CPU转向地址为addr16的单元处取令执行。 短转移指令 AJMP addr11; PCPC+2,PC100addr100 短转移指令为双字节指令。是用指令提供的11位地址替换PC的低11位,所形成的新的PC值作为目的地址 .,3.3.4 控制转移类指令, 间接转移指令JMP A+DPTR;PCA+DPTR 该指令为1字节指令。目的地址由DPTR与A相加形成。 相对转移指令SJMP rel;PCPC+2+rel 本指令为双字节指令。SJMP指令可用来使程序原地踏步:HER

26、E:SJMP HERE或SJMP $($表示PC的当前值)。rel=HERE-HERE-2=FEH,故机器码为80 FE。 单片机没有可使CPU停止运行的指令。,3.3.4控制转移类指令,2条件转移指令 累加器判零转移指令 JZ rel ; PCPC+2,若A=0,则 PCPC+rel JNZ rel; PCPC+2,若A0,则PCPC+rel 比较转移指令 CJNE A,direct,rel;PCPC+3, 若A(direct),则PCPC+rel CJNE A,#data,rel;PCPC+3,若Adata,则PCPC+rel CJNE Rn,#data,rel;PCPC+3,若Rndat

27、a,则PCPC+rel CJNE Ri,#data,rel;PCPC+3,若(Ri)data,则PCPC+rel,3.3.4 控制转移类指令, 循环转移指令 DJNZ Rn,rel;PCPC+2,RnRn-1,若Rn0,则PCPC+rel DJNZ direct,rel;PCPC+3,(direct)(direct)-1, 若(direct)0,则PCPC+rel,3.3.4 控制转移类指令,4调用子程序指令(1)短调用指令ACALL addrllACALL addr11 ; (PC) (PC)+2, addr 108 10001 addr 70 (SP) (SP)+1, (SP) (PC 7

28、0) (SP) (SP)+1, (SP) (PC 158) (PC) 100 addr11 (2)长调用指令LCALL addr16LCALL addr16 ; (PC) (PC)+3 , 12 addr 158 addr 70 (SP) (SP)+1, (SP) (PC 70) (SP) (SP)+1, (SP) (PC 158) (PC) addr 150,3.3.4控制转移类指令,5子程序的返回指令返回指令共有两条: 一条是对应两条调用指令的子程序返回指令RET; 另一条是对应从中断服务程序的返回指令RETI。 RET;(PC158(SP),(SP)(SP)1, (PC70) (SP)

29、,(SP)(SP)1 RETI;(PC158)(SP),(SP)(SP)1, (PC70)(SP) ,(SP)(SP)1,3.3.4 控制转移类指令,4空操作指令 NOP ; (PC) (PC)+1, 空操作指令是一条单字节单周期指令。 它控制CPU不做任何操作, 仅仅是消耗这条指令执行所需要的一个机器周期的时间, 不影响任何标志, 故称为空操作指令。 但由于执行一次该指令需要一个机器周期, 所以常在程序中加上几条NOP指令用于设计延时程序, 拼凑精确延时时间或产生程序等待等。,3.3.4控制转移类指令,在单片机硬件结构中还附有一个位处理机,又称布尔处理机,专门用于对一位数码(布尔变量)进行操

30、作,称作位操作。累加器(借用进位标志CY)存储器(即位寻址区中的各位)完成位操作的运算器等。,3.3.5位操作指令,1.数据位传送指令 MOV C,bit MOV bit,C 例 MOV C,06H ;(20H).6Cy06H是内部RAM 20H字节位6的位地址。 MOV P1.0,C ;CyP1.0 2位变量修改指令 CLR C;清“0”Cy CLR bit;清“0”bit位 CPL C;Cy求反,3.3.5位操作指令,1.数据位传送指令 MOV C,bit MOV bit,C 例写出指令,将00H位的值送01H位 MOV C,00H MOV01H,C 2位变量修改指令 CLR C;清“0”

31、Cy CLR bit;清“0”bit位 CPL C;Cy求反,3.3.5位操作指令,CPL bit ;bit位求反 SETB C;置“1” Cy SETB bit ;置“1” bit位这组指令将操作数指出的位清“0”、求反、置“1”, 不影响其它标志。例 将P1 口的P1.7 置位, 并清进位位的程序如下: SETB P1.7 ; (P1.7) 1 CLR C ; (CY) 0当(P1)=00001111B时, 执行完上述指令后, (P1)=10001111B, (CY)=0。,3.3.5位操作指令,3. 位逻辑指令 位逻辑指令包含“与”ANL、 “或”ORL、 “非”CPL位逻辑运算操作,

32、共有如下 6 条指令: ANL C, bit ; (CY) (CY)(bit ) , 82bitANL C, / bit ; (CY) (CY)(bit ) , B0bitORL C, bit ; (CY) (CY)(bit) , 72bitORL C, / bit ; (CY) (CY)(bit ) , A0bitCPL bit ; (bit) (bit) , B2bitCPL C ; (CY) (C) , B3,3.3.5位操作指令,4位条件转移指令 JC rel;PCPC+2,若C=1则PCPC+rel JNC rel;PCPC+2,若C1则PCPC+rel JB bit,rel;PCP

33、C+2,若(bit)=1则 PCPC+rel JNBbit,rel;PCPC+2,若(bit)1则 PCPC+rel JBCbit,rel;PCPC+3,若(bit)=1则 PCPC+rel且(bit)0,3.3.5位操作指令,3.3.6 伪指令,前面所学的指令都会使计算机进行一定的操作,都有与之对应的机器码。除此之外,单片机还提供了一些注释性指令,这些指令,仅在汇编时向汇编程序提供信息,使其准确而顺利地完成汇编任务。这种指令没有相应的机器码,因而不会被CPU所执行,故称为伪指令。 1赋值指令 常量名 EQU 表达式 AA EQU 03H BB EQUAA*3,2起始指令 ORGaddr16

34、3 3.结束指令 END该指令用于源程序末尾,表示程序的结束。 4字节定义指令 标号:DB该指令表示以标号为起始地址,依次存放数据表中的字节数据,各数据间用逗号分开,3.3.6 伪指令,5字定义指令 标号:DW该指令表示以标号为起始地址,依次存放数据表中的字数据。 6位定义指令 标号BIT位该指令的作用类似EQU指令,不过定义的是位。,3.3.6 伪指令,主要内容,4.1汇编语言程序设计概述4.2汇编语言程序设计步骤4.3汇编语言程序设计,第四章 MCS-51汇编语言程序设计,4.1 汇编语言程序设计概述,汇编语言程序 :用汇编语言编写的、完成特定功能的指令序列 。 汇编程序:能将汇编语言源程

35、序转换成机器语言目标程序的系统软件。,4.1 汇编语言程序设计概述,汇编语言程序到机器语言程序的转换过程称为汇编。1.手工汇编:人工查指令表汇编。用于设计短小程序或调试程序的场合。2.机器汇编:用汇编程序进行汇编。,4.1 汇编语言程序设计概述,汇编源程序经汇编程序汇编得到机器语言程序,4.1 汇编语言程序设计概述,汇编的主要任务:,1)确定程序中每条汇编语言指令的指令机器码。2)确定每条指令在存储器中的存放地址。3)提供错误信息。4)提供目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)。,4.1 汇编语言程序设计概述,一、汇编语言语句的种类和格式1.指令性语句: 指令系统中的全

36、部指令,每条指令有对应的机器代码。2. 伪指令: 汇编控制指令,仅提供汇编信息,没有对应的机器代码。,4.1 汇编语言程序设计概述,MCS-51的汇编语言的四分段格式如下: 标号字段 操作码字段 操作数字段 注释字段规则:(1)标号字段和操作字码段之间要有冒号“:”相隔;(2)操作码字段和操作数字段间的分界符是空格;(3)双操作数之间用逗号相隔; (4)操作数字段和注释字段之间的分界符用分号“;”相隔。其中,操作码字段为必选项,其余各段为任选项。,4.1 汇编语言程序设计概述,下面是一段汇编语言程序的四分段书写格式例:把片外存储器2200H单元中的数送入片内70H单元中。标号域 操作码域 操作

37、数域 注释域BEGIN:MOV DPTR,#2200H ;DPTR)=2200H MOV R0,#70H ;(R0)=70H MOVX A,DPTR ;(A)=(DPTR) MOV R0,A ;(R0)=(A) HERE: SJMP HERE,4.1 汇编语言程序设计概述,基本语法规则:1标号字段是语句所在地址的标志符号(1)标号后边必须跟以冒号“:” (2)由18个ASCII字符组成(3)同一标号在一个程序中只能定义一次 (4)不能使用汇编语言已经定义的符号作为标号,4.1 汇编语言程序设计概述,2操作码字段 是汇编语言指令中唯一不能空缺的部分。汇编程序就是根据这一字段来生成机器代码的。3操

38、作数字段 通常有单操作数、双操作数和无操作数三种情况。如果是双操作数,则操作数之间,要以逗号隔开。,4.1 汇编语言程序设计概述,(1)十六进制、二进制和十进制形式的操作数表示。 (2)工作寄存器和特殊功能寄存器的表示采用工作寄存器和特殊功能寄存器的代号来表示,也可用其地址来表示。4注释字段必须以分号“;”开头,换行书写,但必须注意也要以分号“;”开头。,4.1 汇编语言程序设计概述,二、伪指令 常用伪指令及其功能:1. ORG起始地址指令:指明程序和数据块起始地址。指令地址 机器码源程序ORG 2000H 2000H 78 30MAIN:MOV R0,#30H 2002H E6 MOV A,

39、R0 ORG 3000H 3000H 23 DB 23H,100,A,4.1 汇编语言程序设计概述,2.DB 在程序存储器的连续单元中定义字节数据。 例: DB 12H,100,A3.DW在程序存储器的连续单元中定义字数据。 例: DW 1234H,5678H4.EQU等值。为标号或标识符赋值。 X1 EQU 2000HX2 EQU 0FH 5.END结束汇编指令。,4.2 汇编语言程序设计步骤,1.分析问题,确定算法2.根据算法,画出程序流程图3.分配内存工作区及有关端口地址4.编写程序 养成在程序的适当位置上加上注释的好习惯。5.上机调试 编写完毕的程序,必须“汇编”成机器代码,才能调试和运行,调试与硬件有关程序还要借助于仿真开发工具并与硬件连接。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报