思考与练习题

思考与练习题

1.分析下列程序执行的结果。

MOV SP,#30H

MOV A,#31H

MOV B,#32H

PUSH A

PUSH B

POP A

POP B

2.有如下程序段,分析其结果:

MOV 20H,#0A4H

MOV A,#0D6H

MOV 57H,#7FH

MOV R0,#57H

ANL A,R0

ORL A,@R0

SWAP A

CPL A

XRL A,#0FFH

RL A

ORL 02H,A

3.假设片外RAM BUFFER(8000H)及BUFFER+1(8001H)单元的内容分别为2AH和49 H,分析以下程序运行结果:

4.已知程序执行前,(A)=02H,(SP)=42H,(41H)=0FFH,(42H)=0FFH。下列程序段执行后,请问(A)=?,(SP)=?,(41H)=?,(42H)=?,(PC)=?。

POP DPH

POP DPL

MOV DPTR,#3000H

RL A

MOV B,A

MOVC A,@A+DPTR

PUSH ACC

MOV A,B

INC A

MOVC A,@A+DPTR

PUSH ACC

RET

ORG 3000H

DB 10H,80H,30H,80H,50H,80H

5.设(R2)=3,分析下列程序段的执行结果,并指明该程序段的功能。

6.试编写一程序将外部数据存储器2000 H单元中的数进行半字节交换。

7.试编一程序对外部RAM2020 H单元的第0位及第6位置1,其余位取反。

8.外部RAM2000 H—2100 H有一数据块,请将它移至外部RAM3000 H—3100H。

9.内部RAM中以40 H单元为首地址,存放着10个字节的有符号数。统计此数据块中零、正数、负数的个数,并存放在30 H(零的个数)、31 H(正数的个数)、32 H(负数的个数)单元中。

10.试编一查表程序,从首地址为2000H,长度为100的数据块中找出ASCII码A,将其地址送到20A0 H和20A1 H单元中。

11.请用查表法求9的平方。

12.用定时器中断方式,编程实现从P1.0输出一个频率为1k Hz的连续方波。设fosc=12MHz。

13.试编写程序:采用“与”运算,判断某8位二进制数是奇数还是偶数个1。

14.试编写程序:采用“异或”运算,怎样可使一带符号数的符号位改变,数据位保持不变。

15.片外RAM中存有10个无符号数,试编程求10个数的平均值。

16.编写程序,若累加器A的内容分别满足下列条件,则程序转至LABEL存储单元。设A中存的是无符号数。

(1)A>10;(2)A=10;(3)A<10。