汇编语言程序设计_第1页
汇编语言程序设计_第2页
汇编语言程序设计_第3页
汇编语言程序设计_第4页
汇编语言程序设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章汇编语言程序设计复习:

汇编语句的格式

汇编语言的构成

伪指令

程序设计的步骤:

分析题意

确定算法

画程序流程图

编写源程序

调试修改1整理pptMOV A,R0 ;读低8位

CPL A ;取反

ADD A,#1 ;加1 MOV R2,A ;存低8位

MOV A,R1 ;读高8位

CPL A ;取反

ADDC A,#80H ;加进位及符号位

MOVR3,A ;存高8位

END 一.顺序结构程序

——程序逐条执行【例】已知16位二进制负数的原码存放在R1R0中,试求其补码,并将结果存在R3R2中。2整理ppt

——根据不同条件转向不同的处理程序二.分支结构程序编写分支程序主要在于正确使用转移指令(条件转移指令、比较转移指令、位操作转移指令)。分支程序有:单分支结构、双分支结构、多分支结构。3整理ppt例1:求单字节有符号二进制数的补码(设二进制数在累加器A中,将其补码放回到A中)。分析:正数补码是其本身,负数的补码是其反码加1。因此,程序首先判断被转换数符号,负数进行转换,正数则不变。

JNB ACC.7,AAA

;(A)>0,不需要转换

MOV C,ACC.7

;保存符号

MOV 00H, C

;保存符号

CPL A ADD A,#01H

MOV C,OOH

MOV ACC.7,C

;恢复符号AAA: RET4整理ppt例2:设变量x以补码形式存放在片内RAM30H单元中,变量y与x的关系是:编程根据x的值求y值并放回原单元。分析:根据x的大小来决定y的值。

取x、判断x的大小、给y赋值、存y5整理pptA=?y=x+5<0>0y=20Hy=x0取x即(30H)A开始存y即y30H结束MOVA,30H

JZNEXTANLA,#80H

JZLPMOVA,#05HADDA,30HMOV30H,A

SJMPLPNEXT:MOV30H,#20HLP:SJMP$6整理ppt例3:多分支程序(散转程序)根据R7的内容转向相应的处理程序。设R7的内容为0~N,对应的处理程序的入口地址分别为PR0~PRN。

MOVDPTR,#TAB;置表首地址

MOVA,R7;分支转移序号送A

RLAADDA,R7;分支转移序号乘以3

JMP@A+DPTRTAB:LJMPPR0LJMPPR1………LJMPPRN

7整理ppt练习:两个无符号数比较大小

将片外RAM0040H、0041H地址中的内容相比较,其中较大数存入片外RAM0042H地址中。8整理ppt——按某种控制规律重复执行的程序三.循环结构程序循环程序一般由:初始化部分循环体部分--处理部分、修改部分、控制部分结束部分其结构一般有两种:先进入处理部分,再控制循环至少执行一次循环体先控制循环,再进入处理部分循环体是否执行,取决于判断结果。9整理ppt开始设置循环初值循环处理循环修改结束处理结束循环结束?开始设置循环初值循环处理循环修改结束处理结束循环结束?YN先执行后判断先判断后执行10整理ppt例1:假设在片内RAM40H单元开始存放有8个无符号字节数,找出其中最大值,存入30H单元中。

MOVR0,#40HMOVR2,#7MOV30H,@R0LOOP:INCR0MOVA,@R0CJNEA,30H,NEXTNEXT:JCLOP1MOV30H,ALOP1:DJNZR2,LOOPEND11整理ppt例2:将内部数据存储器30H~7FH单元的内容传送到外部数据存储器以1000H开始的连续单元中去。解:30H~7FH共计80个单元,需传送80次数据。将R2作为循环计数寄存器。开始R0←30HDPTR←1000HR7←50HA←((R0))(DPTR←(A)R0←(R0)+1DPTR←(DPTR)+1R7=0?结束No

MOV R0, #30H MOV DPTR,#1000H MOV R2, #50HLOP: MOV A,@R0 MOVX @DPTR,A INC R0

INC DPTR DJNZ R2,LOP

END12整理ppt例3:将内部RAM中起始地址为data的数据串送到外部RAM中起始地址为buffer的存储区域中,直到发现‘$’字符,传送停止。----循环次数事先不知道先判断,后执行。MOVR0,#dataMOVDPTR,#bufferLOOP1:MOVA,@R0CJNEA,#24H,LOOP2;判断是否为$字符

SJMPLOOP3;是,转结束LOOP2:MOVX@DPTR,A;不是,传送数据

INCR0INCDPTRSJMPLOOP1;传送下一数据LOOP3:END13整理ppt例4:编写延时10ms子程序,fosc=12MHz。解:fosc=12MHz,一个机器周期为1s。MOVR6,#20;置外循环次数DLP1:MOVR7,#250;置内循环次数DLP2:DJNZR7,DLP2;2机周×250=500机周

DJNZR6,DLP1;500机周×20=10000机周

RET说明:MOVRn指令为1个机器周期;DJNZ指令为2个机器周期;RET指令为2个机器周期;{[(2×250)+1+2]×20+1+2}×1s=10063s≈10ms14整理ppt1.数制转换:136=

B=

H;12.34H=

B。2.MOVA,@R1指令中源操作数的寻址方式是

。3.使用51单片机的片内ROM时,需将

引脚接

电平。4.当晶振频率为12MHz时,一个机器周期为

。5.若A=82H,R0=40H,CY=1,执行指令ADDCA,R0后,A=

,CY=

,AC=

,OV=

,P=

。6.执行下列程序段后,(P1)=

H。MOVP1,#5DHCPLP1.1CPLP1.2CLRP1.6SETBP1.77.假定(50H)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论