指令系统及汇编语言程序设计

指令系统及汇编语言程序设计

ID:16482123

大小:66.00 KB

页数:6页

时间:2018-08-10

上传者:U-4625
指令系统及汇编语言程序设计_第1页
指令系统及汇编语言程序设计_第2页
指令系统及汇编语言程序设计_第3页
指令系统及汇编语言程序设计_第4页
指令系统及汇编语言程序设计_第5页
资源描述:

《指令系统及汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

第3章指令系统及汇编语言程序设计一、简答题1、80C51系列单片机的指令系统有何特点?2、80C51单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何?3、访问特殊功能寄存器SFR可以采用哪些寻址方式?4、访问内部RAM单元可以采用哪些寻址方式?5、访问外部RAM单元可以采用哪些寻址方式?6、访问外部程序存储器可以采用哪些寻址方式?7、为什么说布尔处理功能是80C51单片机的重要特点?8、对于80C52单片机内部RAM还存在高128字节,应采用何种方式访问?9、试根据指令编码表写出下列指令的机器码。(1)MOV A,#88H(2)MOV R3,50H(3)MOV P1.1,#55H(4)ADD  A,@R1(5)SETB 12H10、完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。(1)将R0的内容传送到R1;(2)内部RAM单元60H的内容传送到寄存器R2;(3)外部RAM单元1000H的内容传送到内部RAM单元60H;(4)外部RAM单元1000H的内容传送到寄存器R2;(5)外部RAM单元1000H的内容传送到外部RAM单元2000H。11、11、若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。试分析执行下列程序段后上述各单元内容的变化。  MOV A,@R1  MOV @R1,40H  MOV 40H,A  MOV  R1,#7FH12、若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出CY、AC、和OV的值。(1)MOV A,@R0(2)ANL 40H,#0FH(3)ADD A,R4(4)SWAP A(5)DEC @R1(6)XCHD  A,@R113、若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、42H单元中的内容各为多少?   MOV A,50H   MOV R0,A   MOV A,#00H   MOV @R0,A   MOV A,3BH   MOV 41H,A   MOV 42H,41H14、试用位操作指令实现下列逻辑操作。要求不得改变未涉及的位的内容。 (1)使ACC.0置位;(2)清除累加器高4位;(3)清除ACC.3,ACC.4,ACC.5,ACC.6。2、试编写程序,将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH和2DH单元。3、试编写程序,完成两个16位数的减法:7F4DH-2B4EH,结果存入内部RAM的30H和31H单元,31H单元存差的高8位,30H单元存差的低8位。4、试编写程序,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存放在R1中。5、试编写程序,将内部RAM的20H、21H单元的两个无符号数相乘,结果存放在R2、R3中,R2中存放高8位,R3中存放低8位。6、若(CY)=1,(P1)=10100011B,(P3)=01101100B。试指出执行下列程序段后,CY、P1口及P3口内容的变化情况。      MOV P1.3,C      MOV P1.4,C      MOV C,P1.6      MOV P3.6,C      MOV C,P1.0      MOV P3.4,C7、若单片机的主频为12MHz,试用循环转移指令编写延时20ms的延时子程序。并说明这种软件延时方式的优缺点。8、 80C51单片机汇编语言有何特点?9、利用80C51单片机汇编语言进行程序设计的步骤如何?10、常用的程序结构有哪几种?特点如何?11、子程序调用时,参数的传递方法有哪几种?12、什么是伪指令?常用的伪指令功能如何?13、设被加数存放在内部RAM的20H、21H单元,加数存放在22H、23H单元,若要求和存放在24H、25H中,试编写出16位数相加的程序。14、编写一段程序,把外部RAM中1000H~1030H的内容传送到内部RAM的30H~60H中。15、编写程序,实现双字节无符号数加法运算,要求(R1R0)+(R7R6)→(61H60H)。16、若80C51的晶振频率为6MHz,试计算延时子程序的延时时间。DELAY:MOV R7,#0F6H  LP:MOV R6,#0FAH      DJNZ R6,$      DJNZ R7,LP      RET17、在内部RAM的21H单元开始存有一组单字节不带符号数,数据长度为30H,要求找出最大数存入BIG单元。18、编写程序,把累加器A中的二进制数变换成3位BCD码,并将百、十、个位数分别存放在内部RAM的50H、51H、52H中。19、编写子程序,将R1中的2个十六进制数转换为ASCII码后存放在R3和R4中。     20、编写程序,求内部RAM中50H~59H十个单元内容的平均值,并存放在5AH单元。21、指令由哪几部分组成?22、什么是汇编语言指令?为什么说汇编语言指令比机器语言指令更容易理解和记忆?通过什么方式可将汇编语言程序转化为机器语言程序?23、MCS-51汇编语言中有哪些常用的伪指令?各起什么作用?24、汇编语言程序和汇编程序两术语含义相同吗?25、什么是寻址方式?对于双操作数指令来说,为什么不需要指定操作结果存放位置?26、给出下列指令中每一操作数的寻址方式。MOVA,#23H MOV23H,AMOV90H,23HMOV23H,@R0INCA1、位地址90H和字节地址90H及P1.0有何异同?如何区别?位寻址和字节寻址如何区分?在使用时有何不同?2、要访问专用寄存器和片外数据寄存器,应采用什么寻址方式?举例说明。3、编程将内部RAM的20H单元的内容传送给外部RAM的2000H单元。4、编程将内部数据存储器20H~30H单元内容清零。5、已知A=83H,R0=17H,(17H):34H,写出下列程序段执行完后的A中的内容。ANLA,#17HORL17H,AXRLA,@R0CPLA6、编程查找内部RAM的32H~41H单元中是否有0AAH这个数据,若有这一数据,则将将50H单元置为0FFH,否则清50H单元为0。7、已知单片机的晶振为12MHz,分别设计延时0.1s、1s、lmin的子程序。8、查找20H~4FH单元中出现00H的次数,并将查找结果存入50H单元9、试编程使内部RAM的20H~4FH单元的数据块按降序排列。10、内部RAM的20H单元开始有一个数据块,以0DH为结束标志,试统计该数据块长度,将该数据块传送到外部数据存储器7E01H开始的单元,并将长度存入7E00H单元。11、试编写一个用查表法查0~9字形段码的子程序,调用子程序前,待查表的数据存放在累加器A中,子程序返回后,查表的结果也存放在累加器A中。12、内部RAM的DATA开始的区域中存放着10个单字节十进制数,求其累加和,并将结果存入SUM和SUM+1单元。13、MCS-51内部RAM前128字节支持哪些寻址方式?请写出用不同寻址方式将内部RAM30H单元信息传送到累加器A的指令或程序片段;内部RAM后128字节支持哪些寻址方式?请写出将内部RAM80H单元信息传送到累加器A的指令或程序片段。14、写出实现下列要求的指令或程序片段,并在仿真机上验证(假设指令代码从2000H单元开始存放)。(1)将内部RAM20H单元内容与累加器A相加,结果存放在20H单元中。(2)将8032内部RAM80H单元内容与内部RAM31H单元内容相加,结果存放到内部RAM31H单元中。(3)将内部RAM20H单元内容传送到外部RAM20H单元中。(4)将程序状态字寄存器PSW内容传送到外部RAM的0D0H单元中。(5)将内部RAM00H~7FH单元,共128字节传送到以8000H为首址的外部RAM中。(6)将外部RAM8000H~803FH单元,共64字节传送到以40H为首址的内部RAM中。(7)将外部RAM8000H~807FH单元,共128字节传送到以0000H为首址的外部RAM中。(8)将存放在内部RAM的40H、41H和外部RAM的8000H、8001H的16位二进制数相加,结果存放在内部RAM的40H和41H单元中(假设低位字节存放在低地址中)。(9)如果0~9七段数码显示器对应的字模码3P,06,5B,4F,66,6D,7D,07,7E6F存放在1000H为首址的程序存储器中,写出将数字4对应的字模码输出到外部RAM3003H单元(即扩展I/O端口地址)的程序段。(10)使内部RAM20H单元的b7和b3清零,其他位不变。(11)使内部RAM20H单元的b7和b3置1,b5清零,其他位不变。(12)将内部RAM20H单元的b7和b3置1,b5取反,其他位不变。(13)将DPH寄存器的b7、b5位清零,将b2、b0位置1,其他位不变。(14)将存放在内部RAM40H、41H和外部RAM8000H、8001H的四位BCD码相加,结果存放在内部RAM40H和41H单元中(假设低位字节存放在低地址中)。(15)将立即数32H传送到内部RAM30H单元中。(16)将立即数32H传送到8032CPU内部RAM88H单元中。 1、假设内部RAM(30H)=3FH,累加器A=0FEH,R0=30H,SP=07H,PSW=00H,则执行如下指令后,各存储单元及寄存器内容是什么(假设各小题相互独立)?(1)MOVA,@R0A=。(2)INCAA=;PSW=。(3)MOVA,#01HMOVA,#04HADDA,@R0INCR0MOV@R0,AA=;PSW=;R0=;(30H)=。(4)ANLA,@R0A=;PSW=。(5)PUSHACCPUSP30HA=;PSW=。2、假设4位BCD码压缩存放在R3、R2中,试编写BCD减1的程序段,并在仿真机上验证。3、输入、编译、运行下列程序段,并指出复位后和程序执行过程中SP、程序计数器PC的变化以及程序执行结束后累加器ACC、内部RAM30H~33H单元内容。ORG0000HLJMPMainORG1000HMain:MOVSP,#6FHMOVR0,#30HMOVRl,#32HMOV30H,#12HMOV31H,#34HMOV32H,#76HMOV33H,#98HLCALLSUBlNOPORG2000HSUBl:PUSHAccPUSHPSWMOVA,@R0ADDA,@R1MOV@R0,AINCR0RET4、假设程序头中含有如下变量定义伪指令。TXDBUFDATA#40HBDATADATA#28H(1)请指出“MOVR0,#TXDBUF”指令、“MOVR0,TXDBUF”指令目的操作数的寻址方式(2)执行如下程序段后,内部RAM40H~4FH单元内容是什么?28H单元内容又是什么?MOVBDATA,#10HMOVR0,#XDBUFCLRALOOP:MOV@R0,AINCAINCR0DJNZBDATA,LOOPEND 1、如果希望快速保护工作寄存器组,请写出将2区作为当前工作寄存器区的程序段。二、读程序1、阅读下列程序,写出程序流程图,并写出数学表达式ORG3000HX:EQU20HY:EQU30HSTART:MOVA,XJNZLP1MOVY,#0SJMPEDLP1:JNBACC.7,LP2MOVY,#0FFHSJMPEDLP2:MOVA,#1ED:SJMPED2、阅读下列程序,写出程序功能ORG2000HSTADA:EQU20HSLANG:EQU30HSTART:MOVR0,#STADAMOVB,#0LOP1:MOVXA,@R0CJNEA,#0DH,CRNEXTMOVSLANG,BSJMP$CRNEXT:INCBINCR0SJMPLOP1END3、阅读下列程序,回答问题ORG3000HMAIN:MOVR0,#30HMOVR1,#50HMOVR7,#0AHACALLBCD_SUMMOVR0,#30HMOVDPTR,#2000HMOVR7,#10HLOOP:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR7,LOOPBCD_SUM:MOVA,@R0ADDA,@R1DAAMOV@R0,A INCR0INCR1DJNZR7,BCD_SUM问:1)子程序BCD_SUM完成什么功能?2)程序MAIN完成什么功能?4、执行下列程序后,累加器A的内容为多少?ORG0000HMOVDPTR,#TABLEMOVA,#06HMOVCA,@A+DPTRSJMP$TABLE:DB0,1,4,9,16,25,36,49,64,81END三、编程序1、设被加数存放在内部RAM的20H(低字节)、21H、22H(高字节)单元,加数存放在30H(低字节)、31H、32H(高字节)单元,若要求和存放在30H、31H、32H中,试编写出16位数相加的程序。2、将内部RAM30H单元开始的4个单元中存放的四字节十六进制数和内部RAM40H单元开始的4个单元中存放的四字节十六进制数相减,结果存放到40H单元中。3、设有16位二进制数存放在R0、R1中(R0存放高位,R1存放低位),试编写实现16位二进制数的“取反加1”操作的程序。4、设有16位二进制数存放在内部RAM的50H、51H单元中,要求将其算术左移一位,(最低位移入0)后仍然放在原单元。5、设在内部RAM的40H单元中存放8位二进制数,要求将其转换成相应的BCD码并由高位到低位的顺序存入内部RAM以60H为首址的3个连续单元中。6、设在外部RAM的60H单元存有1字节的代码,要求将其分解成两个4位字段,高4位存入原单元的低四位,其低四位存入61H单元的低四位且要求将这两单元的高4位均为0。7、编写一段程序,把外部RAM中1000H~1030H的内容传送到内部RAM的30H~60H中。8、若80C51的晶振频率为6MHz,试计算延时子程序的延时时间。。DELAY:MOV R7,#0F6H  LP:MOV R6,#0FAH      DJNZ R6,$      DJNZ R7,LP      RET9、在内部RAM的21H单元开始存有一组单字节不带符号数,数据长度为30H,要求找出最大数存入BIG单元。10、编写子程序,将R1中的2个压缩BCD码转换为ASCII码后存放在R3和R4中。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭