资源描述:
《第3章 程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章章汇编语言程序设计章汇编语言程序设计软件延时流水灯程序m_DataSEGMENTDATAMOVP1,ARSEGm_DataCALLDELAYX:DS1SJMPLoopCSEGAT0000hDELAY:MOVR1,#80hMOVSP,#0FhL3:MOVR2,#60hMOVX,#80hL2:MOVR3,#26hLoop:MOVA,XL1:DJNZR3,L1RLADJNZR2,L2MOVX,ADJNZR1,L3CPLARET汇编语言语句种类指令语句汇编语句{伪指令语句指令语句:完成一定操作功能,,能够翻译成机器代码的语,能够翻译成
2、机器代码的语句句。句。。即指令语句和机器指令有对应关系。即指令语句和机器指令有对应关系。伪指令语句:为汇编程序在编译汇编语言源程序提供有关信息,,如分配存储单元,如分配存储单元、、给符号赋值、给符号赋值、、段的定义等、段的定义等,它不翻译成机器代码。由有序的汇编语言语句构成的程序称为汇编语言程序。33.2伪伪指伪指指令指令1.起始指令ORGnn功能::定义程序或数据块的起始地址:定义程序或数据块的起始地址。。指示此语句后面的。指示此语句后面的程序或数据块以nn为起始地址,,连续存放在程序存储器中,连续存放在程序存储器中。指令地址机器
3、码源程序ORG2000H2000H7830MAIN:MOVR0,#30H2002HE6MOVA,@R0…3.2伪伪指伪指指令指令1.起始指令ORGnn2.字节定义标号:DB((字节常数(字节常数,,或字符或表达式,或字符或表达式)功能:指示在程序存储器中以标号地址数据为起始地址的单元里存放的数为LN20字节数据((八位二进制数(八位二进制数)。例如LN+143LN:DB32,’C’,25H,-1LN+225则则:则:20H,43H,25H,FFHLN+3FF依次存放在地址为LN~LN+3的存储单元。3.2伪伪指伪指指令指令1.起始指令O
4、RGnn2.字节定义标号:DB((字节常数(字节常数,,或字符或表达式,或字符或表达式)例如:ORG1000HTAB:DB2BH,0A0H,‘A’,2*4表示从1000H单元开始的地方存放数据2BH,0A0H,41H((字母(字母A的ASCII码码),码),08H3.2伪伪指伪指指令指令1.起始指令ORGnn2.字节定义标号:DB((字节常数(字节常数,,或字符或表达式,或字符或表达式)3.字定义标号:DW((字常数或表达式(字常数或表达式)功能:指示在程序存储器中以标号为GH12起始地址的单元里存放的数为字数据34((即(即16位的二
5、进制数)。GH+256例如:GH:DW1234H,5678H,0878GH+400083.2伪伪指伪指指令指令1.起始指令ORGnn2.字节定义标号:DB((字节常数(字节常数,,或字符或表达式,或字符或表达式)3.字定义标号:DW((字常数或表达式(字常数或表达式)4.保留字节标号:DS((数值表达式(数值表达式)功能:指示在程序存储器中保留以标号为起始地址的若干字节单元,,其单元个数由数值表达式指定,其单元个数由数值表达式指定。例如L1:DS32从L1地址开始保留32个存储单元。3.2伪伪指伪指指令指令1.起始指令ORGnn2.字节
6、定义标号:DB((字节常数(字节常数,,或字符或表达式,或字符或表达式)3.字定义标号:DW((字常数或表达式(字常数或表达式)4.保留字节标号:DS((数值表达式(数值表达式)例如:ORG1000HBUF:DS50TAB:DB22H22H存放在1032H单元。。表示从。表示从1000H开始的地方预留50个个(个(1000H~1031H))存储字节空间)存储字节空间。3.2伪伪指伪指指令指令1.起始指令ORGnn2.字节定义标号:DB((字节常数(字节常数,,或字符或表达式,或字符或表达式)3.字定义标号:DW((字常数或表达式(字常数
7、或表达式)4.保留字节标号:DS((数值表达式(数值表达式)5.等值指令标号:EQU((数值表达式(数值表达式)表示EQU两边的量等值,,用于为标号或标识符赋值,用于为标号或标识符赋值。例如:X1EQU2000HX2EQU0FH…MAIN:MOVDPTR,#X1;DPTR=2000HADDA,#X2;A=A+0FH3.2伪伪指伪指指令指令1.起始指令ORGnn2.字节定义标号:DB((字节常数(字节常数,,或字符或表达式,或字符或表达式)3.字定义标号:DW((字常数或表达式(字常数或表达式)4.保留字节标号:DS((数值表达式(数值表
8、达式)5.等值指令标号:EQU((数值表达式(数值表达式)6.位定义标号:BIT[位地址]功能:同EQU指令,,不过定义的是位操作地址,不过定义的是位操作地址。例如AICBITP1.13.2伪伪指伪指指令指