250FH ACALL XHD ;PC+2?PC ,
?SP?1?SP,PC7~0?SP??? ?SP?1?SP,PC15~8?SP??addr?PC?10~0??MOV 20H,11H
2514H M5A:SJMP M5A XHD:PUSH 10H PUSH 11H POP 10H POP 11H RET
问:(1)执行POP 10H后堆栈内容?
(2)执行M5A:SJMP M5A后,(SP)= (20H)= 2.A程序存储空间表格如下:
地址 内容
已知:片内RAM的20H中为01H,执行下列程序后(30H)= MOV A,20H INC A
MOV DPTR,#2000H MOVC A,@A+DPTR CPL A MOV 30H,A SJMP $
3.(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(40)=20H
MOV A,@R0 MOV @R0,40H MOV 40H,A MOV R0,#35H
问执行程序后,R0= A= 4BH= 40H= 4.若PSW=00, 执行下列程序后,PSW的各位状态如何?
MOV A,#0FBH MOV PSW,#10H ADD A,#7FH CY AC OV P OF RS1 2000H 3FH 2001H 06H 2002H 5BH 2003H 4FH 。。。。。 。。。。。 五. 程序填空(10分)
1.数据块传送,将RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。
ORG 1000H MOV R7,_____
MOV R0, #30H
MOV R1,#60H
LOOP:MOV A,@R0 MOV _____,A INC R0 INC R1 DJNZ R7, _____ SJMP $ END
2. 将4个单字节数放片内30H~~33H,它们求和结果放在片内40H,41H单元。
ORG 1000H MOV R7,#04H MOV R0,30H CLR A MOV 41H,A
LOOP: ADD A,@R0 JNC NEXT
INC _____
NEXT:INC _____
DJNZ R7,LOOP MOV 40H,A SJMP $ END
3. RAM中40H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位
放在累加器A中,百位放在R2中。 ORG 2200H MOV A,_____ MOV B,#64H DIV AB MOV R2,A MOV A,_____ XCH A,B DIV AB SWAP _____ ORL A,B SJMP $ END
4. 编程序将片内40H-46H单元内容的高4位清零,保持低4位不变。 ORG 1000H MOV R7,#07H
MOV R0,_____
LOOP:MOV A,@R0 ANL A,_____ MOV @R0,A
INC R0 DJNZ R7,LOOP SJMP $
END