阅读下列程序,并要求:
1) 说明程序的功能。
2)写出涉及的寄存器及片内 RAM 单元的最后结果。
ORG 1000H
ABS: MOV R0,#38H
MOV R1,#48H
MOV R2,#06H
LOOP: MOV A,@R0
JNB A.7,NEXT
CPL A
SETB A.7
INC A
NEXT: MOV @R1,A
INC R0
INC R1
DJNZ R2,LOOP
DONE:
1) 说明程序的功能。
2)写出涉及的寄存器及片内 RAM 单元的最后结果。
ORG 1000H
ABS: MOV R0,#38H
MOV R1,#48H
MOV R2,#06H
LOOP: MOV A,@R0
JNB A.7,NEXT
CPL A
SETB A.7
INC A
NEXT: MOV @R1,A
INC R0
INC R1
DJNZ R2,LOOP
DONE:
举一反三
- ORG 0 LJMP START ORG 30HSTART: MOV SP,#50H MOV DPTR,#3000H MOV R0,#20H MOV A,#23H MOV R2,#0FH SETB 01H SETB C ADDC A,@R0 INC R0 MOV @R0,A LOOP:DJNZ R2, LOOP SWAP A PUSH ACC INC DPH MOVX @DPTR,A POP B RR A ADD A,B MOV P1,A END(21H)= (R2)= (A)= (B)= (3100H)=
- 设两个十进制数分别在内部RAM 40H单元和50H单元开始存放(低位在前),其字节长度存放在内部30H单元中。编程实现两个十进制数求和,并把求和结果存放在40H开始的单元中。 答案:MOV R0,#40H MOV R1,#50H MOV R2,#30H ——————[br][/br] LOOP:MOV A,@R0 ADDC A,@R1 —————— MOV @R0,A INC R0 INC R1 DJNZ R2,LOOP RET
- 设两个6位无符号BCD码分别存放在片内30H~32H和40H~42H单元中,试编写程序,求这两个多字节BCD码之和,并将结果存放回30H~32H单元中。补充完整以下程序。MOV R0,#30H MOV R1,#40H MOV R2,#3 CLR C LOOP:MOV A,@R0<br/>ADDC A,@R1 ______ MOV @R0,A INC R0 INC R1 ______ SJMP $
- 请说明下列指令属于哪一种寻址方式? MOV 23H,#30H () MOV 12H,A() MOV R0,#23H() MOV R7,12H() MOV R1,#12H() MOV A,@R0() MOV 34H,@R1() MOV 45H,34H() MOV DPTR,#6712H() MOV 12H,DPH() MOV R0,A() MOV A,@R0() A 立即寻址 B 直接寻址 C 间接寻址 D 寄存器寻址
- 下列指令错误的个数是______ 。(1)MOV 28H,@R2 (2)DEC DPTR (3)INC DPTR (4)CLR R0 (5)CPL R5 (6)MOV R0,R1(7)PUSH DPTR (8)MOV F0,C (9)MOV F0,ACC.3 (10)MOVX A,@R1 (11)MOVC,30H (12)RLC R0