




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、百度文库让每个人平等地提升自我练习题3答案1 .简述下列基本概念:指令,指令系统,机器语言,汇编语言。答:指令是单片机CPU执行某种操作的命令。指令系统是一台计算机所能执行的指令集合。机器语言即二进制代码语言,是计算机可以直接识别。汇编语言是用助记符、字符串和数字等来表示指令的程序语。2 .简述AT89S51单片机的指令格式答:该单片机的指令由两部分组成,即操作码和操作数。操作码用来规定指令进行什么操作, 而操作数则是指令操作的对象,操作数可能是一个具体的数据,也可能是指出到哪里取得数 据的地址或符号。指令格式一般为:标号:操作码 操作数1,操作数2,操作数3;注释3 .简述AT89s51的寻
2、址方式和所能涉及的寻址空间答:共有7种寻址方式,见表3-2。分别是:(1)寄存器寻址:寻址范围为通用寄存器组,共4组32个,但只能使用当前寄存器表32寻址方式及相应的寻址存储器范围寻址方式寻 址 存储 器 范 困立即寻址程序存储器ROM直接寻址片内RAM低128B,特殊功能寄存器寄存器寻址工作寄存器R0R7, A, C DPTR, AB寄存器间接寻址片内RAM低128B,片外RAM变址寻址程序存储器 ROM (A+DPTR,A+PC)相对寻址程序存储器ROM (相对寻址指令的下一指令PC值加- 128+127)位寻址片内RAM的20H-2FH字节地址中所有的位,可位寻址的特殊功能寄存器组,因此
3、使用前需要通过对PSW种的RSI、RSO位的状态进行设置:(2)直接寻址:寻址范 围为内部RAM,包括低128位用户RAM区和高128位专用寄存器;(3)寄存器间接寻址: 寻址范围为内部RAM低128位,外部RAM 64KB (低256单元可以使用DPTR和RO、R1 作为间接寻址寄存器,而其他单元只能用DPTR作为间接寻址寄存器):(4)立即寻址:直接 给出立即数,不涉及寻址空间:(5)变址寻址:只对程序寄存器进行寻址:(6)相对寻址:以 PC的内容为基值,加上指令机器代码中相对地址形成新的PC值转移;(7)位寻址:寻 址空间包括内部RAM位寻址区(202FH)和专用寄存器的可寻址位。4 .
4、要访问片外程序存储器和片外数据存储器,应采用哪些寻址方式?答:访问片外程序存储器采用变址寻址方式,片外数据存储器采用寄存器间接寻址方式,且 用DPTR可以访问64KB,而用R0或者R1只可访问低256字节。5 .在 AT89s51 片内 RAM 中,已知(3OH)=38H, (38H)=40H, (40H)=48H, (48H)=90H。请分 析下面各是什么指令,说明源操作数的寻址方式及按顺序执行每条指令后的结果。答:指令指令说明源操作数寻址方式结果MOV A, 40H将内部RAM中40H内容 传送到累加器A中 (A) (40H)直接寻址(A)=48HMOV RO, A再将A中内容传送给R0
5、(R0) (A)寄存器寻址(R0)=48HMOV Pl, #0F0H将立即数OFOH送到P1 口,即P1.4PL7位1,其 余为0(Pl) -0F0H立即数寻址(P1)=OFOHMOV R0, 30H将30H中的内容,传放到 以R0单元内容为地址的单元中(R0) (30H)直接寻址(R0)=(48H)=38HMOV DPTR.#3848H将立即数3848传送给DPTR数据指针(dptr) _ 3848H立即数寻址(DPTR)=3848HMOV 40H.38H将内部RAM中38H内容 传送到40H单元中 (40H) - (38H)直接寻址(40H)=40HMOV RO.30H将30H中的内容给R
6、0寄 存器(R0) - (30H)直接寻址(R0)=38HMOV PO. RO将R0的内容传送到P0(P0) (R0)寄存器寻址(P0)=38HMOV A, RO将R0内容为地址的该单 元内容传送给A(A)一(R0)寄存器间接寻址(A)=40HMOV P2,P1将Pl的内容传送给P2(P2) (P1)直接寻址(P2)=0F0H直接寻址立即数寻址寄存器间接寻址 寄存器寻址变址寻址6 .指出下列指令的源操作数的寻址方式MOV A. 65HMOV A. #65HMOV A.R0MOV A. R2MOVC A.A+PC7 .内部RAM和特殊功能寄存器各用什么寻址方式?答:内部RAM有寄存器寻址方式、直
7、接寻址方式和间接寻址方式:特殊功能寄存器除A外只能进行直接寻址。8 .已知:(A)=5BH, (Rl)=30H, (30H)=0CEH, (P1)=71H, (PSW)=80H, (PC)=2OOOH, (205CH) =46H, (SP) =30H, (B) =78H,分别求各条指令执行后的结果(要求进行二进制运算验证)及标志位Cy、P的影响:(1) MOVA. R1(A)=0CEHp=i,c不变(2) MOV40H. 30H(40H)=0CEHP和C不变(3) MOVPl,RI(Pl)=30HP和C不变(4) MOVCA, A+PC(A)=46Hp=l,C不变(5) PUSHB(31H)=
8、78H,(SP)=31H P 和 C 不变(6) POPDPH(DPH)=0CEH, (SP)=29H P 和 C 不变(7) XCHDA. R1(A)=05EH(30H)=CBHP=1,C 不变(8) ADDA, 30H(A)=29HP=1,C=1(9) ADDCA. Pl(A)=CDHP=LC=O(10) SUBBA, Pl(A)=E9HP=LC=1(11) ANLPL#OFH(Pl)=01HP和C不变(12 ) CLRPSW.7C=0(13) RLCA(A)=B7HP=0. c=o(14) ORLC. 90HC=1,P不变9.对下而一段程序加上机器码和注释,并说明程序运行后寄存器A、R0
9、和内部RAM50H、51H、52H单元的内容。MOV50H. #50H75 50 50:(50H)TOHMOVA, 50HE5 50:(A)一(50H)MOVR0, AF8:(R0) -(A)MOVA, #30H74 30:(A) TOHMOVR0, AF6;(R0)一(A)MOVA, #50H74 50;(A) TOHMOV51H, AF5 51:(51H)一(A)MOV52H, #00H75 52 00:(52H)-OOH答:运行后寄存器(A)=50H, (R0)=50H,(5OH)=3OH,(51)=50H(52H)=00H10.区别下列各指令中20H的含义,在每条指令后加上注释。MOV
10、 A. #20H 将20H立即数传送给AMOV 45H, 20H将内部RAM中20H单元的内容传送到45H中MOV C, 20H.0将内部RAM中20H单元内容的第。位(最低位)传送给CMOV C, 20H将内部RAM中20H位地址内容传送给C11.写出完成以下功能的指令(1) 将立即数30H送到R1:(2) 将内RAM30H中的数据送到内RAM78H单元;(3)将立即数30H送到 以R0中内容为地址的存储器中:(4)将R2中的内容送到P1;(5)将内RAM60H单元的数据送到 外RAM60H单元;(6) 将内RAM60H单元的数据送到外RAM1060H单元:(7) 将ROM1000H单元的内
11、容送到内RAM30H单元;(8) 使ACC.7置位;(9) 使累加器的低4位清零:(10)使PL2与Cy相与,结果送Cy;(11)立即数45H、93H进行逻辑与、或、异或操作;(12)两立即数求和:1C0H+45H,结果按高低8位存在30H、31H中。答案:(l)MOV RI, #30H(2) MOV 78H, 30HMOV R0, #30H(4)M0V Pl, R2(5) MOV A, 60H;MOV P2,#0;MOV RO, #60H;MOVX R0, A(6) MOV A, 60H;MOV DPTR,#1060;MOVX DPTR, A(7) MOV A, #00HMOV DPTR,#
12、1000HMOVCA, A+DPTRMOV 30H, A(8)SETB ACC. 7(9) ANL A, #0F0H(10)ANLC,pl.2(11)与:MOV A.#45HANL A.#59H或:MOV A.#45HORL A.#59H异或:PMOV A,#45HXRL A#59H(12) CLR CMOV R2.#lMOV A.#0C0HADD A#45HMOV 31H, AMOV A.R2ADDCA, #0MOV 30H, A12 .写出下列指令执行过程中堆栈的变化设堆栈初值为X:MOV R6,#11H(SP)=X (堆栈不变)MOV R7,#23H(SP)=X (堆栈不变)ACALL
13、200H(SP)=X+2;(X+1)=第4条指令的首址PC低8位 (X+2)=第4条指令的首址PC高8位POP 50H(SP)=X-1POP 51H(SP)=X-2SJMP $ORG 200HRET答:执行过程中,前面两条为立即寻址指令,堆栈不变:执行第三条ACALL指令时,首先 将程序寄存器PC的当前值加2,接着先后将PC的低八位和高八位分别进栈,(SP)= (SP)+2; 然后再将PC内容中的低11位用200H来替代,同时程序跳到第七条ORG200H中,接着 RET表示子程序返回,将原先压入堆栈的PC值弹出,(SP) =(SP)-2;最后两条POP指令执 行后将SP所指地址中的内容赋给50
14、H, SP减1后再将SP所指地址中的内容赋给51H, SP 内容再减1给SP,最后程序结束。13 .请写出能实现下列功能的程序段:(1) 一个16位数据,高低字节分别放在20H和21H中,试将该数乘以2MOV A, 21HCLRCRRCAM0V21KAMOV A, 20HRRCAMOV 20H, A(2) 16位二进制数由高位到低位放在30H和31H单元,将其内容加1:MOV A, 31HADD A,#01HMOV 31H,AMOV A, 30HADDC A.#00HMOV 30H,A(3)将DPTR中的数据减5;CLR CMOV A, DPLSUBB A, #05HMOV DPL, AMOV
15、 A.DPHSUBB A, #00HMOV DPh,A(4)有3个位变量X, Y, Z,请编写程序实现丫=*+丫2的逻辑关系式。X BIT 30HY BIT 31HZ BIT 32HMOV C,YANL C,ZMOV 20H.eMOV C,XORL C,20HMOV Y, C14 .将一个按高低字节存放在21H、20H中的一个双字节乘以2后,再按高低次序将结果存 放到22H、21H、20H单元ORGOSTAR: CLRCMOV 20H.#0E2H;设低字节的数据 是E2HMOV21H.#OF3H;设高字节的数据是F3HMOV A, 20HMOV B.#2HMULABMOV 20H.AMOV 2
16、3H.BMOVA.21HMOV B.#2HMULABADDC A,23HMOV21H.AMOV 22H.BSJMP $END15 .试编程,将片外RAM 1000H-1050H单元的内容置为55H。MOV P2.#10HMOV RO, #00HMOVA.#55HMOVX R0.AMOV R0.#50HL0: MOVX R0,ADJNZ R0,L0SJMP $END16 .试编程统计数据区长度的程序,设数据区从片内RAM 30H单元开始,该数据区以。结 束,统计结果放入2FH中。MOV R0.#30HL0:MOVA,R0JZ LIINC RIINC R0SJMP L0LI: MOV 2FH.R1
17、17 .试编写程序,将片外RAM2OOOH2(X)FH数据区中的数据由大到小排列起来。 ORGOLO: MOV P2.#2OHMOV R0,#00HMOV R7,#OFH CLRFOLOOP: MOVX A,R0MOV 3IKAINC ROMOVX A, ROCLRCCJNEA31HX1LI: JC L2DEC ROMOVX R0.AMOV A.31HINC ROMOVX R0,A SETBFOL2: DJNZ R7.LOOPJB FO.LOSJMPSEND18.若晶振频率位6MHZ,试计算下面延时子程序的延时时间DELAY: MOVLP:MOVDJNZDJNZ RETR7, #0F6HR6,
18、 #0FAHR6,$R7,LP1个机器周期1个机器周期2个机器周期2个机器周期2个机器周期答:机器周期为 2us,则有:1+ (1+2X250+2) X246+2X2 us =247482 us19.试分别编写延时20ms和Is的程序设晶振频率为12M20ms:ORGOMOVR1.#102LI: MOV R0.#48L2: NOPNOPDJNZ R0,L2NOPDJNZRLL17百度文库让每个人平等地提升自我NOPNOPNOPNOPNOPNOPNOPEND Is:ORGOMOV R2.#50L0:MOVRL#100Li: MOV R0.#49 L2: NOPNOPDJNZ R0,L2NOPDJ
19、NZRLL1DJNZ R2,L0SJMP$END20 .试编写利用调用子程序的方法延时Imin的程序。 ORG 0HMOV R2.#60AO:LCALL DLYDJNZ R2,A0SJMPSDLY: MOV R2,#50L0:MOV RI,#100LI:MOV R0.#49L2:NOPNOPDJNZ R0,L2NOPDJNZRLL1DJNZ R2.L0 RETEND21 .用查表程序求06之间的整数的立方。已知整数存在A中,查表结果存入片内RAM 31H 中。ORGOMOV A, #DATAMOV DPTR.#TABMOVC A, A+DPTRMOV 30H.ASJMP $TAB: DB 01
20、8,27,6425,216END若立方数超过一个字节,在两个字节以内,由以下程序实现。ORG 0000HMOV A.#5RLAMOV RO.AMOV DPTR.#TABMOVC A, A+DPTRMOV31H.A :高位MOV A.ROINCAMOVC A,A+DPTRMOV 30H.A :低位SJMP $TAB: DW 0,1,8,27.64,125,216END22 .编写程序,查找在内部RAM的30H50H单元中出现FFH的次数,并将查找结果存入 51H单元aMOVRL#OOHMOV R0.#30HMOV R2.#21HL0: MOVA.R()CJNEA,#OFFH.L1INC RILI
21、: INC RODJNZ R2,L0MOV51H.R1SJMP$END23.试用子程序求多项式:Y=(A+B)2+(B+C)2(要求:两数之和不能超过16)X EQU 30H: X 代表 AYEQU31H;Y 代表 BZEQU 32H:Z 代表 CFEQU 33H:F中存放计算结果YMOV RLXMOV R2.YLCALL L0MOV R3.AMOV RhY MOV R2.Z LCALL LO ADD A.R3 MOV F,A Sjmp $ LO: MOV A.R1ADD A.R2 MOV B,A MUL AB RET end24.已知(60H) =33H.(61H)=43H,试写出程序的功能和运行结果。 ORG OOOOhSS: MOV R0,#61H MOVRL#70H ACALL CRR SWAP A MOVRLA DEC RO ACALLCRR XCHDA,R1 SJMPSCRR:MOVA,RO CLRC SUBB A.#3Oh CJNEA,#OAH.NEQ AJMP BIG NEQ: JC CEN BIG: SUBB A.#07H CEN: RET该程序的运行结果是:(60H)=33H, (61H)=43H. (70H)=C3H25 .内部RAM的30H单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游团队租车合同范本更新版2025
- 2025年电子商务平台合作合同书
- 面向不确定工件的智能喷涂机器人系统研究
- 钯合金复合膜的制备及缺陷修饰研究
- 2025年河北邯郸市中心医院公开招聘控制数管理人员41名考试模拟试题及答案解析
- 低空经济2025数据驱动的航空物流报告
- 2025年智能家居行业技术创新与市场布局报告
- 2025陕西省委党校(陕西行政学院)高层次人才引进考试模拟试题及答案解析
- 低空经济背景下2025年无人机大吨位货运倾转旋翼技术应用案例分析报告
- 2025湖北恩施州鹤峰县消防救援局招聘政府专职消防员12人考试参考试题及答案解析
- GB/T 27689-2025小型游乐设施滑梯
- 第三章代数式七年级上学期数学重点题型(原卷版)(2024苏科新版)
- 第8课 《回忆鲁迅先生(节选)》 课件 2025-2026学年统编版语文八年级上册
- 酱酒食品安全培训记录课件
- 劳动价值观测试理解劳动的意义与价值
- 合伙开店合同终止协议书
- (正式版)DB15∕T 1987-2020 《蒙古族传统奶制品 阿尔沁浩乳德(酸酪蛋)生产工艺规范》
- 2025年中考数学真题完全解读(上海卷)
- 商户门牌设计方案(3篇)
- 学堂在线 大数据系统基础 章节测试答案
- 技术人员与客户沟通技巧
评论
0/150
提交评论