第4章 汇编语言程序设计; MOV A,R0 ;读低8位
CPL A ;取反
ADD A,#1 ;加1
MOV R2,A ;存低8位
MOV A,R1 ;读高8位
CPL A ;取反
ADDC A,#80H ;加进位及符号位
MOV R3,A ;存高8位
END ; ——根据不同条件转向不同的处理程序;例1:求单字节有符号二进制数的补码(设二进制数在累加器A中,将其补码放回到A中) 。
分析: 正数补码是其本身,负数的补码是其反码加1。因此,程序首先判断被转换数符号,负数进行转换,正数则不变。;例2:设变量x以补码形式存放在片内RAM30H单元中,变量y与x的关系是:;A=?;例3:多分支程序(散转程序)
根据R7的内容转向相应的处理程序。设R7的内容为0~N,对应的处理程序的入口地址分别为PR0~PRN。
MOV DPTR,#TAB ;置表首地址
MOV A,R7 ;分支转移序号送A
RL A
ADD A,R7 ;分支转移序号乘以3
JMP @A+DPTR
TAB:LJMP PR0
LJMP PR1
… … …
LJMP PRN ;练习:两个无符号数比较大小
将片外RAM 0040H、0041H地址中的内容相比较,其中较大数存入片外RAM 0042H地址中。;;开始;例1:假设在片内RAM40H单元开始存放有8个无符号字节数,找出其中最大值,存入30H单元中。
MOV R0,#40H
MOV R2,#7
MOV 30H,@R0
LOOP:INC R0
MOV A,@R0
CJNE A,30H,NEXT
NEXT: JC LOP1
MOV 30H,A
LOP1:DJNZ R2,LOOP
END;例2:将内部数据存储器30H~7FH单元的内容传送到外部数据存储器以1000H开始的连续单元中去。
解: 30H~7FH共计80个单元,需传送80次数据。将R2作为循环计数寄存器。;例3 :将内部RAM中起始地址为data的数据串送到外部RAM中起始地址为buffer的存储区域中,直到发现‘$’字符,传送停止。----循环次数事先不知道先判断,后执行。;例4:编写延时10ms子程序,fosc=12MHz。
解:fosc=12MHz,一个机器周期为1?s。
MOV R6,#20 ; 置外循环次数
DLP1: MOV R7,#250 ; 置内循环次数
DLP2: DJNZ R7,DLP2 ; 2机周×250 =500机周
DJNZ R6,DLP1 ; 500机周×20= 10000机周
RET
说明:MOV Rn指令为1个机器周期;
DJNZ指令为2个机器周期;
RET指令为2个机器周期;
{[(2×250)+1+2]×20+1+2}×1?s=10063?s≈10ms;1.数制转换:136= B= H;12.34H= B。
2.MOV A, @R1指令中源操作数的寻址方式是 。
3.使用51单片机的片内ROM时,需将 引脚接 电平。
4.当晶振频率为12MHz时,一个机器周期为 。
5.若A=82H,R0=40H,CY=1,执行指令ADDC A,R0后,A= , CY= ,AC= ,OV= ,P= 。
6.执行下列程序段后,(P1)= H。
MOV P1,#5DH
CPL P1.1
CPL P1.2
CLR P1.6
您可能关注的文档
最近下载
- 压力管道焊缝射线检测施工方案.docx VIP
- 2025-2026学年历史统编版八年级下册 第2课 巩固人民民主政权 课件(共28张PPT).pptx VIP
- 《城镇化进程及其影响》湘教版(2019)高中地理必修二.pptx VIP
- 2025年江西信息应用职业技术学院单招笔试职业技能考核试题库含答案解析.docx VIP
- 《心理健康讲座》ppt课件(图文).pptx VIP
- LYT5005-2014 林区公路设计规范.docx
- 天津城投集团校招面试题及答案.doc VIP
- 《预埋件通用图》HG_T 21544-2006.pdf VIP
- 2025年哈尔滨市中考物理试题(含答案及解析).docx
- 溶液聚合法年产2万吨聚丙烯酰胺的生产工艺设计.pdf VIP
原创力文档

文档评论(0)