作业答案2
第2章 mcs-51单片机指令系统与汇编语言程序设计。
4. 假定累加器a中的内容为30h,执行指令1000h:movc a,@a+pc后,把程序存储器( 1031h )单元的内容送入累加器a中。
6. 指出下列指令中的源操作数的寻址方式。
1)mov r0,#30h立即寻址。
2)mov a,30h直接寻址。
3)mov a,@r0寄存器间接寻址。
4)movx a,@dptr寄存器间接寻址。
5)movc a,@a+dptr 变址寻址。
6)mov p1,p2直接寻址。
7)mov c,30h位寻址。
8)mul ab寄存器寻址。
9)mov dptr,#1234h 立即寻址。
10)pop acc直接寻址。
11)sjmp相对寻址。
7. 指出下列各指令在程序存储器中所占的字节数。
1)mov dptr,#1234h 3字节。
2)movx a, @dptr 1字节。
3)sjmp loop2字节。
4)mov r0,a1字节。
5)ajmp loop2字节。
6)mov a,30h2字节。
7)ljmp loop3字节。
8)mov b,#30h2字节。
15.设堆栈指针(sp)=60h,片内ram中的(30h)=24h,(31h)=10h。执行下列程序段后,61h, 62h, 30h, 31h, dptr及sp中的内容将有何变化?
push 30h
push 31h
pop dpl
pop dph
mov 30h, #00h
mov 31h, #0ffh
解:结果为: 61h、62h单元为堆栈单元,其内容已被弹出栈。 (30h)=00h
31h)=0ffh (dptr)=2410h (sp)=60h
17.完成以下的数据传送过程。
1)r1的内容传送到r0。
2)片外ram 20h单元的内容送r0。
3)片外 ram 20h单元的内容送片内ram 20h单元。
4)片外ram 1000h单元的内容送片内 ram 20h单元。
5)rom 2000h单元的内容送r0。
6)rom 2000h单元的内容送片内ram 20h单元。
7)rom 2000h单元的内容送片外ram 20h单元。
解:cpu内部ram用mov指令,不能在两个rn/@ri之间直接传送。
片外 ram用movx指令:
低256b,可在a与@ri之间传送;
64kb范围内,可在a与@dptr之间传送。
rom用movc指令,只能用movc a,@a+dptr/movc a,@a+pc。
1)r1的内容传送到r0 ;
mov a, r1
mov r0, a
2)片外ram 20h单元内容送r0 ;
mov r1, #20h
movx a, @r1
mov r0, a
3)片外 ram 20h单元的内容送片内ram 20h单元;
movr0, #20h
movx a, @r0
mov 20h, a
4)片外ram 1000h单元的内容送片内 ram 20h 单元;
movdptr, #1000h
movx adptr
mov 20ha
5)rom 2000h单元的内容送r0单元;
clr amovdptr, #2000h
movc a, @a+dptr
mov r0, a
6)rom 2000h 单元的内容送片内ram 20h单元;
clr amov dptr, #2000h
movc a, @a+dptr
mov 20h, a
7)rom 2000h单元的内容送片外ram 20h单元。
clr amov dptr, #2000h
movc a, @a+dptr
mov r0, #20h
movx @r0, a
19.编程将片内ram的40h~60h单元中内容送到片外ram以3000h开始的单元中。并将原片内ram数据块区域全部清0。
解org 0000h
ljmp main
org 0030h
main: mov sp, #60h
mov r7,#21h
mov r1,#40h
mov dptr,#3000h
loop: mov a,@r1
movx @dptr,a
mov @r1, #00h
inc r1
inc dptr
djnz r7,loop
sjmp $
end23.设有100个有符号数,连续存放在片外ram以2000h为首地址的存储区中,试编程统计其中正数、负数、零的个数。
解: org 0000h
ljmp main
org 0030h
main: mov sp, #60h
mov r2,#
clr amov r3,a
mov r4,a
mov r5,a
mov dptr,#2000h
loop: movx a,@dptr
cjne a,#00h,net1
inc r3
sjmp net3
net1: jb acc.7,net2
inc r4
sjmp net3
net2: inc r5
net3: inc dptr
djnz r2,loop
sjmp $
end24.试编一查找程序,从外部ram首地址为2000h、长度为9fh的数据块中找出第一个ascii码a,将其地址送到20a0h和20a1h单元中。
解: org 0000h
ljmp main
org 0030h
main: mov sp, #60h
mov dptr,#2000h
mov r7,#9fh
lp0: movx a,@dptr
cjne a, #41h, lp1
mov r2,dpl
mov r3,dph
mov dptr,#20a0h
mov a, r2
movx @dptr,a
inc dptr
mov a, r3
movx @dptr,a
sjmp lp2
lp1: inc dptr
djnz r7, lp0
lp2: ret
end另一种方法:
org 0000h
ljmp start
org 0030h
start: mov r7,#9fh
mov dptr,#2000h
mov r6,#00hr6为dptr地址的低八位。
loop: movx a,@dptr
cjnz a,#65,loop1
mov dptr,#20a0h
mov a,r6
movx,@dptr,a ;把字符‘a’的低八位地址放到20a0h地址中。
inc dptr
mov a,#20h
movx @dptr,a ;把字符‘a’的高八位地址放到20a1h地址中。
sjmp $
loop1: inc r6
inc dptr
djnz r7,loop
sjmp $
end27.编程实现将片外ram中2400h~2450h单元中的数传送到2500h~2550h单元中。
解: org 0000h
ljmp main
org 0030h
main: mov sp, #60h
mov r7,#51h
mov dptr, #2400h
loop: movx a,@dptr
inc dph
movx @dptr,a
mov dph, #24h
inc dptr
djnz r7 ,loop
sjmp $
end另一种方法:
org 0000h
ljmp main
org 0030h
main: mov sp, #60h
mov r7,#51h
mov dptr, #2400h
loop: movx a,@dptr
push dph
inc dph
movx @dptr,a
pop dph
inc dptr
djnz r7 ,loop
sjmp $
end另一种方法:
org 0000h
ljmp main
org 0030h
main: mov sp, #60h
mov 30h,#24h
mov 31h,#00h
mov 32h,#25h
mov 33h,#00h
mov r2,#51h
loop: mov dph,30h
mov dpl,31h
movx a,@dptr
mov dph,32h
mov dpl,33h
movx @dptr,a
inc 31h
inc 33h
djnz r2,loop
答案单片机作业
作业一答案。1 简述cc2530的存储空间是如何映射的?答 cc2530物理存储器的两种主要存储介质 sram flash 虚拟存储空间的种类及地址范围如下 1 code 0x0 0xffff 64kb 2 data 0x00 0xff 节 3 xdata 0x0 0xffff 64kb 4 sfr...
单片机A作业答案
1.串行通信接收数据时通常采用 a a 接收中断或串行口中断接收数据 b 发送时检测是否有接收数据。c 周期性检测是否有接收数据d 实时检测接收标志位接收数据。2.下列哪一个事件是高速输出器 hso 的内部事件?b a 复位单片机 b 软件定时器 c 在管脚上输出高电平 d 在管脚上输出低电。3.0...
单片机作业答案
p64 第三章作业题答案。4 写出完成下列操作的指令。1 r0内容传送r1中。mov a,r0 mov r1,a 2 片内ram20h单元内容传送到片内ram40h单元中。mov 40h,20h 3 片内ram的30h单元内容传送到片外ram50h单元中。mov a,30h mov ri,50h m...