MCS-51系列单片机的指令系统和汇编语言程序_第1页
MCS-51系列单片机的指令系统和汇编语言程序_第2页
MCS-51系列单片机的指令系统和汇编语言程序_第3页
MCS-51系列单片机的指令系统和汇编语言程序_第4页
MCS-51系列单片机的指令系统和汇编语言程序_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、31 汇编指令第 3 章MCS 一 51 系列单片机的指令系统和汇编语言程序311 请说明机器语言、汇编语言、高级语言三者的主要区分,进一步说明为什么这三种语言缺一不行。312 请总结:汇编语言程序的优缺点和适用场合。学习微机原理课程时,为什么肯定要学汇编语言程序?313MCS 一 51 系列单片机的寻址方式有哪儿种?请列表分析各种寻址方式的访问对象与寻址范围。314 要访问片内RAM,可有哪几种寻址方式?315 要访问片外RAM,有哪几种寻址方式?316 要访问ROM,又有哪几种寻址方式?317 试按寻址方式对 MCS 一 51 系列单片机的各指令重进展归类(一般依据源操作数寻址方式归类,程

2、序转移类指令例外)。318 试分别针对 51 子系列与 52 子系列,说明 MOVA,direct 指令与MOVA,Rj指令的访问范围。319 传送类指令中哪几个小类是访问RAM 的?哪几个小类是访问ROM 的?为什么访问ROM 的指令那么少?CPU 访问ROM 多不多?什么时候需要访问ROM?3110 试绘图示明MCS 一 51 系列单片机数据传送类指令可满足的各种传送关系。3111 请选用指令,分别到达以下操作: (1)将累加器内容送工作存放器R6.(2)将累加器内容送片内RAM 的 7BH 单元。(3)将累加器内容送片外RAM 的 7BH 单元。(4)将累加器内容送片外RAM 的 007

3、BH 单元。(5)将 ROM007BH 单元内容送累加器。3112区分以下指令的不同功能: (l)MOVA,#24H与 MOVA.24H (2)MOVA,R0 与MOVA,R0 (3)MOVA,R0 与 MOVXA,R03113 设片内RAM 30H 单元的内容为 40H; 片内RAM 40H 单元的内容为l0H; 片内RAM l0H 单元的内容为 00H; (Pl)=0CAH。请写出以下各指令的机器码与执行以下指令后的结果(指各有关存放器、RAM 单元与端口的内容)。MOVR0,#30HMOVA,R0MOVRI,AMOVB,RlMOVR0,PlMOVP3,PlMOVl0H,#20HMOV30

4、H,l0H31.14:(A)=35H,(R0)=6FH,(Pl)=FCH,(SP)=C0H,试分别写出以下指令的机器码及执行各条指令的结果:(l)MOV(2)MOV(3)MOVR6,AR0,A A,廿 90H(4)MOVA,90H(5)MOV80H,廿 81H(6)MOVXR0,A(7)PUSHA(8)SWAPA(g)XCHA,R031.15:(A)=02H,(Rl)=7FH,(DPTR)=2FFCH,片内 RAM(7FH)=70H,片外 RAM(FFEH)=llH,ROM(FFEH)=64H,试分别写出以下指令的机器码及执行各条指令的结果。(l)MOVA,Rl(2)MOVXDPTR,A (3

5、)MOVCA,A+DPTR (4)XCHDA,Rl3 1.16:(A)=78H,(Rl)=78H,(B)=04H, C=l,片内 RAM(78H)=DDH,片内 RAM(80H)=6CH,试分别写出以下指令的机器码及执行各条指令的结果(如涉及标志位,也要写出)。(l)ADD(2)ADDCA,RlA,78H(3)SUBBA,#77H(4)INCRl(5)DEC78H(6)MULAB(7)DIVAB(8)ANL78H,#78H(9)ORLA,#0FH(10)XRL80H,A3117:C=0,累加器和 Rl 内容分别为无符号数甲和乙,间:执行指令 ADDCA, Rl 后,进位位、符号位和溢出位将各为

6、何值?累加器的内容为何,该如何读取?甲为 02H,乙为FFH (2)甲为 02H,乙为F0H3118:C=0,累加器和Rl 内容分别为补码表示的带符号数甲和乙,间:执行指令ADDCA,Rl 后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取? (1)甲为 78H,乙为 05H甲为 88H,乙为FBH (3)甲为 78H,乙为 69H (4)甲为 88H,乙为 97H (5)甲为 7FH,乙为FEH (6)甲为 7FH,乙为 80H3119 :C=0,累加器和Rl 内容分别为无符号数甲和乙,间:执行指令 STTBB A,Rl后,进位位、符号位和溢出位将各为何值?累加器的内容为何,

7、该如何读取?甲为 02H,乙为FFH (2)甲为FFH,乙为 02H3120:C=0,累加器和Rl 内容分别为补码表示的带符号数甲和乙,问:执行指令SUBBA,R1 后,进位位、符号位和溢出位将各为何值?累加器的内容为何,该如何读取? (1)甲为 02H,乙为 0lH甲为 0lH,乙为 02H (3)甲为FFH,乙为 FFH (4)甲为FEH,乙为FFH (5)甲为 04H,乙为FFH (6)甲为FFH,乙为 04H (7)甲为 7FH,乙为ClH (8)甲为ClH,乙为 7FH3121 请对以下各组数分别计算“与“、“或“、“异或“的结果: (1)10011010 和 00001111(2)

8、11010011 和 01011010(3)11001100 和 00110011(4)10101010 和 111111113122为到达以下要求,请说明应承受何种规律操作、承受什么操作数。要求不得转变各未涉及位的内容。(1)使累加器的最低位置“1“ (2)去除累加器的高 4 位(3)使 A.2 和A.3 置“1“去除A.3、A.4、A.5、A.63193 请总结运用“与“、“或“、“异或“指令对字节内容进展修改的各种方法。3194写出以下各条指令的机器码,并逐条写出依次执行每一条后的结果和PSw 的内容:(l)CLRA (2)MOVA,#9BHMOvB,#0AFHADDA,B3,195 请

9、具体说明RET 和 RETI 这两条指令的区分。3196:(A)=0,(Rl)=40H.片内RAM(30H)=0lH,FIRST=2022H,SECOND=2050H,试分别写出以下指令的机器码及执行各条指令的结果: (l)FIRST:AIMPSECOND(2)FIRST:LIMPSECOND (3)FIRST.SIMPSECOND (4)FIRST.JZSECOND C5)FIRST:CINEA,30H,SECOND (6)FIRST:LCALLSECOND (7)SECOND:DJNZRl,FIRST3197:P1.7=1,A.0=0,C=l,FIRST=l000H,SECOND=l020

10、H,试分别写出以下指令的机器码及执行各条指令的结果: (l)MOV26H,CCPLA.0CLRPl.7 (4)ORLC,/P1.7FIRST:lCSECONDFIRST:JNBA.0,SECOND (7)SECOND:JBCPl.7,FIRST3128 要选用工作存放器 3 组,请承受三种不同的指令实现之。3129 列举三种能使累加器A 内容清零的指令,并比较其优、缺点。313016 位地址共涉及两个字节,请统计在哪些场合依据“先低后高“规章处理,哪些场合却依据“先高后低“规章。3131 分组争辩:(1)算术操作类指令对标志位的影响。 (2)规律操作类指令对字节内容的修改。程序转移类指令长转移

11、、确定转移、短转移、确定转移与相对转移、无条件转移与条件转移的区分;确定转移指令机器码与转移范围确实定;相对转移指令相对偏移量的计算; 散转指令的查表转移;调用与返主指令的堆栈操作;比较转移指令的格式与功用。位操作类指令中直接寻址位的表示方式。3139 请统计MCS 一 51 系列单片机有哪些指令可用于数据输入与输出?3133 请统计MCS 一 51 系列单步机有哪些指令可用于修改并行I/O 口端口存放器的内容?3134 综述 MCS 一 51 系列单片机指令系统的特点、所长和所短。已学Z80 的学生,试比较两种指令系统的优、缺点。3135 请按 MCS 一 51 系列单片机指令的大类,分别统

12、计其单字节、双字节、三字节指令数和单周期、双周期、四周期指令数。3136 试按图 3-1 所示的格式,整理出MCS 一 51 系列单片机各种指令的速查表(由机器码的第一字节查指令,或倒查)。31.37 请解释以下名词:机器码助记符 操作码操作数 源程序目标程序汇编指令 汇编程序 汇编语言汇编语言程序 汇编 机器汇编 人工汇编31.38 经过汇编后,以下各条语句的标号将是什么数值?ORG2022H TABLE: DSl0WORD: DSl5,20,25,30FANG: EQUl000HBEGIN:MOVA,R03139 以下程序段经汇编后,从 2022H 开头的各有关存储单元的内容将是什么?TA

13、B:ORGDS2022H5DB10H, 10DW2100HORG2050HDWTABDB“WORK“3140 以下程序段经汇编后,从 1000H 开头的各有关存储单元的内容将是什么?ORGl000HTABl: EQU1234HTAB2:EQU3000H DB“START“DWTABl,TAB232 汇编语言程序321 综述汇编语言程序的书写格式。322 要将片内RAM 0FH 单元的内容传送去专用存放器B,对 OFH 单元的寻址可有三种方法:(l)R 寻址(2)R 间址(3)direct 寻址请分别编出相应程序,比较其字节数、机器周期数和优缺点。323 设 (R0)=7EH,(DPTR)=l0

14、FEH片内RAM7E 单元的内容为 0FFH7F 单元的内容为 38H试为以下程序的每条指令注释其执行结果。INCR0INCR0INCR0INCDPTRINCDPTRTNCDPTR324 试编程:引用“与“运算,推断某 8 位二进制数是奇数还是偶数。325 试编程:引用“或“运算,使任意 8 位二进制数的符号位必为“1“。326 请思考:引用“异或“运算,怎样可使一带符号数的符号位转变、数据位不变;怎样可使该数必定变“0“327 要选择工作存放器组,可有几种编程方法?328某压力测试的线性处理程序如下,如A/D 转换器的输出为 02H,问执行程序后A=?MOVP1,#0FFHMOVA,P1MO

15、VCA,A+PCTAB:DB00HDB00HDB01HDB02H;DBFEHEND329设 ROM、片内 RAM、RAM 各有关单元的内容示如以下图,问执行以下程序段后A=?0000AJMP030HORG0030H0030MOVR0,#32HMOVA,R0MOVR1,AMOVXA,R1MOVCA,A+DPTR3210 假设在片内RAM 30H 单元中有 2 位压缩的BCD 码 95H,间执行以下程序后,片内RAM 30H 单元的内容是什么?31H、32H 的内容又是什么?并写出BCD 码十进制调整的过程。MOVR0,#30HMOVA,R0ANLA,#0FHMOVR3,AMOVA,R0SWAPA

16、ANLA,#0FHADDA,R3DAAMOVR0,AMOVR3,AINCR0ANLA,#0FHMOVR0,AINCR0MOVA,R3ANLA,#0F0HSWAPAMOVRETR0,A3211 有程序如下:CLRCCLRRS1CLRRS0MOVA,#38HMOVR0,AMOV29H,R0SETBRS0MOVRl,AMOV26H,AMOV28H,C请: (1)区分哪些是位操作指令?哪些是字节操作指令? (2)写出程序执行后,片内RAM 有关单元的内容。(3)译成机器码。按汇编语言程序的标准格式书写,要求有各条指令的存放地址和必要的注释。如 fOSC=l2MHz,计算这段程序的执行时间。 3212试

17、编程:将两个 4 位二进制数并存于一个字节。3213试编程:将存于片内RAM 40H、41H 单元中的 16 位数求补,结果放回原单元 (低字节放 40H 单元)。3214试编程:有两双字节压缩的 BCD 码数相加,设该两待加数分别按先低后高原则存放在 30H、31H 和 40H、41H 单元,和要求放回 30H、31H 单元。3215试编程:将累加器A 内容低 4 位送片外RAM 7AH 单元,高 4 位送片外RAM 7BH单元,7AH、7BH 单元的高 4 位均清零。3216 试编程:将片内RAM 50H、51H 单元两个无符号数中较小的数存于60H 单元。3217试编程:将片内RAM 6

18、0H69H 单元中的l0 个数相加,和的低 8 位存入 7EH, 高 8 位存入 7FH。3218试编程:统计从片内RAM 60H 单元起所存 60 个数中“0“的个数,并存入工作存放器R7。3219 试编程:将ROM 中自 2022H 单元起的 100 个数,按序移至片外RAM 自 2080H 单元起的内存区间去。3220试编程:将ROM 中以TAB 为初址的 32 个单元的内容依次传送到片外RAM 以00H 为初址的区域去 (规定用查表指令)。3221 试编写一段子程序,将片外RAM 20H 单元中压缩的BCD 码转换成共阴的七段笔划信息码,存于片内RAM 20H、21H 单元,以待显示

19、(七段笔划信息码的最高位为 0)。3222请编一将A 中内容乘 10 的程序,要求:不行用MUL 指令1)乘积2552乘积255可用MUL 指令1)乘积2552) 乘积255规定乘积放在片内RAM 的 30H 单元或 30H、0lH 单元。3223教材例 34 是按总和仍为两位 BCD 码、无溢出进展编程的;如有溢出,请重编程序。3224设教材例 36 程序中的多字节数为 010000H,试剖析程序执行的经过与结果。3225教材例 37 如不是两个数、而是 n 个数,请重编程序。(如有二数相等,不必建起标志位)。3226 CJNE 指令执行何种操作?上述例 37 示出的程序为什么不用这一指令?

20、如改用这一指令,程序将作何种改动?并请将重编后的汇编语言源程序译成机器码。3227 设晶振为 12MHz,请具体剖析 (包括计算)以下程序段的性质和用途:0B07963DELAY:MOVRl,#63H0B200DLl:NOP0B300NOP0B4D9FCDJNZRl,DLl0B622RET3228 请编写一个能延时 1.5ms 的子程序,要列出计算。Tcy=1us。3229 请编写两段子程序,分别用指令延时法和定时器定时l0ms,设晶振为 12MHz。3230 设晶振为 12MHz,请编写二段子程序,分别用指令延时法和定时器实现 30ms 延时。3230 设晶振为 12MHz,请编写二段子程序

21、,分别用指令延时法和定时器实现 30ms 延时。3231 某单片机系统:fOSC=l2MHz,定/计 0 用于 20ms 定时,定/计1 用于 100 次计数,定/计 0 和定/计 1 均要求重复工作。问:外部计数脉冲应从何引脚输入? (2)试编能到达上述要求的程序。3232 请答复:教材例 319 为什么按“TH0、TL0、TH0“的次序读, 却不按“TL0、TH0、TL0“的次序读。3233 阅读以下程序, (1)说明该程序的功能。(2)填出所缺的机器码。(3)试修改程序,使片内RAM 的内容到达右以下图所示的结果。7A MOVR2,#0AH MOVR0,#50HE4CLRAE6LOOP:

22、MOVR0,A08INCR0DA DJNZR2,LOOPDONE:3234阅读以下程序,并要求: (1)说明程序的功能。写出涉及的存放器及片内RAM 单元的最终结果。MOVR0,#40HMOVA,R0INCR0ADDA,R0INCR0MOVR0,ACLRAADDCA,#0INCR0MOVR0,A3235同上题要求,程序如下MOVA,61HMOVB,#02HMULABADDA,62HMOV63H,ACLRAADDCA,BMOV64H,A3236同上题要求,程序如下CLRCMOVA,R3RRCAMOVR3,AMOVA,R4RRCAMOVR4,A3237同上题要求,程序如下:MOVR0,#31HMO

23、VA,R0SWAPADECR0XCHDA,R0MOV40H.A3238同上题要求,程序如下: MOVR0,#60HMOVA,#40HMOVR0,AMOVXR0,A3239同上题要求,程序如下: MOVRl,#30HMOVXA,RlMOVRl,ATNCRlMOVXA,RlMOVRl,A32.40同上题要求,程序如下:ORGl000HABS:MOVR0,#38HMOVRl,#48HMOVR2,#06HLOOP:MOVA,R0JNBA,7,NEXTCPLASETBA.7INCANEXT:MOVRl,AINCR0INCRlDJNZR2,LOOPDONE:3241阅读以下程序,写出程序执行后片外RAM

24、8008H 和 800AH 单元以及DPTR、Rl、A 的内容。ORG0100HSTART:MOVDPTR, #BLK1MOVR2, #4MOVR1, #30HMOVR0, #30HLOP1:MOVXA, DPTRMOVR1, AINCDPTRINCR1DJNZR2, LOP1MOVR2, #4CLRCLOP2:MOVXA, DPTRADDCA, R0DAAMOVR1, AINCDPTRINCR0INCRlDJNZR2, LOP2MOVR2, # 4LOPS:MOVA, R0MOVXDPTR.AINCR0INCDPTRDJNZR2,LOP3HERE:SJMPHEREORG8000HBLKl:D

25、B96H,74H,32H,l6HBLK2:DB65H,94H,87H,29HBLK3:DS 4END3242阅读以下程序,写出程序执行后片外 RAM元以及DPTR、Rl 的内容。ORG0200HMOVDPTR,#BLOCKMOVR0,#30H7008H、700AH和 700FH单MOVRl,#40HMOVR2,#08HMOVR3,#00HMOVR4,#00HCHODEV:MOVXA,DPTRMOVR5,AANLA,#0lAJNZDDMOVA,R5MOVR0,AINCR0INCR3SJMPNEXTDD:MOVA,R5MOVRl,AINCR1INCR4NEXT:INCDPTRDJNZR2,CHOD

26、EVMOVR0,#30HMOVRl,#40HEVMOV:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR3,EVMOVODMOV:MOVA,RlMOVXDPTR,AINCR1INCDPTRDJNZR4,ODMOVHERE:SJMPHEREORG7000HBLOCKDB69H,47H,32H,61HDB56H,49H,27H,78HBUFFERlDS3BUFFER2DS53243阅读以下程序,写出程序执行后片外RAM8003H 和 8005H 单元以及DPTR、R2,R0 的内容。ORG0200HSTART:MOVR0,#30HMOVRl,#30HMOVR2,#2MOVDTP

27、R,#BUFFERHETOAS:MOVXA,DPTRMOVR3,ASWAPAANLA,#0FHADDA,#90HDAAADDCA,#40HDAAMOVRl,AINCR1MOVA,R3ANLA,#0FHADDA,#90HDAAADDCA,#40HDAAMOVRl,AINCDPTRINCR1DJNZR2,HETOASMOVR2,#4LOOP:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR2,LOOPHERE:SJUMPHEREORG8000HBUFFERDB2AH,49HBLOCKDSEND43244阅读以下程序,写出程序执行后片外 RAM 2022H 和 200l3H 单元

28、以及DPTR、SP、R3 的内容。留意: 本程序在RESET 后执行ORG0100HMOVDPTR, #DATMOVXA, DPTRMOVR0, ASWAPAANLA, #0FHACALLBTOAMOVR4, AMOVA, R0ANLA, #0FHACALLBTOAMOVR5, AINCDPTRMOVXA, DPTRMOVRl, ASWAPAANLA, #0FHACALLBTOAMOVR6, AMOVA, RlANLA, #0FHACALLBTOAMOVR7, AINCDPTRMOVA,R4MOVX.DPTR,AINCDPTRMOVA.R5MOVXDPTR,AINCDPTRMOVA,R6MOVXDPTR,AINCDPTRMOVA,R7MOVX DPTR,AHERE:SJMPHEREORG0200HBTOA:MOVR2,#08HMOVR3,#00HORLA.#30HLOP.RLCAJNCNEXTINCR3NEXT:DJNZR2,LOPRLC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论