收藏 分销(赏)

第章-MCS-系列单片机的指令系统和汇编语言程序.doc

上传人:精*** 文档编号:2577929 上传时间:2024-06-01 格式:DOC 页数:15 大小:68.54KB 下载积分:8 金币
下载 相关 举报
第章-MCS-系列单片机的指令系统和汇编语言程序.doc_第1页
第1页 / 共15页
第章-MCS-系列单片机的指令系统和汇编语言程序.doc_第2页
第2页 / 共15页


点击查看更多>>
资源描述
个人收集整理 勿做商业用途 第3章 MCS一51系列单片机的指令系统 和汇编语言程序 3·1汇编指令 3·1·1请阐明机器语言、汇编语言、高级语言三者的主要区别,进一步说明为什么这三种语言缺一不可。 3·1·2请总结: (1)汇编语言程序的优缺点和适用场合。 (2)学习微机原理课程时,为什么一定要学汇编语言程序? 3·1·3MCS一51系列单片机的寻址方式有哪儿种?请列表分析各种寻址方式的访问对象与 寻址范围。 3·1·4要访问片内RAM,可有哪几种寻址方式? 3·1·5要访问片外RAM,有哪几种寻址方式? 3·1·6要访问ROM,又有哪几种寻址方式? 3·1·7试按寻址方式对MCS一51系列单片机的各指令重新进行归类(一般根据源操作数寻址方式归类,程序转移类指令例外). 3·1·8试分别针对51子系列与52子系列,说明MOV A,direct指令与MOV A,@Rj 指令的访问范围. 3·1·9传送类指令中哪几个小类是访问RAM的?哪几个小类是访问ROM的?为什么访问 ROM的指令那么少?CPU访问ROM多不多?什么时候需要访问ROM? 3·1·10试绘图示明MCS一51系列单片机数据传送类指令可满足的各种传送关系。 3·1·11请选用指令,分别达到下列操作: (1)将累加器内容送工作寄存器R6. (2)将累加器内容送片内RAM的7BH单元. (3)将累加器内容送片外RAM的7BH单元。 (4)将累加器内容送片外RAM的007BH单元。 (5)将ROM007BH单元内容送累加器. 3·1·12 区分下列指令的不同功能: (l)MOV A,#24H 与MOV A。24H (2)MOV A,R0与MOV A,@R0 (3)MOV A,@R0与MOVX A,@R0 3·1·13设片内RAM 30H单元的内容为40H; 片内RAM 40H单元的内容为l0H; 片内RAM l0H单元的内容为00H; (Pl)=0CAH。 请写出下列各指令的机器码与执行下列指令后的结果(指各有关寄存器、RAM单元与端口的 内容)。 MOV R0,#30H MOV A,@R0 MOV RI,A MOV B,@Rl MOV @R0,Pl MOV P3,Pl MOV l0H,#20H MOV 30H,l0H 3·1.14 已知:(A)=35H,(R0)=6FH,(Pl)=FCH,(SP)=C0H,试分别写出下列指令的机器码及执行各条指令的结果: (l)MOV R6,A (2)MOV @R0,A (3)MOV A,廿90H (4)MOV A,90H (5)MOV 80H,廿81H (6)MOVX @R0,A (7)PUSH A (8)SWAP A (g)XCH A,R0 3·1。15 已知:(A)=02H,(Rl)=7FH,(DPTR)=2FFCH, 片内RAM(7FH)=70H,片外RAM (FFEH)=llH,ROM (FFEH)=64H,试分别写出下列指令的机器码及执行各条指令的结果。 (l)MOV A,@Rl (2)MOVX @DPTR,A (3)MOVC A,@A+DPTR (4)XCHD A,@Rl 3·1。16 已知:(A)=78H,(Rl)=78H,(B)=04H,C=l,片内RAM (78H)=DDH,片内RAM (80H)=6CH,试分别写出下列指令的机器码及执行各条指令的结果(如涉及标志位,也要写出). (l)ADD A,@Rl (2)ADDC A,78H (3)SUBB A,#77H (4)INC Rl (5)DEC 78H (6)MUL AB (7)DIV AB (8)ANL 78H,#78H (9)ORL A,#0FH (10)XRL 80H,A 3·1·17 已知:C=0,累加器和Rl内容分别为无符号数甲和乙,间:执行指令ADDC A, Rl后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取? (1)甲为02H,乙为FFH (2)甲为02H,乙为F0H 3·1·18 已知:C=0,累加器和Rl内容分别为补码表示的带符号数甲和乙,间:执行指令 ADDC A,Rl后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取? (1)甲为78H,乙为05H (2)甲为88H,乙为FBH (3)甲为78H,乙为69H (4)甲为88H,乙为97H (5)甲为7FH,乙为FEH (6)甲为7FH,乙为80H 3·1·19 已知:C=0,累加器和Rl内容分别为无符号数甲和乙,间:执行指令STTBB A,Rl 后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取? (1)甲为02H,乙为FFH (2)甲为FFH,乙为02H 3·1·20 已知:C=0,累加器和Rl内容分别为补码表示的带符号数甲和乙,问:执行指令 SUBB A,R1后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取? (1)甲为02H,乙为0lH (2)甲为0lH,乙为02H (3)甲为FFH,乙为FFH (4)甲为FEH,乙为FFH (5)甲为04H,乙为FFH (6)甲为FFH,乙为04H (7)甲为7FH,乙为ClH (8)甲为ClH,乙为7FH 3·1·21请对下列各组数分别计算"与"、"或”、"异或”的结果: (1)10011010和00001111 (2)11010011和01011010 (3)11001100和00110011 (4)10101010和11111111 3·1·22 为达到下列要求,请说明应采用何种逻辑操作、采用什么操作数。要求不得改变各未涉及位的内容。 (1)使累加器的最低位置”1" (2)清除累加器的高4位 (3)使A。2和A。3置"1" (4)清除A·。3、A.4、A.5、A.6 3·1·93请总结运用”与"、"或"、”异或”指令对字节内容进行修改的各种办法。 3·1·94 写出下列各条指令的机器码,并逐条写出依次执行每一条后的结果和PSw的内容: (l)CLR A (2)MOV A,#9BH (3)MOv B,#0AFH (4)ADD A,B 3,1·95请详细说明RET和RETI这两条指令的区别。 3·1·96 已知:(A)=0,(Rl)=40H.片内RAM(30H)=0lH,FIRST=2000H,SECOND =2050H,试分别写出下列指令的机器码及执行各条指令的结果: (l))FIRST:AIMP SECOND (2)FIRST:LIMP SECOND (3)FIRST.SIMP SECOND (4)FIRST.JZ SECOND C5)FIRST:CINE A,30H,SECOND (6)FIRST:LCALL SECOND (7)SECOND:DJNZ Rl,FIRST 3·1·97 已知:P1.7=1,A。0=0,C=l,FIRST=l000H,SECOND=l020H,试分别写出 下列指令的机器码及执行各条指令的结果: (l)MOV 26H,C (2)CPL A。0 (3)CLR Pl.7 (4)ORL C,/P1.7 (5)FIRST:lC SECOND (6)FIRST:JNB A。0,SECOND (7)SECOND:JBC Pl.7,FIRST 3·1·28要选用工作寄存器3组,请采用三种不同的指令实现之. 3·1·29列举三种能使累加器A内容清零的指令,并比较其优、缺点。 3·1·30 16位地址共涉及两个字节,请统计在哪些场合按照”先低后高"规则处理,哪些场合却按照"先高后低"规则. 3·1·31分组讨论: (1)算术操作类指令对标志位的影响。 (2)逻辑操作类指令对字节内容的修改。 (3)程序转移类指令长转移、绝对转移、短转移、绝对转移与相对转移、无条件转移与 条件转移的区分;绝对转移指令机器码与转移范围的确定;相对转移指令相对偏移量的计算; 散转指令的查表转移;调用与返主指令的堆栈操作;比较转移指令的格式与功用。 (4)位操作类指令中直接寻址位的表示方式。 3·1·39请统计MCS一51系列单片机有哪些指令可用于数据输入与输出? 3·1·33 请统计MCS一51系列单步机有哪些指令可用于修改并行I/O口端口寄存器的内 容? 3·1·34综述MCS一51系列单片机指令系统的特点、所长和所短.已学Z80的学生,试比较两种指令系统的优、缺点. 3·1·35请按MCS一51系列单片机指令的大类,分别统计其单字节、双字节、三字节指令数和单周期、双周期、四周期指令数。 3·1·36试按图3-1所示的格式,整理出MCS一51系列单片机各种指令的速查表(由机器码的第一字节查指令,或倒查)。 3·1.37请解释下列名词: 机器码 助记符 操作码 操作数 源程序 目标程序 汇编指令 汇编程序 汇编语言 汇编语言程序 汇编 机器汇编 人工汇编 3·1.38经过汇编后,下列各条语句的标号将是什 么数值? ORG 2000H TABLE: DS l0 WORD: DS l5,20,25,30 FANG: EQU l000H BEGIN:MOV A,R0 3·1·39下列程序段经汇编后,从2000H开始的各 有关存储单元的内容将是什么? ORG 2000H TAB: DS 5 DB 10H, 10 DW 2100H ORG 2050H DW TAB DB "WORK" 3·1·40下列程序段经汇编后,从1000H开始的各有关存储单元的内容将是什么? ORG l000H TABl: EQU 1234H TAB2:EQU 3000H DB ”START" DW TABl,TAB2 3·2汇编语言程序 3·2·1综述汇编语言程序的书写格式。 3·2·2要将片内RAM 0FH单元的内容传送去专用寄存器B,对OFH单元的寻址可有三种 办法: (l)R寻址 (2)R间址 (3)direct寻址 请分别编出相应程序,比较其字节数、机器周期数和优缺点。 3·2·3设 (R0)=7EH, (DPTR)=l0FEH 片内RAM 7E单元的内容为0FFH 7F单元的内容为38H 试为下列程序的每条指令注释其执行结果。 INC @R0 INC R0 INC @R0 INC DPTR INC DPTR TNC DPTR 3·2·4试编程:引用"与”运算,判断某8位二进制数是奇数还是偶数。 3·2·5试编程:引用"或”运算,使任意8位二进制数 的符号位必为"1"。 3·2·6请思考:引用”异或"运算,怎样可使一带符号 数的符号位改变、数据位不变;怎样可使该数必然变 ”0" 3·2·7要选择工作寄存器组,可有几种编程办法? 3·2·8 某压力测试的线性处理程序如下,如A/D转换器 的输出为02H,问执行程序后(A)=? MOV P1,#0FFH MOV A,P1 MOVC A,@A+PC TAB: DB 00H DB 00H DB 01H DB 02H ; DB FEH END 3·2·9 设ROM、片内RAM、RAM各有关单元的内容示如下图,问执行下列程序段后(A)=? 0000 AJMP 030H ORG 0030H 0030 MOV R0,#32H MOV A,@R0 MOV R1,A MOVX A,@R1 MOVC A,@A+DPTR 3·2·10若在片内RAM 30H单元中有2位压缩的BCD码95H,间执行下列程序后,片内 RAM 30H单元的内容是什么?31H、32H的内容又是什么?并写出BCD码十进制调整的过程。 MOV R0,#30H MOV A,@R0 ANL A,#0FH MOV R3,A MOV A,@R0 SWAP A ANL A,#0FH ADD A,R3 DA A MOV @R0,A MOV R3,A INC R0 ANL A,#0FH MOV @R0,A INC R0 MOV A,R3 ANL A,#0F0H SWAP A MOV @R0,A RET 3·2·11有程序如下: CLR C CLR RS1 CLR RS0 MOV A,#38H MOV R0,A MOV 29H,R0 SETB RS0 MOV Rl,A MOV 26H,A MOV 28H,C 请: (1)区分哪些是位操作指令?哪些是字节操作指令? (2)写出程序执行后,片内RAM有关单元的内容。 (3)译成机器码。 (4)按汇编语言程序的标准格式书写,要求有各条指令的存放地址和必要的注释。 (5)如fOSC=l2MHz,计算这段程序的执行时间。 3·2·12 试编程:将两个4位二进制数并存于一个字节。 3·2·13 试编程:将存于片内RAM 40H、41H单元中的16位数求补,结果放回原单元 (低 字节放40H单元)。 3·2·14 试编程:有两双字节压缩的BCD码数相加,设该两待加数分别按先低后高原则存放在30H、31H和40H、41H单元,和要求放回30H、31H单元. 3·2·15 试编程:将累加器A内容低4位送片外RAM 7AH单元,高4位送片外RAM 7BH 单元,7AH、7BH单元的高4位均清零。 3·2·16试编程:将片内RAM 50H、51H单元两个无符号数中较小的数存于60H单元。 3·2·17 试编程:将片内RAM 60H~69H单元中的l0个数相加,和的低8位存入7EH,高8位存入7FH。 3·2·18 试编程:统计从片内RAM 60H单元起所存60个数中"0"的个数,并存入工作寄 存器R7. 3·2·19试编程:将ROM中自2000H单元起的100个数,按序移至片外RAM自2080H单 元起的内存区间去. 3·2·20 试编程:将ROM中以TAB为初址的32个单元的内容依次传送到片外RAM以 00H为初址的区域去 (规定用查表指令)。 3·2·21试编写一段子程序,将片外RAM 20H单元中压缩的BCD码转换成共阴的七段笔划信息码,存于片内RAM 20H、21H单元,以待显示 (七段笔划信息码的最高位为0)。 3·2·22 请编一将A中内容乘10的程序,要求: (1)不可用MUL指令 1)乘积≤255 2)乘积﹥255 (2)可用MUL指令 1)乘积≤255 2) 乘积>255 规定乘积放在片内RAM的30H单元或30H、0lH单元。 3·2·23 教材例3·4是按总和仍为两位BCD码、无溢出进行编程的;如有溢出,请重编程序。 3·2·24 设教材例3·6程序中的多字节数为010000H,试剖析程序执行的经过与结果. 3·2·25 教材例3·7如不是两个数、而是n个数,请重编程序。(如有二数相等,不必建起标志位)。 3·2·26 CJNE指令执行何种操作?上述例3·7示出的程序为什么不用这一指令?如改用这一指令,程序将作何种改动?并请将重编后的汇编语言源程序译成机器码. 3·2·27设晶振为12MHz,请详细剖析 (包括计算)下列程序段的性质和用途: 0B0 79 63 DELAY:MOV Rl,#63H 0B2 00 DLl: NOP 0B3 00 NOP 0B4 D9 FC DJNZ Rl,DLl 0B6 22 RET 3·2·28请编写一个能延时1.5ms的子程序,要列出计算。Tcy=1us。 3·2·29请编写两段子程序,分别用指令延时法和定时器定时l0ms,设晶振为12MHz。 3·2·30设晶振为12MHz,请编写二段子程序,分别用指令延时法和定时器实现30ms延时。 3·2·30设晶振为12MHz,请编写二段子程序,分别用指令延时法和定时器实现30ms延时。 3·2·31某单片机系统:fOSC=l2MHz,定/计0用于20ms定时,定/计 1用于100次计数,定/计0和定/计1均要求重复工作。问: (1)外部计数脉冲应从何引脚输入? (2)试编能达到上述要求的程序。 3·2·32请回答:教材例3·19为什么按"TH0、TL0、TH0"的次序读, 却不按”TL0、TH0、TL0”的次序读。 3·2·33阅读下列程序, (1)说明该程序的功能。 (2)填出所缺的机器码。 (3)试修改程序,使片内RAM的内容达到右下图所示的结果。 7A__ MOV R2,#0AH __ __ MOV R0,#50H E4 CLR A E6 LOOP: MOV @R0,A 08 INC R0 DA__ DJNZ R2,LOOP DONE: 3·2·34 阅读下列程序,并要求: (1)说明程序的功能. (2)写出涉及的寄存器及片内RAM单元的最后结果。 MOV R0,#40H MOV A,@R0 INC R0 ADD A,@R0 INC R0 MOV @R0,A CLR A ADDC A,#0 INC R0 MOV @R0,A 3·2·35 同上题要求,程序如下 MOV A,61H MOV B,#02H MUL AB ADD A,62H MOV 63H,A CLR A ADDC A,B MOV 64H,A 3·2·36 同上题要求,程序如下 CLR C MOV A,R3 RRC A MOV R3,A MOV A,R4 RRC A MOV R4,A 3·2·37 同上题要求,程序如下: MOV R0,#31H MOV A,@R0 SWAP A DEC R0 XCHD A,@R0 MOV 40H.A 3·2·38 同上题要求,程序如下: MOV R0,#60H MOV A,#40H MOV @R0,A MOVX @R0,A 3·2·39 同上题要求,程序如下: MOV Rl,#30H MOVX A,@Rl MOV @Rl,A TNC Rl MOVX A,@Rl MOV @Rl,A 3·2。40 同上题要求,程序如下: ORG l000H ABS: MOV R0,#38H MOV Rl,#48H MOV R2,#06H LOOP: MOV A,@R0 JNB A,7,NEXT CPL A SETB A.7 INC A NEXT: MOV @Rl,A INC R0 INC Rl DJNZ R2,LOOP DONE: 3·2·41 阅读下列程序,写出程序执行后片外RAM 8008H和800AH单元以及DPTR、Rl、A的内容。 ORG 0100H START: MOV DPTR, #BLK1 MOV R2, #4 MOV R1, #30H MOV R0, #30H LOP1: MOVX A, @DPTR MOV @R1, A INC DPTR INC R1 DJNZ R2, LOP1 MOV R2, #4 CLR C LOP2: MOVX A, @DPTR ADDC A, @R0 DA A MOV @R1, A INC DPTR INC R0 INC Rl DJNZ R2, LOP2 MOV R2, # 4 LOPS: MOV A, @R0 MOVX @DPTR.A INC R0 INC DPTR DJNZ R2,LOP3 HERE: SJMP HERE ORG 8000H BLKl: DB 96H,74H,32H,l6H BLK2: DB 65H,94H,87H,29H BLK3: DS 4 END 3·2·42 阅读下列程序,写出程序执行后片外 RAM 7008H、700AH 和 700FH 单元以及DPTR、Rl的内容。 ORG0 200H MOV DPTR,#BLOCK MOV R0,#30H MOV Rl,#40H MOV R2,#08H MOV R3,#00H MOV R4,#00H CHODEV: MOVX A,@DPTR MOV R5,A ANL A,#0lA JNZ DD MOV A,R5 MOV @R0,A INC R0 INC R3 SJMP NEXT DD: MOV A,R5 MOV @Rl,A INC R1 INC R4 NEXT: INC DPTR DJNZ R2,CHODEV MOV R0,#30H MOV Rl,#40H EVMOV: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R3,EVMOV ODMOV: MOV A,@Rl MOVX @DPTR,A INC R1 INC DPTR DJNZ R4,ODMOV HERE: SJMP HERE ORG 7000H BLOCK DB 69H,47H,32H,61H DB 56H,49H,27H,78H BUFFERl DS 3 BUFFER2 DS 5 3·2·43 阅读下列程序,写出程序执行后片外RAM8003H和8005H单元以及DPTR、R2,R0的内容。 ORG 0200H START: MOV R0,#30H MOV Rl,#30H MOV R2,#2 MOV DTPR,#BUFFER HETOAS: MOVX A,@DPTR MOV R3,A SWAP A ANL A,#0FH ADD A,#90H DA A ADDC A,#40H DA A MOV @Rl,A INC R1 MOV A,R3 ANL A,#0FH ADD A,#90H DA A ADDC A,#40H DA A MOV @Rl,A INC DPTR INC R1 DJNZ R2,HETOAS MOV R2,#4 LOOP: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R2,LOOP HERE: SJUMP HERE ORG 8000H BUFFER DB 2AH,49H BLOCK DS 4 END 3·2·44 阅读下列程序,写出程序执行后片外RAM 2002H和 200l3H单元以及DPTR、SP、R3的内容。 注意: 本程序在RESET后执行 ORG 0100H MOV DPTR, #DAT MOVX A, @DPTR MOV R0, A SWAP A ANL A, #0FH ACALL BTOA MOV R4, A MOV A, R0 ANL A, #0FH ACALL BTOA MOV R5, A INC DPTR MOVX A, @DPTR MOV Rl, A SWAP A ANL A, #0FH ACALL BTOA MOV R6, A MOV A, Rl ANL A, #0FH ACALL BTOA MOV R7, A INC DPTR MOV A,R4 MOVX @.DPTR,A INC DPTR MOV A。R5 MOVX @DPTR,A INC DPTR MOV A,R6
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服