思考与练习题
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。