11个8位寄存器的88位。位寻址给出的是直接地址。
2.位寻址和字节寻址如何区分?在使用时有何不同?
由寻址方式可以看出,不同的寻址方式所寻址的存储空间是不同的。正确地使用寻址方式不仅取决于寻址方式的形式,而且取决于寻址方式所对应的存储空间。字节寻址必须是对8位存储单元,位寻址的存储空间只能是片内RAM的20H~2FH字节地址中的所有位(位地址为00H~7FH)和部分SFR的位,决不能是该范围之外的任何单元的任何位。
3.要访问专用寄存器和片外数据寄存器,应采用什么寻址方式?举例说明。 访问专用寄存器:可采用直接寻址或寄存器寻址。
访问片外数据寄存器:寄存器间接寻址 4.什么是堆栈?其主要作用是什么? 堆栈是后进先出的数据存储区
一般用于中断处理过程中,若需要保护现场数据(如内部RAM单元的内容),可使用入栈指令,将数据压入堆栈,中断处理过程执行完后,再使用出栈指令恢复现场数据。
5.编程将内部RAM的20H单元的内容传送给外部RAM的2000H单元。
MOV A,20H
MOV DPTR,#2000H MOVX @DPTR,A
6.编程将内部数据存储器20H~30H单元内容清零。 MOV R0,#20H
MOV A,#0 MOV R3,#17 LOP :MOV @R0,A
9
INC R0 DJNZ R3,LOP
7.编程查找内部RAM的32H~41H单元中是否有0AAH这个数据,若有这一数据,则将50H单元置为0FFH,否则清50H单元为0。
MOV R3, #10H
MOV A,#0AAH MOV R0,#31H LOP :INC R0 SUBB A,@R0 JZ LOP1 DJNZ R3,LOP MOV 50H,#0H AJMP LOP3 LOP1:MOV 50H,#0FFH LOP3: AJMP 1OP3
8.查找20H~4FH单元中出现00H的次数,并将查找结果存入 MOV R3,#30H MOV R0,#20H MOV A,#0
LOP: MOV A,@R0 JZ LOP1
10
50H单元。 LOP3: INC R0 DJNZ R3,LOP AJMP LOP2 LOP1: INC 50H AJMP LOP3 LOP2:AJMP LOP2
9.已知A=83H,R0=17H,(17H)=34H,写出下列程序段执行完后的A中的内容。
ANL ORL
XRL CPL
A, @R0 A A, #17H 17H, A
(A)=11001011B=0CBH
10.已知单片机的fosc=12MHz,分别设计延时0.1s、1s、1min的子程序。 设晶振频率为12MHz,一个机器周期为1μs,
延时1ms的子程序:
DELAY: MOV R7, #0FFH LOOP: NOP NOP DJNZ R7, LOOP RET
执行时间(机器周期) 1 1 1 2 2
该程序段的总的执行时间为:
(1+4×255+2)?s=1023μs≈1ms
延时时间为100ms的子程序:
DELAY: MOV R5,#64H 对延时1ms的子程序循环100次。