已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章单片机的汇编语言与程序设计习题1设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值MOVA,59HMOVR0,AMOVA,00HMOVR0,AMOVA,25HMOV51H,AMOV52H,70H解MOVA,59H;A50HMOVR0,A;RO50HMOVA,00H;A00HMOVR0,A;50H00HMOVA,25H;A25HMOV51H,A;51H25HMOV52H,70H;52H70H所以A25HR050H;50H00H51H25H2请选用合适的指令对P0口内容做修改(例如使P00P03不变,P04P07为0)。解MOVA,P0ANLA,0FHMOVP0,A3试问外部数据存储器和程序存储器可以用哪些指令来实现举例说明。解访问外部数据存储器指令有MOVXDPTR,AMOVXDPTR,0100HMOVDPTR,AMOVXA,DPTRMOVXDPTR,0200HMOVA,DPTRMOVXA,RIMOVXA,R0MOVXRI,AMOVXRI,A访问程序存储器指令有MOVXA,APCMOVXA,ADPTR4设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化PUSH30HPUSH31HPOPDPLPOPDPHMOV30H,00HMOV31H,0FFH解PUSH30H;61H24HPUSH31H;6210HSP62HPOPDPL;DPL10HPOPDPH;DPH24HSP60HMOV30H,00H;30H00HMOV31H,0FFH;31H0FFH5设A40H,R123H,40H05H。执行下列两条指令后,累加器A和R1以及内部RAM中40H单元的内容各位何值XCHA,R1XCHDA,R1解XCHA,R1;A23HR140HXCHDA,R1;A25H40H03H6两个四位BCD码数相加,被加数和加数分别存于50H,51H和52H,53H单元中(次序为千位、百位在低地址中),和数存在54H,55H和56H中(56H用来存放最高位的进位,试编写加法程序)解ORG0000HLJMPSTARTORG0100HSTARTMOVA,53HADDA,51HDAAMOV55H,AMOVA,52HADDCA,50HDAAMOV56H,CSJMPEND7设(A)01010101B,(R5)10101010B,分别写出执行ANLA,R5;ORLA,R5XRLA,R5指令后结果。解ANLA,R5;00000000BORLA,R5;11111111BXRLA,R5;111111118设指令SJMPREL7EH,并假设该指令存放在2114H和2115H单元中。当该指令执行后,程序将跳转到何地址解2116H60H2176H9简述转移指令AJMPADDR11,SJMPREL,LJMPADDR16及JMPADRTR的应用场合。解AJMPADDR11为2K字节范围内的无条件转跳指令,把程序的执行转移到指定的地址。SJMPREL是无条件转跳指令,执行时在PC加2后,把指令中补码形式的偏移量加到PC上,并计算出转向目标地址。转向的目标地址可以在这条指令前128字节到后127字节之间LJMPADDR16执行这条指令时把指令的第二字节和第三字节分别装入PC的高位和地位字节中无条件地转向指定地址。转移目标地址可以在64K程序存储器地址空间的任何地方,不影响任何标志。JMPADRTR指令的功能是把累加器中8位无符号数与数据指针DRTR中的16位数相加,将结果作为下条指令地址送入PC,利用这条指令能实现程序的散转。10试分析下列程序段,当程序执行后,位地址00H,01H中的内容将为何值P1口的8条I/O线为何状态CLRCMOVA,66HJCLOOP1CPLCSETB01HLOOPORLC,ACC0JBACC2,LOOP2CLR00HLOOP2MOVP1,A解CLRCCY0MOVA,66HA66HJCLOOP1CPLCCY1SETB01H20H11LOOPORLC,ACC0CY1JBACC2,LOOP2CLR00HLOOP2MOVP1,AP101100110BSJMP20H0020H11P166H11的特查指令表,写出下列两条指令的机器码,并比较一下机器码中操作数排列次序点。MOV78H,80HMOV78H,80H解直接寻址单元传送到直接寻址单元的机器码是第二个操作数在前,而立即数传送到直接地址单元是第一个操作数在前,次序正好相反。12手工汇编下列程序段ORG873BHAAAEQU851AHQQQMOVA,35HCLRCSUBBA,0AHJCQQ16MOVA,36HSUBBA,0AHJCQQ15AJMPAAAQQ15MOV35H,00HQQ16JNB02H,QQ17MOVR6,39HDECR6SJMPQQ18QQ17MOVR6,39HINC39HQQ18CLR05HLJMP8500HEND13若有两个无符号数X,Y分别存放于内部存储器50H,51H单元中,试编写一个程序实现X10Y,结果存入52H,53H两个单元中。解ORG0000HSJMPSTARTORG0030HSTARTMOVA,50HMOVB,10MULAB50H10积的高、低字节分别在B、A中ADDA,51HMOV53H,A积的低字节加(51H)其和存放在53H中MOVA,00HADDCA,BMOV52H,A积的高字节加进位位存放在52H中。SJMPEND14从内部存储器20H单元开始,有30个数据。试编一个程序,把其中的正数,负数分别送51H和71H开始的存储单元,并分别记下正数负数的个数送50H和70H单元。解ORG0000HSJMPSTARTORG0030HSTARTMOV1EH,51H正数存放首地址51H存于1EH单元MOV1FH,71H负数存放首地址71H存于1EH单元MOVR0,20H建立取数(源操作数)的地址指针MOVR2,30预置数据长度MOV50H,00H正数个数统计单元清零MOV70H,00H负数个数统计单元清零LOOPMOVA,R0取数JBACC7,NEG是负数转NEG处理POSTMOVR1,1EH是正数,将暂存的地址送R1(间址寄存器)MOVR1,A将正数入存INC50H正数个数加1INC1EH正数暂存地址加1修正LOOP1INCR0取数地址加1修正DJNZR2,LOOP计数长度减1,不等于零,继续循环统计SJMP结束NEGMOVR1,1FH是负数,将暂存的地址送R1(间址寄存器)MOVR1,A将正数入存INC70H负数个数加1INC1FH负数暂存地址加1修正SJMPLOOP1转取数地址修正15内部存储单元40H中有一个ASCII码字符,试编一程序,给该数的最高位加上奇检验。解ORG0000HSJMPSTARTORG0030HSTARTMOVA,40H取数给ACLRACC7A最高位(奇偶校验位)清零JBP,LOOP40H中的ASCII码原来就是奇数个1(最高位给零)SETBACC740H中的ACSII码原来是偶数个1,最高位置1LOOPMOV40H,A入存SJMP结束END16编写一段程序,将存放在自DATA单元开始的一个四字节数(高位在前)取补后送回原单元。解若DATA在内部数据存储器中(假如存放在30H起始的4个单元中);采用求反加1的算法;ORG000HSJMPSTARTORG0030HSTARTSETBC;置进位位为1MOVR2,04H;预置计数长度MOVR0,DATA13;取数指针指向低字节的地址LOOPMOVA,R0;取数CPLA;求反ADDCA,00H;加进位MOVR0,A;入存DECR0;地址指针修正DJNZR2,LOOP;4字节未处理完,继续循环处理SJMP;结束DATA1EQU30HEND17以BUF1为起始地址的外存储区中,存放有16个单字节无符号二进制数,是编一程序,求其平均值并送BUF2单元。解设R2、R3存放和,将其除以16(R2、R3联合左移4位)即为平均置值(单字节存放)ORG0000HSJMPSTARTORG0030HSTARTMOVR2,00H和高字节清零MOVR3,00H和低字节清零MOVDPTR,DATA1建立外部数据存储器的地址指针MOVR4,10H预置计数长度LOOPMOVXA,DPTR从外部数据存储器取数ADDA,R3MOVR3,AMOVA,R2ADDCA,00HMOVR2,A累加INCDPTR地址指针修正DJNZR4,LOOP16字节未累加完,继续循环累加MOVR4,04HR2、R3联合移位4次(除以16)LOOP1CLRCMOVA,R2RRCAMOVR3,ADJNZR4,LOOP1平均值存放于R3中SJMP结束DATA1EQU1000HEND18在DATA1单元中有一个带符号8位二位进制数X。编一程序,按以下关系计算Y值,送DATA2单元。YX5,X0YX,X0YX5,X0,则X5,入存SJMPZERONEGCLRCSUBBA,05HZEROMOV31H,A结果入存SJMPEND19设内部RAM中30H和31H单元中有两个带符号数,求出其中的大数存放在32H单元中。解若两数同号,则值大的数大;两数异号,正数值大ORG000HSJMPSTARTORG0030HSTARTMOVA,30HXRLA,31H两数异或JBACC7,YIHAO两数异号TONGHAOCLRC两数同号MOVA,30HSUBBA,31HJCLOOP12LOOP0MOVA,30H同号被减数大,值大LOOEDMOV32H,ASJMPLOOP1MOVA,31H异号被减数大,值小SJMPEDYIHAOMOVA,30H异号,哪个正,其值大JNBACC7,LOOP0SJMPLOOP1END20利用逻辑控制的方法,设计一个主程序,在第1,3,5,6次调出SB1子程序,第2,4,7,8次调用SB2程序。解ORG000HSJMPTESTORG0030HTESTMOVR2,08HMOVA,10101100BLOOPRLCAJCLOOP1LCALLSB1SJMPRELTLOOP1LCALLSB2RELTDJNZR2,LOOPSJMPPRGORETPRG1RETEND21将DATA单元存放的以ASCII码表示的16进制数转换成十进制数存放于DATA1单元。解先将DATA的ASCII码转换成十六进制的数,再转换成十进制数。数字的ASCII码转成十六进制数(即为十进制数)采用减30H字母的ASCII码转成十六进制数采用减37H,十六进制再转十进制可采用先减0AH,再加10H;这样37H0AH10H31H,可采用直接减31H。数字与字母的ASCII的区别,可采用对D6的检测D61为字母的ASCII码,反之为数字的ASCII码。ORG000HSJMPTESTORG0030HTESTMOVR0,DATA1MOVA,R0将DATA1的数给ACLRCLOOPJBACC6,LOOP1是字母,转LOOP1SUBBA,30H是数字减30HEDMOVDATA1,A入存SJMP结束LOOP1SUBBA,31H是字母减31HSJMPEDDATA1EQU30HEND22编一个将十六进制数转换成十进制数的子程序。解一个单字节的十六进制数转成十进制数一般考虑用二字节BCD码来存放。设转换后的数存放在R3(高)、R4(低)中。ORG000HSJMPTESTORG0030HTESTMOVDPTR,TAB建立表头地址MOVA,30HANLA,0F0HSWAPA高半字节分离ADDA,0E0H高半字节数乘2MOVB,A暂存MOVCA,ADPTRMOVR3,A取转换后的高半字节存R3INCDPTRMOVA,BMOVCA,ADPTRMOVR4,A取转换后的低半字节存R4MOVA,30HANLA,0FHADDA,R4DAAMOVR4,A加原数的低半字节(DAA)MOVA,R3ADDCA,00HDAAMOVR3,ARETTABDB00H,00H,00H,16H,00H,32H,00H,48H,00H,64HDB00H,80H,00H,96H,01H,12H,01H,28H,01H,44HDB01H,60H,01H,76H,01H,92H,02H,08H,02H,24HDB02H,40H,02H,40H,02H,56HEND23编一程序,将存储区DATA1单元开始的20个单字节数据依次与DATA2单元为起始地址的20个单字节数据进行交换。解设DATA1、DATA2分别为内部RAM30H和50H单元。ORG0000HSJMPSTARTORG0030HSTARTMOVR0,30H建立源地址指针MOVR1,50H建立目标地址指针MOVR6,20置计数长度LOOPMOVA,R0取源地址数据XCHA,R1MOVR0,A源地址数据与目标地址数据交换INCR0源地址指针修正INCR1目标地址指针修正DJNZR6,LOOP计数长度减1,不等于0继续循环RETEND24试编写一程序,将存储区DATA1单元开始的50个单字节逐一移至DATA2单元开始的存储区中。解STARTMOVR0,DATA1建立源操作数地址指针MOVR1,DATA2建立目标操作数地址指针MOVR6,50置计数长度LOOPMOVA,R0MOVR0,AINCR0INCR1DJNZR6,LOOPRETEND25试编写一采用查表法求120的平方数子程序(要求X在累加器A中,1X20,平方数高位存放在R6,低位在R7)解为了方便起见,每一数的平方在表中统一用双字节来存放,这样只要把数乘以2加表头地址,就可以找到平方数的高字节存放的地址,连续取两个字节即可ORG0000HSJMPSTARTORG0030HSTARTMOVDPTR,TAB建立源地址指针DECAMOVB,AADDA,BMOVB,ALOOPMOVCA,ADPTRMOVR5,AINCDPTRMOVA,BMOVCA,ADPTRMOVR6,ARETTABDB00H,00H,00H,01H,00H,04H,00H,09H,00H,16H平方数用BCD表示(也可用DB00H,25H,00H,36H,00H,49H,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国宝原所属成员单位公开招聘备考题库及答案1套
- 2026年遂宁工程职业学院单招职业技能考试模拟测试卷附答案
- 深圳市罗湖区托幼幼教集团2026年春季学期招聘备考题库及答案1套
- 安徽现代信息工程职业学院2025年教师招聘备考题库附答案
- 滁州市第一人民医院公开招聘工作人员备考题库必考题
- 2026河北省定向中山大学选调生招录参考题库必考题
- 2026年福建师范大学协和学院单招综合素质考试题库附答案
- 广州市荔湾区教育局公开招聘事业编制人员127人考试题库及答案1套
- 广东省广州市公务员考试《行测》题库及完整答案
- 国家公务员《行测》阅读理解历年真题库试卷(模拟题)
- 日历表2026年日历 英文版 横向排版 周一开始
- 2025版人教版高中物理精讲精练必修1专题强化03:水平和倾斜传送带模型 原卷版
- 统编版四年级上册语文期末专题复习课件2-6-文言文之超级访问
- 湘少版英语-6年级上册-单词表(带音标)
- 新概念英语第一册随堂练习-Lesson53~54 有答案
- 2020年智慧树知道网课《非英语国家文化(山东联盟)》课后章节测试满分答案
- 壅水计算完整版本
- 07FJ02防空地下室建筑构造
- 外研版(三起)(2024)三年级上册英语Unit 2 My school things单元测试卷(含答案)
- 化工建设综合项目审批作业流程图
- 马工程《经济法学》教学
评论
0/150
提交评论