单片机原理与-运用-第三章答案~.doc
《单片机原理与-运用-第三章答案~.doc》由会员分享,可在线阅读,更多相关《单片机原理与-运用-第三章答案~.doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、|第三章 单片机的汇编语言与程序设计习题1. 设内部 RAM 中 59H 单元的内容为 50H,写出当执行下列程序段后寄存器A,R0 和内部 RAM 中 50H,51H 单元的内容为何值?MOV A,59HMOV R0,AMOV A,#00HMOV R0,AMOV A,#25HMOV 51H,AMOV 52H,#70H解: MOV A,59H ; A=50HMOV R0,A ; RO=50HMOV A,#00H ; A=00HMOV R0,A ; 50H=00HMOV A,#25H ; A=25HMOV 51H,A ; 51H=25HMOV 52H,#70H ; 52H=70H所以:A=25H
2、 R0=50H ; 50H=00H 51H=25H2. 请选用合适的指令对 P0 口内容做修改(例如使 P0.0P0.3 不变,P0.4P0.7为 0) 。解: MOV A,P0ANL A,0fhMov P0,A3. 试问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。解:访问外部数据存储器指令有:MOVX DPTR,A MOVX DPTR,#0100H MOV DPTR,AMOVX A,DPTR MOVX DPTR,#0200H MOV A,DPTRMOVX A,Ri MOVX A,R0MOVX Ri, A MOVX RI,A访问程序存储器指令有:MOVX A,A+PCMOVX A
3、,A+DPTR4. 设堆栈指针 SP 中的内容为 60H,内部 RAM 中 30H 和 31H 单元的内容分别为24H 和 10H,执行下列程序段后,61H,62H ,30H,31H ,DPTR 及 SP 中的内容将有何变化?PUSH 30HPUSH 31HPOP DPLPOP DPH MOV 30H,#00HMOV 31H,#0FFH|解:PUSH 30H ;61H=24HPUSH 31H ;62=10H SP=62HPOP DPL ;DPL=10HPOP DPH ;DPH=24H SP=60HMOV 30H,#00H ;30H=00HMOV 31H,#0FFH ;31H=0FFH5. 设(
4、A)=40H,(R1)=23H,(40H)=05H。执行下列两条指令后,累加器 A 和 R1以及内部 RAM 中 40H 单元的内容各位何值?XCH A,R1XCHD A,R1解: XCH A,R1 ;A=23H R1=40HXCHD A,R1 ;A=25H 40H=03H6. 两个四位 BCD 码数相加,被加数和加数分别存于 50H,51H 和 52H,53H 单元中(次序为千位、百位在低地址中) ,和数存在 54H,55H 和 56H 中(56H 用来存放最高位的进位,试编写加法程序)解: ORG 0000HLJMP STARTORG 0100HSTART: MOV A,53HADD A,
5、51HDA AMOV 55H,AMOV A,52HADDC A,50HDA AMOV 56H,CSJMP $END7.设(A)=01010101B , ( R5)=10101010B,分别写出执行 ANL A,R5;ORL A,R5:XRL A,R5 指令后结果。解: ANL A,R5 ; 00000000BORL A,R5 ; 11111111BXRL A,R5 ; 111111118.设指令 SJMPrel=7EH,并假设该指令存放在 2114H 和 2115H 单元中。当该指令执行后,程序将跳转到何地址?解:2116H+60H=2176H9.简述转移指令 AJMP addr11,SJMP
6、 rel,LJMP addr16 及 JMP A+DRTR 的应用场合。|解:AJMP addr11 为 2K 字节范围内的无条件转跳指令,把程序的执行转移到指定的地址。SJMP rel 是无条件转跳指令,执行时在 PC 加 2 后,把指令中补码形式的偏移量加到 PC 上,并计算出转向目标地址。转向的目标地址可以在这条指令前128 字节到后 127 字节之间LJMP addr16 执行这条指令时把指令的第二字节和第三字节分别装入 PC 的高位和地位字节中无条件地转向指定地址。转移目标地址可以在 64K 程序存储器地址空间的任何地方,不影响任何标志。JMP A+DRTR 指令的功能是把累加器中
7、8 位无符号数与数据指针 DRTR 中的 16 位数相加,将结果作为下条指令地址送入 PC,利用这条指令能实现程序的散转。10.试分析下列程序段,当程序执行后,位地址 00H,01H 中的内容将为何值?P1 口的 8 条 I/O 线为何状态?CLR CMOV A,#66HJC LOOP1CPL CSETB 01HLOOP: ORL C,ACC.0JB ACC.2,LOOP2CLR 00HLOOP2: MOV P1,A解: CLR C ;CY=0MOV A,#66H ;A=66HJC LOOP1 CPL C ;CY=1SETB 01H ;20H.1=1LOOP: ORL C,ACC.0 ;CY=
8、1JB ACC.2,LOOP2 ;CLR 00HLOOP2: MOV P1,A ;P1=01100110BSJMP $20H.0=0 20H.1=1 P1=66H11.的特查指令表,写出下列两条指令的机器码,并比较一下机器码中操作数排列次序点。MOV 78H,80HMOV 78H,#80H解:直接寻址单元传送到直接寻址单元的机器码是第二个操作数在前,而立即数传送到直接地址单元是第一个操作数在前,次序正好相反。12.手工汇编下列程序段|ORG 873BHAAA EQU 851AHQQQ MOV A,35HCLR CSUBB A,#0AHJC QQ16MOV A,36HSUBB A,#0AHJC
9、QQ15AJMP AAAQQ15: MOV 35H,#00HQQ16: JNB 02H,QQ17MOV R6,39HDEC R6SJMP QQ18QQ17: MOV R6,39HINC 39HQQ18: CLR 05HLJMP 8500HEND13.若有两个无符号数 x,y 分别存放于内部存储器 50H,51H 单元中,试编写一个程序实现 x*10+y,结果存入 52H,53H 两个单元中。解: ORG 0000HSJMP STARTORG 0030HSTART :MOV A,50HMOV B,#10MUL AB ;(50H)10 积的高、低字节分别在 B、A 中 ADD A,51HMOV 5
10、3H,A ;积的低字节加( 51H)其和存放在 53H 中 MOV A,#00HADDC A,BMOV 52H,A ;积的高字节加进位位存放在 52H 中。SJMP $END14 从内部存储器 20H 单元开始,有 30 个数据。试编一个程序,把其中的正数,负数分别送 51H 和 71H 开始的存储单元,并分别记下正数负数的个数送 50H和 70H 单元。解: ORG 0000HSJMP STARTORG 0030HSTART: MOV 1EH,#51H ;正数存放首地址 51H 存于 1EH 单元MOV 1FH,#71H ;负数存放首地址 71H 存于 1EH 单元|MOV R0,#20H
11、;建立取数(源操作数)的地址指针MOV R2,#30 ;预置数据长度MOV 50H,#00H ;正数个数统计单元清零MOV 70H,#00H ;负数个数统计单元清零LOOP:MOV A,R0 ;取数JB ACC.7,NEG ;是负数转 NEG 处理POST:MOV R1,1EH ;是正数,将暂存的地址送 R1(间址寄存器)MOV R1,A ;将正数入存INC 50H ;正数个数加 1INC 1EH ;正数暂存地址加 1 修正LOOP1: INC R0 ;取数地址加 1 修正DJNZ R2,LOOP ;计数长度减 1,不等于零,继续循环统计SJMP $ ;结束NEG: MOV R1,1FH ;是
12、负数,将暂存的地址送 R1(间址寄存器) MOV R1,A ;将正数入存INC 70H ;负数个数加 1INC 1FH ;负数暂存地址加 1 修正SJMP LOOP1 ;转取数地址修正15 内部存储单元 40H 中有一个 ASCII 码字符,试编一程序,给该数的最高位加上奇检验。解: ORG 0000HSJMP STARTORG 0030HSTART: MOV A,40H ;取数给 ACLR ACC.7 ;A 最高位(奇偶校验位)清零JB P, LOOP ;40H 中的 ASCII 码原来就是奇数个 1(最高位给零)SETB ACC.7 ;40H 中的 ACSII 码原来是偶数个 1,最高位置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 运用 第三 答案
限制150内