8外部数据传送指令有哪几条

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8外部数据传送指令有哪几条?试比较下面每组中2条指令的区别

(1)MOVX A, @R0 MOVX A, @DPTR (2) MOVX @R0, A MOVX @DPTR, A

(2)MOVX A, @R0 MOVX @R0, A

答:外部数据传送指令有如下4条:

MOVX A, @DPTR ;(DPTR)→A MOVX @DPTR, A ;A→(DPTR)

MOVX A, @Ri ;(Ri)→A,以P2为页地址,Ri为低8位地址

MOVX @Ri,A ;A→(Ri),以P2为页地址,Ri为低8位地址

①MOVX A, @R0 以R0为低8位地址指针的片外数据存储器中的内容传送到累加器A中

MOVX A, @DPTR 以DPTR为地址指针的片外数据存储器中的内容传送到累加器A中

②MOVX @R0, A 累加器A中的内容传送到以R0为低8位地址指针的片外数据存储器中

MOVX @DPTR, A 累加器A中的内容传送到以DPTR为地址指针的片外数据存储器中

③MOVX A, @R0 以R0为低8位地址指针的片外数据存储器中的内容传送到累加器A中

MOVX @R0, A累加器A中的内容传送到以R0为低8位地址指针的片外数据存储器中

9 在80C51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。请分析下段程序中各指令的作用,并翻译成相应的机器码;说明源操作数的寻址方式及顺序执行每条指令后的结果答:机器码源程序寻址方式执行每条指令后的结果E5 40 MOV A,,40H 直接寻址A=48H

F8 MOV R0,A 寄存器寻址R0=48H

75 90 F0 MOV P1,#0F0H 立即寻址P1=0F0H

A6 30 MOV @R0,30H 寄存器间接寻址R0=48H,(48H)=38H

90 12 46 MOV DPTR, #1246H 立即寻址DPTR=1246H

85 38 40 MOV 40H, 38H 直接寻址(40H)=40H

A8 30 MOV R0, 30H 直接寻址R0=38H

88 90 MOV 90H, R0 直接寻址P1=38H

75 48 30 MOV 48H, #30H 立即寻址(48H)=30H

E6 MOV A, @R0 寄存器间接寻址R0=38H, A=40H

85 90 A0 MOV P2, P1 寄存器寻址P2=38H

10 试说明下列指令的作用,并将其翻译成机器码。执行最后一条指令对PSW有何影响,A的终值为多少?

①机器码源程序执行每条指令后的结果

78 72 MOV R0,#72H 把立即数72H送入R0

E8 MOV A, R0 把72H送入A

24 4B MOV ADD, #4BH 72H加4BH等于BDH送入A

执行此指令后PSW中P=0,OV=0,CY=0

②机器码源程序执行每条指令后的结果

74 02 MOV A, #02H 把立即数2H送入A

F5 F0 MOV B, A 把2H送入B

74 0A MOV A, #0AH 把立即数#0AH送入A

25 F0 ADD A, B A与B中值相加等于0CH,送入A

A4 MUL AB A与B中值相乘等于018H,送入A

执行此指令后PSW中P=0,OV=0,CY=0

③机器码源程序执行每条指令后的结果

74 20 MOV A, #20H 把立即数20H送入A

F5 F0 MOV B, A 把20H送入B

25 F0 ADD A, B A与B中值相加等于40H,送入A

94 10 SUBB A, #10H A 中值40H 减10H 等于30H ,送入A

84 DIV AB A 中值与B 相除等于01H ,送人A ,余数10H 送入B

执行此指令后PSW 中P=1,OV=0,CY=0

11请分析依次执行下面指令的结果

MOV 30H, #0A4H ;0A4H 送入(30H )单元

MOV A, #0D6H ;0D6H 送入A

MOV R0,#30H ;030H 送入R0

MOV R2,#47H ;047H 送入R2

ANL A, R2 ;R2中内容与A 相与结果46H ,送入A

ORL A, @R0 ;30H 中内容与A 相或结果E6H ,送入A

SWAP A, ;A 中内容高、低4位交换结果6EH,送入A

CPL A, ;A 中内容取反结果91H ,送入A

XRL A, #0FFH ;A 中内容与FFH 异或结果6EH ,送入A

ORL 30H, A ;A 中内容与30H 中内容相或结果EEH ,送入A

12 在AT89S51单片机中,已知时钟频率为12MHz ,请编程使P1.0输出周期为2ms 的方波 答:1661

21(1210)0012x m s F E C H -=-÷⨯⨯=

ORG 3000H

START :MOV TMOD, #01H SJMP LOOP

MOV TL0, #0CH DONE: MOV TL0, #0CH

MOV TH0,#0FEH MOV TH0, #0FEH

SETR TR0 LPL P1.0

LOOP: JBC TF0, DONE SJMP 2

13 设系统时钟频率为24MHz ,试用定时器T0作外部计数器,编程实现每计到1000个脉冲,使T1开始2ma 定时,定时时间到后,T0又开始计数,如此反复循环

答: MOV TMOD, #15H ;设定时器1为定时方式1

;定时器0为外部计数方式1

EX7_RPT:

MOV TH0,#0F0H ;定时器0赋1000的计数初值

MOV TL0,#018H

SETB TR0 ;启动定时器0

JNB TF0, $ ;查询计数溢出

CLR TR0 ;关定时器0

CLR TF0 ;清溢出标志

MOV TH1,#0F0H ;定时器1赋2ms 初值

MOV TL1, #60H ;

SETB TR1 ;启动定时器1

JNB TF1.$ ;查询计数溢出

CLR TR1 ;关定时器1

CLR TF1 ;清溢出标志

LJMP RX7_RPT ;循环

相关文档
最新文档