片机的汇编语言与程序设计题解

片机的汇编语言与程序设计题解

ID:29779527

大小:92.50 KB

页数:5页

时间:2018-12-23

片机的汇编语言与程序设计题解_第1页
片机的汇编语言与程序设计题解_第2页
片机的汇编语言与程序设计题解_第3页
片机的汇编语言与程序设计题解_第4页
片机的汇编语言与程序设计题解_第5页
资源描述:

《片机的汇编语言与程序设计题解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第3章单片机的汇编语言与程序设计 习题1.MCS-51单片机有哪几种寻址方式?适用于什么地址空间?答:MCS-51单片机有7种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址、相对寻址。直接寻址方式:操作数的地址由指令直接给出,适用于片内RAM的所有地址空间;如MOVA,68HMOVA,PSW寄存器寻址方式:指令给出的是寄存器的编码,操作数在编码指定的寄存器中,适用于片内00H至1FH的32个字节,用R0,…,R7表示,通过PSW的RS1和RS0选择组号确定对应32个字节中的其中8个,还有

2、累加器A,以及乘除法指令中的A和B寄存器,位寻址方式中的布尔累加器C;MOVA,R1MULABINCDPTR寄存器间接寻址方式:指令给出的是寄存器的编码,操作数地址在编码指定的寄存器中,适用于片内RAM的全部空间,其中52系列中的80H至FFH只能用寄存器间接寻址;如MOVA,@R0MOVA,@R1MOVXA,@DPTR立即寻址方式:操作数本身在指令中直接,给出适用于用8位立即数对片内RAM所有地址单元赋值,也可用16位立即数对DPTR赋值;如MOVA,#0E2HMOVDPTR,#2000H变址寻址方式:以DPTR

3、或PC作为基地址寄存器,以累加器A作为变址寄存器,将基址寄存器与变址寄存器的内容相加形成操作数的实际地址的一种寻址方式,变址寻址方式适用于程序存储器ROM,仅有三条指令如下:MOVCA,@A+DPTRMOVCA,@A+PCJMP@A+DPTR位寻址方式:指令中直接给出操作数所在单元的位地址,适用于片内RAM中地址20H至2FH中的16个字节中的128个位地址空间和80H至FFH中地址中可以被8整除的所有SFR中的每个位地址空间;如MOVC,7FHMOVF0,CMOVC,ACC.7相对寻址方式:为相对转移指令而设,指

4、令中直接给出转移的相对偏移量,其转移目标在当前指令-128至+127字节范围内的地址空间。如SJMPSTARTHERE:SJMPHERE;等效于:SJMP$2.MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,怎样判断某内部数据单元的内容是否为零?答:MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,判断某内部数据单元的内容是否为零是能通过取数到A累加器,再判断A中的每一位是否为零来确定其值是否为零。3.编程将内部RAM的20H--30H单元内容清零。解:设一个片内RAM指针R0,先指向首地

5、址20H,通过累加器A清零,然后采用间接寻址方式依次将A中的零值传送到指针所指的片内RAM单元,每传送一个字节,地址指针加1,直到达到地址为30H或达到计数器规定的17个字节为止。程序1:MOVR0,#20H;设地址指针初值CLRA;累加器清0CONT:MOV@R0,A;置0指针所指单元INCR0;地址指针加1CJNER0,#31H,CONT;指针未超过终点则继续SJMP$;暂停程序2:MOVR0,#20H;设地址指针初值CLRA;累加器清0MOVR7,#17;计数器赋初值,从20H到30H共17个字节CONT:M

6、OV@R0,A;置0指针所指单元INCR0;地址指针加1DJNZR7,CONT;计数器减1,非0,则继续SJMP$;暂停4.编程查找内部RAM的32H~41H单元中是否有0AAH这个数据,若有这一数据,则将50H单元置为0FFH,否则将50H单元清零。解:设一个片内RAM指针R0,先指向首地址32H,比较@R0与#0AAH,若相等,则退出循环,给50H单元赋0FFH,若不相等,则R0加1为继续比较下一个字节做准备,直到达到地址为41H或达到计数器规定的16个字节为止还没找到,则给50H单元赋00H程序1:MOVR0

7、,#32H;设地址指针初值CONT:CJNE@R0,#0AAH,NEXT;比较查找值与指针所指单元的值,不相等转移MOVA,#0FFH;相等,则准备好要赋的标志值0FFHSJMPDOWN;转存到保存结果处NEXT:INCR0;修改地址指针CJNER0,#42H,CONT;若指针未越过终点,则继续MOVA,#00H;查找失败,则将00H存入结果标志单元DOWN:MOV50H,A;将比较结果标志存入50H单元SJMP$;暂停END程序2:MOVR7,#16;计数器赋初值,从20H到30H共16个字节MOVR0,#32H

8、;设地址指针初值CONT:CJNE@R0,#0AAH,NEXT;比较查找值与指针所指单元的值,不相等转移MOVA,#0FFH;相等,则准备好要赋的标志值0FFHSJMPDOWN;转存到保存结果处NEXT:INCR0;修改地址指针DJNZR7,CONT;计数器减1,非0,则继续MOVA,#00H;查找失败,则将00H存入结果标志单元DOWN:MOV50H,A;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。