51汇编程序练习题1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机汇编程序设计练习

一、存储器之间的数据传送

1、编程实现将单片机内部RAM60H开始的连续32个单元置为FFH。

2、编程实现将内部RAM30H开始的连续16个数传送到内部RAM50H开始的连续单元中。

3、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,数据块的长度为32个字节。

4、编程实现将单片机内部RAM30H为首地址的数据块传送到外部RAM2000H 开始的单元中,数据块的长度存放于内部RAM的20H单元。

5、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,直到数据内容为0DH时停止传送。

6、编程实现将ROM1000H地址的内容传送到内部RAM的25H单元。

7、编程实现将ROM2000H开始的连续10个地址的内容传送到内部RAM的25H 开始的单元。

8、编程实现将ROM1000H开始的连续100个地址的内容传送到外部RAM2000H 开始的连续单元中。

二、查表程序设计

1、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其平方值,并存放于40H。

2、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其立方值,并存放于R6。

3、单片机外部ROM TAB1地址开始存放一组ASCII码表,试用查表方法,将R2的内容(范围为0~F)转换为与其对应

的ASCII码,并从P1口输出。

4、使用8051的P1口作为段控驱动共阳

LED数码管,硬件连接如图。

编程实现将8051 R7单元内容(在

00H-09H之间)显示在数码管上。00H-09H

的共阳字形代码如下表所示。

04H 05H 06H 07H 08H 09H

三、多字节无符号数的加减法

1、编一个三字节无符号数的减法程序。被减数存放在内部RAM的30H开始的连续三个单元中(高位在高地址),减数存放在内部RAM的40H开始的连续三个单元中(高位在高地址),请将差存放在内部RAM的50H开始的连续三个单元中(高位在高地址),借位存放在01H位地址

2、编一个四字节无符号数的加法程序。被加数存放在内部RAM的25H开始的连续四个单元中(高位在高地址),加数存放在内部RAM的55H开始的连续四个单元中(高位在高地址),请将和存放在内部RAM的25H开始的连续四个单元中(高位在高地址),进位存放29H字节地址中。

3、编一个N字节无符号数的加法程序。被加数存放在内部RAM的符号地址AAA 开始的连续单元中(高位在低地址),加数存放在内部RAM的符号地址BBB开始的连续单元中(高位在低地址),请将和存放在内部RAM的AAA开始的连续单元中,进位存放符号地址JWEI字节。

四、多路散转

1、请编程实现根据A的值进行多路散转的程序。即当A=0时,调用PRO0子程序;当A=1时,调用PRO1子程序……,当A=10时,调用PRO10子程序。

2、请编程实现根据R7 的值进行128路散转的程序。即当(R7)=0时,调用CHULI0子程序;当(R7)=1时,调用CHULI1子程序……,当A=128时,调用CHULI128子程序。

五、软件定时程序设计

计算下面程序的延时时间:

1、MOV R6,#TIME

LOOP:NOP

NOP

DJNZ R6,LOOP

计算当TIME=0、1、2、255时的延时时间

2、MOV R7,#TIME1

LOOP0:MOV R6,#TIME2

LOOP1:NOP

NOP

DJNZ R6,LOOP1

DJNZ R7,LOOP0

六、数据检索程序设计

1、在内RAM20H~3FH地址的32个单元中,存放一批数据,试检索是否有与R0寄存器内容相等的数,若检索成功,将该数据地址存放在R1,否则将FFH 存放在R1中。

2、在内RAM20H~29H地址的10个单元中,存放一批数据,试检索是否含有立即数30H,若检索成功,将该数据地址存放在31H,否则将FFH存放在31H。

3、统计内RAM20H—4FH单元中内容为“0”的个数,并把结果存入50H单元。

七、极值查找

1、将内部RAM50H、51H单元两个无符号数中较大的数存入60H单元。

2、在内部RAM 40-4FH中存在16个无符号数,找出其中的最小数,存放到50H 单元。先画出程序框图,再编程。

3、内部RAM中有一个数据块,首地址为30H,长度存放在2BH单元,要求把其中的最大值找出,并放到以20H单元。、

4、内部RAM以30H为首地址的一个数据块,第一个数据为该数据长度。试求该数据的最大值,把结果放在内部RAM的70H单元中。画出程序流程图并编写程序。

*5、内部RAM20H开始存放一组有符号的数,数据个数存放在内部RAM1FH单元中,请编程统计其中大于0、等于0、小于0的数的个数,分别存放于70H、71H、72H。

*6、内部RAM20H开始存放一组有符号的数,数据个数存放在内部RAM1FH单元中,请编程将其中大于0、等于0、小于0的数分别存放于70H、60H、50H 开始的连续单元中。

相关文档
最新文档