单片机程序分析题练习B2_第1页
单片机程序分析题练习B2_第2页
单片机程序分析题练习B2_第3页
单片机程序分析题练习B2_第4页
单片机程序分析题练习B2_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.1程序如下:mov sp , #13hmov 33h , #7fhmov 44h , #0abhpush 33hpush 44hpop 33hpop 44h程序执行后,( 33h) =0abh,( 44h) =7fh2下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,a 中的结果是什么?设( 60h ) =35h ,( a ) =19h ,( r0) =30h ,( 30h ) =0fh 。( 1) mova, #48h;寻址方式:(a ) = 48h( 2)adda, 60h;寻址方式:(a ) = 4dh( 3)anla, r0;寻址方式:(a ) = 10h3阅读下列程序段,

2、写出每条指令执行后的结果,并说明此程序段完成什么功能?movr1 ,#30h;( r1)=30hmova ,#64h ;( a) = 64hadda ,#47h ;( a) =abh,( cy ) = 0,(ac ) = 0daa;( a )=31h,(cy ) =1,(ac ) =movr1 , a ;( r1) = 30h,( 30h) = 31h此程序段完成的功能4设 (a)=38h,r0=28h,(28h)=18h,执行下列程序后, ( a ) =0orla , #27hanla ,28hxchda, r0cpla5设 (a)=38h,(20h)=49h,psw=00h,(b)=02h

3、,填写以下中间结果。setbcaddca, 20h(a)= 82h(cy)= 0(ac)= 1rlca(a)=04h(cy)=1(p)= 1mulab(a)=08h(b)=00h(ov)=06已知( r0 ) =20h, (20h ) =10h, (p0) =30h, (r2) =20h,执行如下程序段后 ( 40h ) =15hmovr0 , #11h(20h)=11hmova , r2a=20h.adda , 20ha=40hmovpsw , #80hsubba , p0a=10hxrla , #45ha=15hmov40h , a( 40h) =15h7. 已知 ( r0 )=20h,

4、(20h )=36h, (21h) =17h, (36h) =34h,执行过程如下:mova , r0a=36hmovr0 , ar0=36hmova , r0a=34hadda , 21ha=4bhorla , #21ha=21hrlaa=42hmovr2 , ar2=42hret则执行结束(r0)=36h(r2)= 42h8.设在 31h 单元存有 23h, 执行下面程序:mova, 31ha=23hanla, #0fha=03hmov41h, a(41h)=03hmova, 31ha=23hanla, #0f0ha=20hswapaa=02hmov42h, a(42h)=02h则 (41

5、h)=03h(42h)= 02h9 (r0)=4bh,(a)=84h, 片内 ram(4bh)=7fh,(40)=20hmova,r0a=7fhmovr0,40h(4bh)=20hmov40h,a(40h)=7fh;movr0,#35hr0=35h问执行程序后 ,r0=35ha= 7fh4bh= 20h 40h= 7fh10.若 psw=00,执行下列程序后,psw 的 cy,ac,ov ,p 各位状态如何?mova,#0fbha=fbhmovpsw,#10hadda,#7fha=7ahcy=1; ac=1;ov=1; p=1;11程序存储器空间表格如下:地址内容已知:片内的中为,执行下列程序

6、后()a3h,a=o1h.a=02h,dprt=2000h,a=5bha=a3hmov30h,a(30h) =a3hsjmp $end执行程序后 ,(30h)= a3h12分析程序段:清零 cy 指令,给 a 立即数,; a 寄存器与地址(61h)的值相减,;a 寄存器与地址(61h)的值相加;bdc 码调整指令,把累加器 a 的值送给地址寄存器 62h( 1)程序执行何种操作?对 91h 做 bdc 码调整;(2)若已知初值: (60h) =24h,(61h)=72h, 则运行后,( 62h)= 91h。13设(),片内 e和两单元的内容分别是和,请写出下列程序段的每条指令的执行结果。(7e

7、)=00hr0=7fh(7fh)=39hdptr=10ffhdptr=1100hdptr=1101h14设 r0=20h,r1=25h, (20h)=80h ,(21h)=90h ,(22h)=a0h,(25h)=a0h,(26h)=6 fh ,(27h)=76h ,下列程序执行程序后,结果如何?clrcc=0;movr2,#3r2=3;loop:mova,r0a=80ha=90haddca,r1a=20hmovr0,a(20h)=20h;(21h)=00h;(22h)=16hincr0r0=21h;incr1r1=26hdjnzr2,loopjncnext1movr0,#01h(23h)=0

8、1hsjmp$next:decr0sjmp$.(20h ) =20h 、 (21h)= 00h、 (22h)=16h、 (23h)= 01h、 cy=1a=16h、 r0=23h、 r1=27h。15 movdptr,#2000h( dptr ) = 2000hmova,#80h( a) = 80hmovxdptr,a( 2000h )=80hincdptr( dptr) = 2001mova,#90h( a ) = 90hmovxdptr,a( 2001h )= 90hmovdptr,#2000h( dptr ) = 2000hmovxa,dptr(a ) = 80hmovb,a( b) =

9、80hincdptr( dptr ) = 2001hmovxa,dptr(a ) =90h16若 (10h)=0ffh,(11h)=00h,(12h)=0ffh,(13h)=00h,写出每一步指令运行结果mova,10h(a)=ffh,anla,#01h(a)=01h,mova,11h(a)=00h,orla,#01h(a)=01h,mova,12h(a)=ffh,xrla,#01h(a)=feh,mova,13h(a)=00h,xrla,#0aa(a)=aah,(10h)=ffh, (11h)= 00h , (12h)= ffh , (13h)=00h17. 阅读程序并回答下列问题:xdat

10、a50hydata51horg00hjmpstartorg100hstart: movsp,#60hmovx,#10( 50h) =10movy,#10(51h)=10lcallsubsub:nopincx(50h)=11x+10=20decy(51h)=9y=0;mova,ya=9jzsubretlcallsubsubret:nopret.计算 x 和 y 的值是多少?(x )20;( y )0;18. 设自变量为 x ,存放在 are 单元,应变量 y 存放在 buf 单元。给程序标注注释,说明该段子程序的功能并写出该程序的函数关系式。(7 分)start :movdptr,#aremov

11、xa , dptrjzsuljbacc.7 ,neg;注释:如果a 的值大于128 跳转 negmova , #02hsul :movdptr,#bufmovxdptr , a;注释:把a 的值传送给buf 地址中retneg:mov a ,#0fehsjmpsul如果 x=0,y=0;如果 x128,y=feh ;19. 执行下列程序段后,(p1)=_9ah_ 。movp1, #5dhcplp1.1cplp1.2clrp1.6setbp1.720. 执行下列程序段后,(a)=_8bh_,(c y)=_0_ 。mova , #c5hrla21. 下列程序段执行后,(r0)=_7eh_,(7eh

12、)=_41h_,(7fh)=_01h_。movr0, #7ehr0=7ehmov7eh , #0ffh(7eh)=ffhmov7fh , #40h(7eh)=40h1ncr0(7eh)=41h1ncr0r0=7fh;1ncr0(7fh)=1;22. 已知 (sp)=60h ,子程序subtrn的首地址为0345h ,现执行位于0123h 的 acallsubtrn 双字节指令后,(pc)=_,(61h)=_,(62h)= _。.23. 阅读下列程序,说明其功能。mov0r ,#datamova,r 0rlamovr1, arlarlaadda ,r1mov0r ,aret24. 程序填空1)数

13、据块传送,将 ram从 30h 开始的连续32 个单元的内容传递给片内ram 从 60h 开始的连续 32 个单元。org 1000hmovr7, _movr0, #30hmovr1,#60hloop : mova,r0mov_,aincr0incr1djnzr7, _sjmp $end2) ram 中 40h 单元内存有一个十六进制数,把这个数转换为bcd 码的十进制数, bcd码的十位和个位放在累加器a 中,百位放在r2 中。org2200hmov a , _mov b , #64hdiv abmov r2 , amov a , _xcha , bdivabswap_orla , bsjm

14、p $end3) 编程序将片内40h-46h 单元内容的高4 位清零,保持低4 位不变。org 1000hmov r7 , #07hmovr0, _.loop : mova , r0anla , _movr0, aincr0djnz r7 , loopsjmp $end25. 程序如下2506hm5:movsp,#58h;2509 mov10h,#0fh;250chmov11h,#0bh;250fhacallxhd;2511hmov20h,11h2514hm5a:sjmpm5axhd:push10hpush11hpop10hpop11hret问:()执行pop10h 后堆栈内容?()执行m5a:sjmpm5a 后, ( sp )=?( 20h )=?26. 解读下列程序,然后填写有关寄存器内容(1)movr1,#48hmov48h,#51hcjner1,#51h,00hjncnext1mova,#0ffhsjmpnext2next:mova,#0aahnext2:sjmpnext2累加器a=()(2)mova,#0fbhmovpsw,#10hadda,#7fh若,当执行完上述程序段后,将各位状态填入下表:.27. 改正下列指令movr3,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论