《单片机原理及应用》寻址方式与指令习题一、单选题1、指令和程序是以()形式存放在程序存储器中A、源程序B、汇编程序C、二进制编码D、BCD码2、单片机应用程序一般存放在()A、RAMB、ROMC、寄存器D、CPU3、进位标志CY在()中A、累加器B、算逻运算部件ALUC、程序状态字寄存器PSWD、DPTR4、AT89S51单片机中既可位寻址又可字节寻址的单元是()A、20HB、30HC、00HD、70H5、执行指令MOVXA,﹫DPTR时,、脚的电平为()A、高电平,低电平B、低电平,高电平C、高电平,高电平D、低电平,低电平6、下列指令中不影响标志位CY的指令有()A、ADDA,20HB、CLRCC、RRCAD、INCA7、LJMP跳转空间最大可达到()A、2KBB、256BC、128BD、64KB8、AT89S51的内部RAM中,可以进行位寻址的地址空间为()A、00H∽2FHB、20H∽2FHC、00H∽FFHD、20H∽FFH9、设累加器A的内容为0C9H,寄存器R2的内容为54H,CY=1,执行指令SUBBA,R2后结果为()A、(A)=74HB、(R2)=74HC、(A)=75HD、(R2)=75H10、设(A)=0C3H,(R0)=0AAH,执行指令ANLA,R0后,结果()A、(A)=82HB、(A)=6CHC、(R0)=82D、(R0)=6CH11、AT89S51的程序计数器PC为16位计数器,其寻址范围是()A、8KB、16KC、32KD、64K12、执行如下三条指令后,30H单元的内容是()MOVR1,#30HMOV40H,#0EHMOV﹫R1,40HA、40HB、30HC、0EHD、FFH13、有如下程序段:MOVR0,#30HSETBCCLRAADDCA,#00HMOV﹫R0,A执行结果是()A、(30H)=00HB、(30H)=01HC、(00H)=00HD、(00H)=01H14、从地址2132H开始有一条绝对转移指令AJMPaddr11,指令可能实现的转移范围是()A、2000H∽27FFHB、2132H∽2832HC、2100H∽28FFHD、2000H∽3FFFH15、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=()A、2000HB、2001HC、2002HD、2003H16、51单片机的指令系统中没有哪一类指令()A、单字节B、双字节C、三字节D、四字节17、下列传送指令中哪一个是正确的()A、MOV44H,AB、MOV30H,@R2C、MOVR0,R4D、ANLP1.0,20H18、LJMP指令的转移范围是()1A、-128~127B、2KC、4KD、64K19、下列指令中哪一个不影响标志位()A、ADDA,30HB、SUBBA,R2C、ORLA,#67HD、RLA20、AT89S51的并行I/O口信息有两种读取方法:一种是读引脚,还有一种是()A、读锁存器B、读数据库C、读A累加器D、读CPU二、填空1.设(A)=34,(B)=10H,则执行指令DIVAB后,(A)=,(B)=。2.外部数据存储器只能用指令来读写,只能用间接寻址方式,用DPTR寻址时,可寻址空间为。3.当(RS1)=1,(RS0)=1时,R0对应的单元地址为。4.堆栈一般设置在30H~7FH区域内;堆栈指针SP,复位时其值为,即若执行指令PUSHA,则是把A的内容复制到单元中;且(SP)=08H;若将堆栈顶设置在60H,则需执行指令。5.AT89S51内部有21个SFR,占据地址空间,只能直接寻址;字节地址能够被8整除的字节可以寻址。6.ORG0100HAJMPNEXT;指明指令AJMPNEXT的存放起始地址是;三、判断1.设(A)=50H,(30H)=10H,则执行指令ADDA,30H后以下各单元的值为(A)=60H,(C)=0,(OV)=0,(AC)=0,(P)=0。2.位寻址空间是字节地址20H~2FH,共128位,位地址00H~7FH;20H.1是正确的位地址表示。3.AT89S51的指令系统有111条指令,按字节长度三种:单字节、双字节和三字节;按执行机器周期数分有三种:单周期、双周期和四周期。4.程序存储器中的数据只能间接寻址。5.单片机也可以用C语言来编程。6.RS1=1,RS0=0时,R2的直接地址为11H。7.MOVA,30H指令中第二操作数的寻址方式为直接寻址。8.SFR只能直接寻址。9.CLR20H是位操作指令。10.执行除法指令后商在B寄存器中。11.串行中断的溢出标志必须用软件清零。12.上电复位后执行压栈指令第一个字节压入07H。四、程序题1、读程序,写出程序段所实现的功能MOVA,#123MOVB,#100DIVABMOV30H,AMOVA,#10XCHA,BDIVABMOV31H,AMOV32H,B2、读程序,写出以下指令执行后A的值(设P1的值为AAH)MOVA,P1ANLA,#0FHXRLA,#0FH3、写出以下程序段执行后30H单元的值START:MOVA,#3MOVDPTR,#TABMOVCA,@A+DPTRMOV30H,ASJMP$TAB:DB0,1,8,27,64,1254、写出以下程序执行后30H...