单片机及接口技术单片机汇编精选PPT.ppt
《单片机及接口技术单片机汇编精选PPT.ppt》由会员分享,可在线阅读,更多相关《单片机及接口技术单片机汇编精选PPT.ppt(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机及接口技术单片机汇编第1页,此课件共21页哦汇汇汇汇编编编编语语语语言言言言程程程程序序序序设设设设计计计计主要内容主要内容1.汇编语言格式及构成汇编语言格式及构成2.汇编源程序设计步骤及汇编汇编源程序设计步骤及汇编3.顺序程序设计顺序程序设计4.分支程序设计分支程序设计5.循环和查表程序设计循环和查表程序设计6.子程序设计子程序设计第2页,此课件共21页哦2.3.1汇编语言格式汇编语言格式标号段:操作码段标号段:操作码段操作数段;注释段操作数段;注释段如:如:LP1:MOVR2,#10;设置循环次数设置循环次数标标号号段段:指指明明所所在在指指令令操操作作码码字字节节所所在在的的内内存
2、存地地址址。标标号号由由大大写写英英文文字字母母开开头头的的字字母母和数字串组成,长度为和数字串组成,长度为18个字符。标号段可省略。个字符。标号段可省略。2.3.2汇编语言构成汇编语言构成1.指令性语句(助记符语句)指令性语句(助记符语句)2.指示性语句(伪指令)指示性语句(伪指令)a.ORGORG(起始汇编)伪指令(起始汇编)伪指令例:例:ORG2000H;指定程序存储地址从指定程序存储地址从2000H开始开始b.ENDEND(结束汇编)伪指令(结束汇编)伪指令例:例:ENDc.EQU(赋值)伪指令(赋值)伪指令字符名称字符名称EQU数据或汇编符数据或汇编符;将右边的数据或汇编符赋给左边的
3、字符名称;将右边的数据或汇编符赋给左边的字符名称汇汇汇汇编编编编语语语语言言言言格格格格式式式式及及及及构构构构成成成成第3页,此课件共21页哦例如例如:AA EQU RAA EQU R1 1 ;AAAA当作寄存器当作寄存器R R1 1使用使用 A10 EQU 10H A10 EQU 10H ;A10=10HA10=10H DELAY EQU 07E6H DELAY EQU 07E6H;DELAY=07E6H DELAY=07E6H MOV R MOV R0 0,A10,A10 MOV A,AA MOV A,AA LCALL DELAY LCALL DELAYd.d.DATADATADATAD
4、ATA(数据地址赋值)伪指令(数据地址赋值)伪指令 字符名称字符名称 DATA DATA 表达式表达式 ;将右边表达式(;将右边表达式(8 8位)赋左边,位)赋左边,;只能是数据或地址等;只能是数据或地址等DATADATA型型 字符名称字符名称 XDATAXDATAXDATAXDATA 表达式;表达式;16 16位位 例:例:AA DATA 35H AA DATA 35H DELAY XDATA 0A7E6H DELAY XDATA 0A7E6H e.e.DBDBDBDB(字节定义)伪指令(字节定义)伪指令 标号:标号:DB DB 项或项表项或项表 例:例:TAB TAB:DB 45H DB
5、45H,7373,A A ;将;将45H45H、7373、AA依次存放依次存放 ;入;入TABTAB地址开始的存储单元地址开始的存储单元 汇汇汇汇编编编编语语语语言言言言格格格格式式式式及及及及构构构构成成成成第4页,此课件共21页哦f.f.DWDWDWDW(字定义)伪指令(字定义)伪指令 标号:标号:DW DW 项或项表项或项表例例:ORG 1000H ORG 1000H HETAB HETAB:DW 1234H,8AH,10 DW 1234H,8AH,10;(1000H)=12H,(1001H)=34H(1000H)=12H,(1001H)=34H ;(1002H)=8AH,(1003H)
6、=00H,(1004H)=0AH,(1005H)=00H ;(1002H)=8AH,(1003H)=00H,(1004H)=0AH,(1005H)=00Hg.DSg.DS(存储空间定义)伪指令(存储空间定义)伪指令 标号:标号:DS DS 项或项表项或项表例例:SPC SPC:DS 08H DS 08H;从从SPCSPC地址开始,预留地址开始,预留8 8个存储单元个存储单元 DB 25H DB 25H;(SPC+8SPC+8)=25H=25H h.BITh.BIT(位地址赋值)伪指令(位地址赋值)伪指令 字符名称字符名称 BIT BIT 位地址位地址例:例:A1 BIT 00H A1 BIT
7、00H A2 BIT P1.0 A2 BIT P1.0 MOV C MOV C,A1 A1 ;将位地址;将位地址00H00H的值送的值送C Cy y汇汇汇汇编编编编语语语语言言言言格格格格式式式式及及及及构构构构成成成成返回返回返回返回第5页,此课件共21页哦2.3.3汇编源程序设计步骤及汇编汇编源程序设计步骤及汇编源程序设计步骤:源程序设计步骤:1 1)拟拟定定设设计计任任务务书书,设设计计任任务务书书包包括括:程程序序功功能能、技技术术指指标标、精精度度等等级级、实实施施方方案、工程进度、所需设备、研制费用、人员分工案、工程进度、所需设备、研制费用、人员分工2 2)建立数学模型)建立数学模
8、型3 3)确立算法)确立算法4 4)绘制程序流程图)绘制程序流程图5 5)编制汇编语言源程序)编制汇编语言源程序6 6)上机调试)上机调试汇编语言源程序的汇编汇编语言源程序的汇编人工汇编人工汇编机器汇编机器汇编汇汇汇汇编编编编语语语语言言言言格格格格式式式式及及及及构构构构成成成成返回返回返回返回第6页,此课件共21页哦2.3.4 2.3.4 顺序程序设计顺序程序设计例题例题1 1:求一个:求一个1616位二进制位二进制负数的补码。设此负数的补码。设此1616位二进位二进制数存于制数存于NUMNUM、NUM+1NUM+1单单元元 解:补码解:补码=反码反码+1+1ORG 1000HORG 10
9、00HNUM DATA 20HNUM DATA 20HMOV RMOV R0 0,#NUM#NUMMOV AMOV A,RR0 0 CPL ACPL AADD AADD A,#01H#01HMOV RMOV R0 0,A AINC RINC R0 0 MOV AMOV A,RR0 0 CPL ACPL AADDC AADDC A,#00H#00HMOV RMOV R0 0,A ASJMP$SJMP$ENDEND顺顺顺顺序序序序程程程程序序序序设设设设计计计计返回返回返回返回课7第7页,此课件共21页哦2.3.5 2.3.5 分支程序设计分支程序设计 分分分分支支支支程程程程序序序序设设设设计计
10、计计例例题题2 2:已已知知VARVAR单单元元内内有有一一自自变变量量X X,按按如如下下条条件件编编出出求求函函数值数值Y Y并将它存入并将它存入FUNCFUNC单元的程序单元的程序若若X0X0,则,则Y=1Y=1;若若X=0X=0,则,则Y=0Y=0;若若X0X0VAR0,则转,则转POSPOSMOV AMOV A,#0FFH#0FFH;若;若VAR0VAR0,-1-1给给A ASJMP DONESJMP DONEPOS POS :MOV AMOV A,#01H#01HDONEDONE:MOV FUNCMOV FUNC,A A SJMP SJMP$END END返回返回返回返回第8页,此
11、课件共21页哦2.3.6循环和查表程序设计循环和查表程序设计循循循循环环环环和和和和查查查查表表表表程程程程序序序序设设设设计计计计例例题题3 3:已已知知内内部部RAM RAM ADDRADDR为为始始址址的的无无符符号号数数数数据据块块的的块块长长存存储储于于LENLEN单单元元内内,请请编编程找出数据块中的最大数并存入程找出数据块中的最大数并存入MAXMAX单元单元解:解:ORG 1000H ORG 1000H LEN DATA 31H LEN DATA 31H MAX DATA 32H MAX DATA 32H MOV R0 MOV R0,#ADDR#ADDR ;R0R0指向数据块,初
12、始化为数据块首地址指向数据块,初始化为数据块首地址 MOV MAX,#00H MOV MAX,#00H ;MAXMAX单元初始化,清零单元初始化,清零LOOPLOOP:MOV AMOV A,R0 R0 ;开始循环体,将一个数取到;开始循环体,将一个数取到A A CJNE A CJNE A,MAXMAX,BRCHBRCH;比较该数与;比较该数与MAXMAX的大小的大小BRCHBRCH:JC NEXT JC NEXT ;若该数小,则进行下一次循环;若该数小,则进行下一次循环 XCH A XCH A,MAX MAX ;若该数大,则与;若该数大,则与MAXMAX交换交换NEXTNEXT:INC R0
13、INC R0 ;为下一次循环做准备;为下一次循环做准备 DJNZ LEN DJNZ LEN,LOOP LOOP ;判断循环次数;判断循环次数 SJMP SJMP$END END返回返回返回返回第9页,此课件共21页哦例题例题4 4:R0R0的低四位对应一个的低四位对应一个1616进制数码,编写程序,将该数码对应字符的进制数码,编写程序,将该数码对应字符的ASCIIASCII编码编码送入送入R1R1。(例如:若。(例如:若R0R0的低的低4 4位为位为1110B1110B,对应,对应1616进制数码进制数码E E,则将字符,则将字符E E的的ASCIIASCII码送入码送入R1R1)987654
14、3210SJMP$MOVR0,AMOVCA,A+PC解:解:ORG 1000H ORG 1000H MOV A,R0 MOV A,R0 ANL A,#0FH ANL A,#0FH ADD A,#03H ADD A,#03H MOVC A,A+PC ;MOVC A,A+PC ;查表指令查表指令 MOV R1,A;MOV R1,A;指令长度为一个字节指令长度为一个字节 SJMP SJMP$;指令长度为两个字节指令长度为两个字节ASCTABASCTAB:DB DB 0,1,2,3,4;制表制表 DB DB 5,6,7,8,9 DB DB A,B,C,D,E,F END END循循循循环环环环和和和和
15、查查查查表表表表程程程程序序序序设设设设计计计计第10页,此课件共21页哦2.3.7 2.3.7 子程序设计子程序设计 子子程程序序可可自自动动保保护护断断点点(即即主主程程序序中中下下一一条条指指令令的的地地址址),但但不不会会自自动动保保护护现现场场(即即运运行行子子程程序序前前的的寄寄存存器器状状态态),若若要要保保护护现现场场,则则在在子子程程序序的的开开始始部部分分用压入堆栈命令保护现场,在结束部分用弹出堆栈命令恢复现场用压入堆栈命令保护现场,在结束部分用弹出堆栈命令恢复现场 可利用寄存器、存储单元或堆栈进行子程序的入口参数和出口参数传递可利用寄存器、存储单元或堆栈进行子程序的入口参
16、数和出口参数传递例例题题5 5:设设MDAMDA和和MDBMDB内内有有两两数数a a和和b b,请请编编出出求求c=ac=a2 2+b+b2 2并并把把c c送送入入MDCMDC的的程程序序,设设a a和和b b皆皆为为小小于于1010的整数的整数SQRTABSQR1008164493625表表169410RETMOVCA,A+PC子子子子程程程程序序序序设设设设计计计计第11页,此课件共21页哦 ORG 1000HORG 1000H MDA DATA 20H MDA DATA 20H MDB DATA 21 MDB DATA 21 MDC DATA 22H MDC DATA 22H MOV
17、 A,MDA MOV A,MDA ;入口参数传递;入口参数传递 ACALL SQRACALL SQR ;调用子程序;调用子程序 MOV R MOV R1 1,A,A MOV A,MDB MOV A,MDB ACALL SQR ACALL SQR ADD A,R ADD A,R1 1 MOV MDC,A MOV MDC,A SJMP SJMP$SQRSQR:ADD A,#01 ADD A,#01 ;子程序;子程序 MOVC A,A+PC MOVC A,A+PC RET RET ;RETRET为一个字节为一个字节SQRTABSQRTAB:DB 0,1,4,9,16 DB 0,1,4,9,16 ;平
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 接口 技术 汇编 精选 PPT
限制150内