8外部数据传送指令有哪几条
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 ;循环