《51汇编程序练习题1..docx》由会员分享,可在线阅读,更多相关《51汇编程序练习题1..docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机汇编程序设计练习、存储器之间的数据传送1、编程实现将单片机内部RAM60H起先的连续32个单元置为FFH。MOV RO,#60HMOV R7,#32MOVR1,#OFFHMOV A,RILOOP: MOV R0,AINC RODJNZ R7,LOOPSJMP$END2、编程实现将内部RAM30H起先的连续16个数传送到内部RAM50H起先 的连续单元中。MOV R0,#30HMOVR1,#50HMOV R7,#16LOOP: MOV A,R0INC ROINCR 1DJNZ R7,LOOPSJMP$END3、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部 RAM30
2、H起先的单元中,数据块的长度为32个字节。4、编程实现将单片机内部RAM30H为首地址的数据块传送到外部 RAM2000H起先的单元中,数据块的长度存放于内部RAM的20H单元。5、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部 RAM30H起先的单元中,直到数据内容为0DH时停止传送。6、编程实现将ROM1000H地址的内容传送到内部RAM的25H单元。7、编程实现将ROM2000H起先的连续10个地址的内容传送到内部RAM的 25H起先的单元。8、编程实现将ROM1000H起先的连续100个地址的内容传送到外部 RAM2000H起先的连续单元中。二、查表程序设计1、编
3、写查表程序,要查表的数据存放在R7中,其范围为09。编程查其平方 值,并存放于40H。2、编写查表程序,要查表的数据存放在R7中,其范围为09。编程查其立方 值,并存放于R6。3、单片机外部ROM TABI地址起先存放一组ASCII码表,试用查表方法,将R2的内容(范围为。F转换为与其对应的ASCII码,并从P1 口输出。4、运用8051的P1 口作为段控驱动共阳LED数码管,硬件连接如图。编程实现将8051 R7单元内容(在00H-09H之间显示在数码管上。00H-09H的共阳字形代码如下表所示。60H ;00HO1H02H03H04H05H06H07 H08H09H字形代码C0HF9HA4
4、HB0H99H92H82HF8H80H90HVCC8051 OOH* 卜三、多字节无符号数的加减法1、编一个三字节无符号数的减法程序。被减数存放在内部RAM的30H起先 的连续三个单元中(高位在高地址,减数存放在内部RAM的40H起先的连续三个 单元中(高位在高地址,请将差存放在内部RAM的50H起先的连续三个单元中(高位在高地址,借位存放在01H位地址2、编一个四字节无符号数的加法程序。被加数存放在内部RAM的25H起先 的连续四个单元中(高位在高地址,加数存放在内部RAM的55H起先的连续四个 单元中(高位在高地址,请将和存放在内部RAM的25H起先的连续四个单元中(高 位在高地址,进位存
5、放29H字节地址中。3、编一个N字节无符号数的加法程序。被加数存放在内部RAM的符号地 址AAA起先的连续单元中(高位在低地址,加数存放在内部RAM的符号地址BBB 开始的连续单元中(高位在低地址,请将和存放在内部RAM的AAA起先的连续 单元中,进位存放符号地址JWEI字节。四、多路散转1、请编程实现依据A的值进行多路散转的程序。即当A=0时调用PROO子 程序;当A=1时,调用PRO1子程序,,”当A=10时,调用PRO 10子程序。2、请编程 实现依据R7的值进行128路散转的程序。即当(R7 =0时,调用CHULI0子程序;当 (R7 =1时,调用CHULI1子程序,当A=128时,调
6、用CHULI128子程序。五、软件定时程序设计计算下面程序的延时时间:1、MOV R6, #TIMELOOP :NOPNOPDJNZ R6, LOOP计算当TIMER、1、2、255时的延时时间LOOPO:MOV R6, #TIME2LOOPkNOPNOPDJNZ R6, LOOP1DJNZ R7, LOOPO六、数据检索程序设计1、在内RAM20H-3FH地址的32个单元中,存放一批数据,试检索是否有与R0 寄存器内容相等的数,若检索成功,将该数据地址存放在R1,否则将FFH存放在R1 中。2、在内RAM20H29H地址的10个单元中,存放一批数据,试检索是否含有立 即数30H,若检索成功,
7、将该数据地址存放在31H,否则将FFH存放在31H。3、统 计内RAM20H 4FH单元中内容为“0”的个数,并把结果存入50H单元。七、极 值查找1、将内部RAM50H、51H单元两个无符号数中较大的数存入60H单元。2、在内部RAM40-4FH中存在16个无符号数,找出其中的最小数,存放到 50H单元。先画出程序框图,再编程。3、内部RAM中有一个数据块,首地址为30H,长度存放在2BH单元,要求把其 中的最大值找出,并放到以20H单元。、4、内部RAM以30H为首地址的一个数据块,第一个数据为该数据长度。试求 该数据的最大值,把结果放在内部RAM的70H单元中。画出程序流程图并编写 程序。*5、内部RAM20H起先存放一组有符号的数,数据个数存放在内部RAM1FH 单元中,请编程统计其中大于0、等于0、小于。的数的个数,分别存放于70H、 71H、72H o*6、内部RAM20H起先存放一组有符号的数,数据个数存放在内部RAM1FH 单元中,请编程将其中大于0、等于0、小于。的数分别存放于70H、60H、50H 起先的连续单元中。