单片机程序阅读.docx

上传人:b****6 文档编号:12265111 上传时间:2023-06-05 格式:DOCX 页数:16 大小:27.91KB
下载 相关 举报
单片机程序阅读.docx_第1页
第1页 / 共16页
单片机程序阅读.docx_第2页
第2页 / 共16页
单片机程序阅读.docx_第3页
第3页 / 共16页
单片机程序阅读.docx_第4页
第4页 / 共16页
单片机程序阅读.docx_第5页
第5页 / 共16页
单片机程序阅读.docx_第6页
第6页 / 共16页
单片机程序阅读.docx_第7页
第7页 / 共16页
单片机程序阅读.docx_第8页
第8页 / 共16页
单片机程序阅读.docx_第9页
第9页 / 共16页
单片机程序阅读.docx_第10页
第10页 / 共16页
单片机程序阅读.docx_第11页
第11页 / 共16页
单片机程序阅读.docx_第12页
第12页 / 共16页
单片机程序阅读.docx_第13页
第13页 / 共16页
单片机程序阅读.docx_第14页
第14页 / 共16页
单片机程序阅读.docx_第15页
第15页 / 共16页
单片机程序阅读.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机程序阅读.docx

《单片机程序阅读.docx》由会员分享,可在线阅读,更多相关《单片机程序阅读.docx(16页珍藏版)》请在冰点文库上搜索。

单片机程序阅读.docx

单片机程序阅读

四、读程序题(每小题4分,共20分)

1.执行下列程序段后,(P1)=_______。

MOVP1,#5DH

CPLP1.1

CPLP1.2

CLRP1.6

SETBP1.7

2.执行下列程序段后,(A)=_______,(CY)=____。

MOVA,#C5H

RLA

3.下列程序段执行后,(R0)=_______,(7EH)=____,(7FH)=_______。

MOVR0,#7EH

MOV7EH,#0FFH

MOV7FH,#40H

1NC@R0

1NCR0

1NC@R0

4.已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALLSUBTRN双字节指令后,(PC)=___,(61H)=_______,(62H)=____。

5.阅读下列程序,说明其功能。

MOVR0,#data

MOVA,@R0

RLA

MOVR1,A

RLA

RLA

ADDA,R1

MOV@R0,A

RET

答案读程序题(每小题4分,共20分)

1.(P1)=9BH

2.(A)=8BH(或10001011B)

(CY)=不影响

3.(R0)=7FH

(7EH)=00H

(7FH)=41H

4.(PC)=0345H

(61H)=25H

(62H)=01H

5.(data)×10操作

四、阅读程序(20分)

1.下列各条指令其源操作数的寻址方式是什么?

各条指令单独执行后,A中的结果是什么?

(5分)设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。

(1)MOVA,#48H;寻址方式:

(A)=

(2)ADDA,60H;寻址方式:

(A)=

(3)ANLA,@R0;寻址方式:

(A)=

2.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?

(15分)

MOVR1,#30H;(R1)=

MOVA,#64H;(A)=

ADDA,#47H;(A)=,(CY)=,

(AC)=

DAA;(A)=,(CY)=,

(AC)=

MOV@R1,A;(R1)=,(30H)=

此程序段完成的功能:

答案四、阅读程序(20分)

1.(5分)(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。

(1)立即寻址;48H

(2)直接寻址;4EH

(3)寄存器间接寻址;09H

2.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?

(15分)

MOVR1,#30H;(R1)=30H

MOVA,#64H;(A)=64H

ADDA,#47H;(A)=ABH(CY)=0

(AC)=0

DAA;(A)=11H,(CY)=1

(AC)=1

MOV@R1,A;(R1)=30H,(30H)=11H

此程序段完成的功能:

(5分)求两个BCD码数(64H和47H)的和,并将结果放在内部RAM的30H单元。

五、读程序(每小题5分,共10分)

1、设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A)=0E7H

ORLA,#27H

ANLA,28H

XCHDA,@R0

CPLA

2、设(A)=38H,(20H)=49H,PSW=00H,(B)=02H,填写以下中间结果。

SETBC

ADDCA,20H(A)=82H(CY)=0(AC)=1

RLCA(A)=04H(CY)=1(P)=1

MULAB(A)=08H(B)=00H(OV)=0

四、分析程序并写出结果:

(共4题,每题5分)

1.已知(R0)=20H,(20H)=10H,(P0)=30H,(R2)=20H,执行如下程序段后(40H)=

MOV@R0,#11H

MOVA,R2

ADDA,20H

MOVPSW,#80H

SUBBA,P0

XRLA,#45H

MOV40H,A

2.已知(R0)=20H,(20H)=36H,(21H)=17H,(36H)=34H,执行过程如下:

MOVA,@R0

MOVR0,A

MOVA,@R0

ADDA,21H

ORLA,#21H

RLA

MOVR2,A

RET

则执行结束(R0)=(R2)=

3.执行下面一段程序;

MOVSP,#60H

MOVA,#10H

MOVB,#01H

PUSHA

PUSHB

POPA

POPB

A,B的内容是:

(A)=(B)=

4.设在31H单元存有#23H,执行下面程序:

MOVA,31H

ANLA,#0FH

MOV41H,A

MOVA,31H

ANLA,#0F0H

SWAPA

MOV42H,A

则(41H)=(42H)=

答案四。

分析程序并写出结果。

1.(20H)←11H

(A)←20H

(A)←(A)+(20)

(CY)=1

(A)-(P0)-(CY)→(A)即(A)←00H

(A)+45H→(A)即(A)←45H

(40H)←45H

2.(A)←((R0))(A)=36H

(R0)←(A)(R0)←36H

(A)←((R0))(A)←34H

(A)←(A)+(21H)34H+17H=4BH

(A)←(A)

21H4BH

21H=6BH

(A)←D6H

(R2)←D6H

(R0)=36H(R2)=D6H

3.(A)=01H(B)=10H

4.(41H)=03H(42H)=02H

四.阅读并分析程序(28分)

1.2506HM5:

MOVSP,#58H

2509HMOV10H,#0FH

250CHMOV11H,#0BH

250FHACALLXHD;PC+2

PC,

MOV20H,11H

2514HM5A:

SJMPM5A

XHD:

PUSH10H

PUSH11H

POP10H

POP11H

RET

问:

(1)执行POP10H后堆栈内容?

(2)执行M5A:

SJMPM5A后,(SP)=(20H)=

2.A程序存储空间表格如下:

地址

2000H

2001H

2002H

2003H

内容

3FH

06H

5BH

4FH

已知:

片内RAM的20H中为01H,执行下列程序后(30H)=

MOVA,20H

INCA

MOVDPTR,#2000H

MOVCA,@A+DPTR

CPLA

MOV30H,A

SJMP$

3.(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(40)=20H

MOVA,@R0

MOV@R0,40H

MOV40H,A

MOVR0,#35H

问执行程序后,R0=A=4BH=40H=

4.若PSW=00,执行下列程序后,PSW的各位状态如何?

MOVA,#0FBH

MOVPSW,#10H

ADDA,#7FH

CY

AC

OV

P

OF

RS1

五.程序填空(10分)

1.数据块传送,将RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。

ORG1000H

MOVR7,_____

MOVR0,#30H

MOVR1,#60H

LOOP:

MOVA,@R0

MOV_____,A

INCR0

INCR1

DJNZR7,_____

SJMP$

END

2.将4个单字节数放片内30H~~33H,它们求和结果放在片内40H,41H单元。

ORG1000H

MOVR7,#04H

MOVR0,30H

CLRA

MOV41H,A

LOOP:

ADDA,@R0

JNCNEXT

INC_____

NEXT:

INC_____

DJNZR7,LOOP

MOV40H,A

SJMP$

END

3.RAM中40H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R2中。

ORG2200H

MOVA,_____

MOVB,#64H

DIVAB

MOVR2,A

MOVA,_____

XCHA,B

DIVAB

SWAP_____

ORLA,B

SJMP$

END

4.编程序将片内40H-46H单元内容的高4位清零,保持低4位不变。

ORG1000H

MOVR7,#07H

MOVR0,_____

LOOP:

MOVA,@R0

ANLA,_____

MOV@R0,A

INCR0

DJNZR7,LOOP

SJMP$

END

答案四:

阅读并分析程序(28分)

(1)1)执行POP10H后堆栈内容?

(SP)=5AH

2)执行M5A:

SJMPM5A后,(SP)=58H(20H)=0FH

(2)(30H)=5BH

(3)R0=35HA=7FH4BH=20H40H=7FH

(4)

CY

AC

OV

P

OF

RS1

1

1

0

1

0

1

五、程序填空(10分)

1._#20H___R1____LOOP____

2.__41H_____R0___

3.__40H____#0AH______A___

4._#40H______#0FH___

 

二、程序分析题(共20分,每题10分)

1、程序如下

 2506HM5:

MOVSP,#58H;

2509H        MOV10H,0FH;

250CHMOV11H,#0BH;

250FHACALLXHD;

2511HMOV20H,11H

2514HM5A:

SJMPM5A

XHD:

PUSH10H

PUSH11H

POP10H

POP11H

RET

问:

(1)执行POP10H后堆栈内容?

(2)执行M5A:

SJMP M5A后,(SP)=?

 (20H)=?

1)执行ACALL指令时:

PC+2➞PC:

(SP)+1➞SP  PC0~PC7➞(SP)

(SP)+1➞SP  PC8~PC15➞(SP)

2) 子程序返回时,点地址弹出,SP=58H

所以 (1)执行POP 10H后,堆栈内容如左图所示.

5C0B

5B0F

5A25

5911

58

   (2)执行M5A:

SJMP M5A后,(SP)=58H,

   (20H)=0FH

2、解读下列程序,然后填写有关寄存器内容

(1)       MOVR1,#48H

MOV48H,#51H

CJNE@R1,#51H,00H

JNCNEXT1

MOVA,#0FFH

SJMPNEXT2

NEXT:

MOVA,#0AAH

NEXT2:

SJMPNEXT2

累加器A=()

(2)MOVA,#0FBH

MOVPSW,#10H

ADDA,#7FH

   (1)  MOVR1,#48H;48H送R1

MOV48H,#51H;51H送➞(48H)

CJNE@R1,#51H,00H;(R1)GN#51相比,相等,顺序执行

JNCNEXT1;没借位转,NEXT1

MOVA,#0FFH;有借位,FFH送A

SJMPNEXT2

NEXT1MOVA,#0AAH;0AAH送A

NEXT2SJMPNEXT2

累加器A=(0AAH)

(2)MOVA,#0FBH

MOVPSW,#10H00010000送PSW

ADDA,#7FH

由11111011

+01111111

____________

101111010

所以,有进位CY=1,C6♁C7=1♁1=0,OV=0;A中有奇数个1,P=1;

有辅助进位位AC=1

若PSW=00,当执行完上述程序段后,将PSW各位状态填入下表:

PSW

CY

AC

F0

RS1

RS0

OV

F1

 

二、程序分析题(共20分,每题10分)

1、程序存储器空间表格如下:

 地址    2000H    2001H   2002H   2003H ...

 内容    3FH      06H     5BH     4FH   ...

已知:

片内RAM的20H中为01H,执行下列程序后(30H)=?

MOV   A,20H     

INC   A         

MOV   DPTR,#2000H 

MOVC  A,@A+DPTR   

CPL   A          

MOV30H,A

END:

SJMPEND

执行程序后,(30H)=

2、分析程序段:

CLR   C

MOV   A,#91H

SUBB  A,61H ;

ADD   A,61H ;

DA    A ;

MOV   62H,A

 

(1)程序执行何种操作?

(2)若已知初值:

(60H)=24H,(61H)=72H,则运行后,(62H)=。

答案1、程序存储器空间表格如下:

  

 地址    2000H    2001H   2002H   2003H ...

 内容    3FH      06H     5BH     4FH   ...

已知:

片内RAM的20H中为01H,执行下列程序后(30H)=?

MOV   A,20H     ;01H➞A

INC   A         ;01H+1=02H➞A

MOV   DPTR,#2000H  ;2000H➞DPTR

MOVC  A,@A+DPTR    ;(2000H+2)=5BH➞A

CPL   A          ;5BH求反等于A4H

MOV30H,A;A4H➞(30H)

END:

SJMPEND

答执行程序后,(30H)=A4

2、分析程序段:

CLR   C

MOV   A,#91H

SUBB  A,61H ;求60H内的BCD数的补数,9AH-24H=76H

ADD   A,61H ;76H+72H=E8H

DA    A ;CY=1、A=48H

MOV   62H,A

 解  根据9AH=99=1的特殊性,该程序功能为单字节BCD数减法运算,即完成的是(61H)-(60H)➞(62H)。

所以运行后,(62H)=48H,意即72-24=48

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2