微机原理与接口技术习题答案_第1页
微机原理与接口技术习题答案_第2页
微机原理与接口技术习题答案_第3页
微机原理与接口技术习题答案_第4页
微机原理与接口技术习题答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

.第3章8086/8088指令系统与寻址方式习题3.38086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地点。(1)MOVBX,12;目标操作数为寄存器寻址(2)MOV[BX],12;目标操作数为寄存器间址PA=10300H(3)MOVES:[SI],AX;目标操作数为寄存器间址PA=20200H4)MOVVAR,8;目标操作数为存储器直接寻址PA=10600H(5)MOV[BX][SI],AX;目标操作数为基址加变址寻址PA=10500H(6)MOV6[BP][SI],AL;目标操作数为相对的基址加变址寻址PA=12306H(7)MOV[1000H],DX;目标操作数为存储器直接寻址PA=11000H(8)MOV6[BX],CX;目标操作数为寄存器相对寻址PA=10306H(9)MOVVAR+5,AX;目标操作数为存储器直接寻址PA=10605H3.4下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。(1)XCHGCS,AX;错,CS不能参与互换(2)MOV[BX],[1000];错,存储器之不能互换(3)XCHGBX,IP;错,IP不能参与互换4)PUSHCS(5)POPCS;错,不能将数据弹到CS中(6)INBX,DX;输入/输出只能经过AL/AX(7)MOVBYTE[BX],1000;1000大于255,不能装入字节单元(8)MOVCS,[1000];CS不能作为目标寄存器(9)MOVBX,OFFSETVAR[SI];OFFSET只能取变量的偏移地点(10)MOVAX,[SI][DI];SI、DI不能成为基址加变址11)MOVCOUNT[BX][SI],ES:AX;AX是寄存器,不能加段前缀3.7设目前SS=2010H,SP=FE00H,BX=3457H,计算目前栈顶的地点为多少?当履行PUSHBX指令后,栈顶地点和栈顶2个字节的内容分别是什么?目前栈顶的地点=2FF00H当履行PUSHBX指令后,栈顶地点=2FEFEH2FEFEH)=57H2FEFFH)=34H3.8设DX=78C5H,CL=5,CF=1,确定下列各条指令履行后,DX和CF中的值。(1)SHRDX,1;DX=3C62HCF=1(2)SARDX,CL;DX=03C6HCF=0(3)SHLDX,CL;DX=18A0HCF=1(4)RORDX,CL;DX=2BC6HCF=0(5)RCLDX,CL;DX=18B7HCF=1(6)RCRDH,1;DX=BCC5HCF=0;3.9设AX=0A69H,VALUE字变量中寄存的内容为1927H,写出下列各条指令履行后寄存器和CF、ZF、OF、SF、PF的值。AXCFZFOFSFPF(1)XORAX,VALUE;134EH00001(2)ANDAX,VALUE;0821H00001(3)SUBAX,VALUE;F142H10011(4)CMPAX,VALUE;0A69H10011(5)NOTAX;F596HXXXXX(6)TESTAX,VALUE;0A69H00001..3.10设AX和BX中是符号数,CX和DX是无符号数,请分别为下列各项确定CMP和条件转移指令。1)CX值超过DX转移。2)AX未超过BX转移。3)DX为0转移。4)CX值等于小于DX转移。1)CMPCX,DXJANEXT2)CMPAX,BXJLENEXT3)CMPDX,0JZNEXT4)CMPCX,DXJBENEXT3.11阅11阅读剖析下列指令序列:ADDAX,BXJNOL1JNCL2SUBAX,BXJNCL3JNOL4JMPL5若AX和BX的初值分别为以下5种情况,则履行该指令序列后,程序将分别转向哪处(L1~L5中的一个)。1)AX=13C6H,BX=80DCH2)AX=0B568H,BX=54B7H3)AX=42C8H,BX=608DH4)AX=0D023H,BX=9FD0H5)AX=9FD0H,BX=0D023H1)转L12)转L13)转L24)转L55)转L5第四章汇编语言程序设计习题4.5画出下列语句中的数据在存储器中的存储情况。VARBDB34,34H,‘GOOD’,2DUP(1,2DUP(0))VARWDW5678H,‘CD’,$+2,2DUP(100)VARCEQU1222H34H‘G’‘O’‘O’‘D’..1VARB0010078H56H‘D’‘C’12H00H64H0064H

VARW4.6按下列要求,写出各数据定义语句。(1)DB1为10H个重复的字节数据序列:1,2,5个3,4。2)DB2为字符串‘STUDENTS’3)DB3为十六进制数序列:12H,ABCDH4)用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。DB1DB16DUP(1,2,5DUP(3,4))DB2DB‘STUDENTS’DB3DW12H,0ABCDHCOUNTEQUDB2-DB14.8关于下面的数据定义,各条MOV指令独自履行后,相关寄存器的内容是什么?PREPDB?TABADW5DUP(?)TABBDB‘NEXT’TABCDD12345678H(1)MOVAX,TYPEPREP;AX=1(2)MOVAX,TYPETABA;AX=2(3)MOVAX,LENGTHTABA;AX=5(4)MOVAX,SIZETABA;AX=10(5)MOVAX,LENGTHTABB;AX=1(6)MOVDX,SIZETABC;AX=44.10若自STRING单元开始寄存有一个字符串(以字符‘$’结束);1)编程统计该字符串长度(不包含$字符,并假定长度为两字节)。2)把字符串长度放在STRING单元,把整个字符串往下移两个单元。程序段为:..(1)MOVSI,OFFSETSTRINGXORBX,BXCONT:MOVAL,[SI]CMPAL,‘$’JZNEXTINCBXINCSIJMPCONTNEXT:MOVAH,4CHINT21H(2)STRINGDB‘.$’COUNTEQU$-STRING:MOVSI,OFFSETSTRINGMOVCX,COUNTADDSI,CXCONT:DECSIMOVAL,[SI]MOV[SI+2],AL]LOOPCONTMOVCX,COUNTMOVSTRING,CXMOVAH,4CHINT21H4.11将字符串STRING中的‘&’字符用空格代替,字符串STRING“ThedataisFEB&03”。程序为:DATASEGMENTSTRINGDB‘ThedataisFEB&03’COUNTEQU$-STRINGDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSETSTRINGMOVCX,COUNTMOVAL,‘$’CONT:CMPAL,[SI]JNZNEXTMOVBYTEPTR[SI],‘’NEXT:INCSILOOPCONTMOVAH,4CHINT21HCODEENDSENDSTART4.16键盘输入十个学生的成绩,试编制一个程序统计69~69分,70~79分,80~89分,..90~99分及100分的人数,分别寄存到S6,S7,S8,S9及S10单元中。程序为:DATASEGMENTBUFDB10DUP(?)S6DB?S7DB?S8DB?S9DB?S10DB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSETS6XORAL,ALMOVCX,0504HCONT:MOV[SI],ALINCSILOOPCONTMOVCX,10MOVSI,OFFSETBUFCONT1:MOVAH,1INT21HSHLAL,CLMOVBL,ALMOVAH,1INT21HSUBAL,30HORAL,BLMOV[SI],ALCMPAL,70HJAENEXT1INCBYTEPTRS6NEXT1:CMPAL,80HJAENEXT2INCBYTEPTRS7NEXT2:CMPAL,90HJAENEXT3INCBYTEPTRS8NEXT3:CMPAL,99HJANEXT4INCBYTEPTRS9JMPNEXT5NEXT4;INCBYTEPTRS10NEXT5:INCSILOOPCONT1MOVAH,4CHINT21HCODEENDS..ENDSTART第7章基本输入/输出接口习题7.4现有一输入设施,其数据端口地点为FFE0H,状态端口地点为FFE2H,当其D0为1时表示输入数据准备好。试采用查问方式,编程实现从该设施读取100个字节数据并保留到2000H:2000H开始的内存中。程序段为:MOVAX,2000HMOVDS,AXMOVSI,2000HMOVCX,100CONT:MOVDX,0FFE2HCONT1:INAL,DXTESTAL,01JZCONT1MOVDX,0FFE0HINAL,DXMOV[SI],ALINCSILOOPCONTMOVAH,4CHINT21H7.5硬件如图7.5所示,试编程实现:S0控制8个发光二极管1亮7暗,S1控制8个8个发光二极管7亮1暗,S2控制某一亮点(或暗点)以一准时间间隔循环向左移动,S3控制某一亮点(或暗点)以一准时间间隔循环向右移动,两个或两个以上开封闭合,则结束程序。程序段为:(省略伪指令)BUF1DB01HBUF2DB80HMOVDX,200HAGAIN:INAL,DXXORBL,BLMOVCX,8CONT:RORAL,1JNCNEXTINCBLNEXT:LOOPCONTCMPBL,2JAEEXITCMPAL,0FEHJZ1L7ACMPAL,0FDJZ1A7LCMPAL,0FBHJZZSHLCMPAL,0F7HJZYSHR..1L7A:MOVAL,80HOUTDX,ALJMPAGAIN7A7L:MOVAL,7FOUTDX,ALJMPAGAINZSHL:MOVAL,BUF1ROLAL,1MOVBUF1,ALOUTDX,ALCALLD500MSJMPAGAINYSHR:MOVAL,BUF2RORAL,1MOVBUF1,ALOUTDX,ALCALLD500MSJMPAGAINEXIT:MOVAH,4CHINT21H第8章中止习题8.2已知中止向量表表中地点0020H~0023H的单元中依次是40H,00H,00H,01H,并知INT08H指令本身所在的地点为9000H:00A0H。若SP=0100H,SS=0300H,标志寄存器内容为0240H,试指出在履行INT08H指令,刚进入它的中止服务程序时,SP,SS,IP,CS和堆栈顶上三个字的内容(用图表示)。履行后SS=0300HSP=00FAHCS=0100HIP=0040H,堆栈顶上三个字的内容如下所示:栈区A2H00FAH00H00FCH00H90H履行后:0300H:00FEH40H初始:0300H:01000H02HXX8.3某一用户中止源的中止种类号为40H,其中止服务程序名为INTR40,请用两种不同的方法设置它的中止向量。方法一:MOVAX,0MOVDS,AXMOVAX,OFFSETINTR40MOV[00C0H],AXMOVAX,SEGINTR40MOV[00C2H],AX..方法二:MOVAX,0MOVES,AXMOVDI,40H*4CLDMOVAX,OFFSETINTR40STOSWMOVAX,SEGINTR40STOSW8.5某一8086CPU系统中,采用一片8259A进行中止管理。设8259A工作在全嵌套方式,发送EIO命令结束中止,边沿触发方式,IR0对应的中止向量号为90H,8259A在系统中的端口地点为FFDCH(A0=0)和FFDDH(A0=1),试编写8259A的初始化程序段。初试化程序段为:MOVDX,0FFDCHMOVAL,13HOUTDX,ALINCDXINCDXMOVAL,90HOUTDX,ALMOVAL,01OUTDX,AL第9章可编程接口芯片及应用习题9.1试按如下要求分别编写初始化程序,已知计数器0~2和控制字寄存器的端口地址依次为204H~207H。(1)使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。(2)使计数器0工作在方式1,按BCD码计数,计数值为3000。(3)使计数器2工作在方式2,按二进制计数,计数值为02F0H。初始化程序为:MOVDX,207HMOVAL,50HOUTDX,ALMOVDX,205HMOVAL,80HOUTDX,ALMOVDX,207HMOVAL,23HOUTDX,ALMOVDX,204HMOVAL,30HOUTDX,ALMOVDX,207HMOVAL,0B4HOUTDX,ALMOVDX,206H..MOVAL,0F0HOUTDX,ALMOVAL,02OUTDX,AL9.2硬件如题9.2图,利用PC内部8253准时器0,并用中止方式实现每隔1s使发光二极管亮暗交替显示。(PC内部8253输入时钟频次为1.1932MHz,8253准时器0端口地址为40H,控制寄存器端口地点为43H。Y0为350H)。准时器计数值=1.1932MHz÷5=32864=83D5H软件计数值:50程序为:(硬件图赐教材P345题9.2图)MOVAL,34HOUT43H,ALMOVAL,0D5HOUT40H,ALMOVAL,83HOUT40H,ALMOVBL,50┇T0中止服务程序为:DECBLJNZEXIT1MOVBL,50MOVAL,BUFNOTALMOVBUF,ALMOVDX,350HOUTDX,ALEXIT1:MOVAL,20HOUT20H,AL;(设8259A的端口地点为20H,21H)IRET9.3硬件如题9.3图,8253采用方式0,BCD码计数方式,初始值为1000,每按一次按钮S,计数器值减1。试编程实现显示8253目前计数值,直至计数值为0。8253端口地址范围为80H~83H。(略。在哪处显示---屏幕/LED/液晶?)9.4图9.4为一简化的键盘/数码管显示接口电路,假定端口线a’~h’及1、2脚送“1”电平,可使显示点亮并能实现扫描,试问U1、U2及数码显示器的采用。(1)U1为(同相驱动器/反相驱动器)。(2)U2为(同相驱动器/反相驱动器)。(3)数码显示器为(共阴/共阳)数码管。(4)若A键闭合,则端口线3,4的电平为。图9.4赐教材P346(1)采用同相驱动器(2)采用反相驱动器(3)采用共阴数码管..(4)若A键闭合,则端口线3,4的电平为0,19.5硬件如题9.5图,试编程实现循环检测S0、S1,当S0按下,数码管显示0,当S1按下,数码管显示1,S0、S1同时按下,则结束程序。8255的端口地点范围为80H83H。程序为:MOVAL,82HOUT83H,ALAGAIN:INAL,81HTESTAL,03JZEXITTESTAL,01JZNEXTMOVAL,3FHOUT80H,ALJMPAGAINNEXT:TESTAL,02JZNEXT1MOVAL,06OUT80H,ALJMPAGAINNEXT1:MOVAL,00OUT80H,ALJMPAGAINEXIT:MOVAH,4CHINT21H第10章串行通信习题10.6设异步传输时,每个字符对应一个开端位,7个信息位,1个奇偶校验位和一个停止位,如果波特率为9600,每秒能传输的最大字符数为多少个?字符数=9600位/秒÷10位/字符=960(字符/秒)10.13要求8251A工作于异步方式,波特率系数为16,字符长度为7位,奇校验,2个停止位。工

温馨提示

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

评论

0/150

提交评论