您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理与接口 C0706-习题
微机原理与接口技术习题8237A内部寄存器的地址分配8237A内部共有10种寄存器对这些寄存器进行读、写操作共有16个端口,记为DMA+0~DMA+15,使用地址A3~A0进行寻址。每个通道有2个专用的地址,其余8个地址由各通道共用。端口通道I/O端口地址寄存器读(IOR)写(IOW)DMA+0000H当前地址寄存器基地址与当前地址寄存器DMA+1001H当前字节计数器基字节与当前字节寄存器DMA+2102H当前地址寄存器基地址与当前地址寄存器DMA+3103H当前字节计数器基字节与当前字节寄存器DMA+4204H当前地址寄存器基地址与当前地址寄存器DMA+5205H当前字节计数器基字节与当前字节寄存器DMA+6306H当前地址寄存器基地址与当前地址寄存器DMA+7307H当前字节计数器基字节与当前字节寄存器各通道专用的8个地址各通道共用的8个地址端口通道I/O端口地址寄存器读(IOR)写(IOW)DMA+8公用08H状态寄存器命令寄存器DMA+909H——请求寄存器DMA+100AH——单通道屏蔽寄存器DMA+110BH——工作方式寄存器DMA+120CH——清除先/后触发器命令*DMA+130DH暂存寄存器总清命令*DMA+140EH——清四通道屏蔽寄存器命令*DMA+150FH——四通道屏蔽寄存器Intel8237A的编程每次DMA传送都需要进行初始化编程。初始化准备工作:禁止8237A响应DMA请求(屏蔽位)屏蔽寄存器格式一:单通道屏蔽(DMA+0AH)格式二:四通道屏蔽(DMA+0FH)总清命令功能1:使DMA控制器内部的状态/命令/请求暂存寄存器和先/后触发器清0。功能2:使屏蔽寄存器全置1,即禁止所有的DMA请求。Intel8237A的编程每次DMA传送都需要进行初始化编程。初始化准备工作:禁止8237A响应DMA请求(屏蔽位)检测芯片是否能够正常工作。对所有通道的16位寄存器进行读写测试,写入与读出结果相同时,判断芯片能够正常工作。1.MOVAL,042.OUTDMA+8,AL3.OUTDMA+0DH,AL4.MOVAX,0FFFFH5.A0:MOVBX,AX6.MOVCX,87.MOVDX,DMA8.AA0:OUTDX,AL9.OUTDX,AL;检测前,禁止DMA工作;命令字写入命令寄存器;使8237进入空闲周期,同时清零先后触发器;作全1检测;把AX内容暂存BX;循环测试8个寄存器;DMA第一个寄存器地址装入DX;数据写入低8位(先后触发器);数据写入高8位10.INAL,DX11.MOVAH,AL12.INAL,DX13.CMPAX,BX14.JEAA115.HLT;读低8位;保存到AH;读高8位例:测试Intel8237A芯片是否正常Intel8237A的编程每次DMA传送都需要进行初始化编程。初始化准备工作:1.禁止8237A响应DMA请求(屏蔽位)2.检测芯片是否能够正常工作。初始化编程步骤:1.向需要初始化的通道写入屏蔽字,保证初始化编程时不受外界信号的影响2.把工作方式字写入通道方式寄存器3.设置存储器中传输数据的起始地址4.将本次DMA传送的字节数减1,分成低8位、高8位写入通道的基字节和当前字节寄存器5.清除请求通道的屏蔽位,由请求通道的DREQ信号启动DMA传送过程例:Intel8237A芯片测试正常后,编写初始化程序。假设使用通道0,工作方式为单字节读传送方式,基地址为0000H,不考虑页面地址,基字节数值为128(即7FH),自动预置方式。1.MOVAL,042.OUTDMA+10,AL3.MOVAL,01011000B4.OUTDMA+0BH,AL5.MOVAL,00H6.OUTDMA,AL7.OUTDMA,AL8.MOVAX,007FH9.OUTDMA+1,AL10.MOVAL,AH11.OUTDMA+1,AL;向需要初始化的通道写入屏蔽字;把工作方式字写入通道方式寄存器;设置存储器中传输数据的起始地址;将本次DMA传送的字节数减1,分成低8位、高8位写入通道的基字节和当前字节寄存器例:Intel8237A芯片测试正常后,编写初始化程序。假设使用通道0,工作方式为单字节读传送方式,基地址为0000H,不考虑页面地址,基字节数值为128(即7FH),自动预置方式。12.MOVAL,00H13.OUTDMA+10,AL…;清除通道0的屏蔽位,允许DMA请求计算机的硬件由哪几部分构成?各部分作用是什么?练习计算机软件系统的作用是什么?包括哪几方面?使计算机能够正确运行解决各种问题,必须为它编程。这种运行、管理和维护计算机而编制的程序的总和称为软件。RESET信号为()电平时,8086进入复位状态。该信号结束后,CPU内部代码段段寄存器CS的内容为(),IP寄存器的内容为(),程序将从地址()开始执行。8086在最小方式下,读总线周期在()状态开始始ALE信号变为有效()电平,并输出信号()来确定是访问存储器还是I/O端口,同时送出20位有效地址,在()状态的后部,ALE信号变为()电平,利用其跳变将20位地址锁存于地址锁存器中。8086最小模式下总线读操作时序图8086CPU一个总线周期包括哪几个时钟周期?若主时钟频率为4.77MHz,一个总线周期是多长时间?怎样延长总线周期?解:8086总线周期至少由四个时钟周期组成,分别以T1~T4表示,T又称为状态(State)一个时钟周期为1/(4.77M)s一个总线周期为4*1/(4.77M)s=838.57ns实际应用中,当一些慢速设备在三个周期内无法完成数据读/写时,T4时总线就不能为其所用,所以在T3后加入等待周期Tw。8086最小模式下总线读操作时序图什么是指令周期?总线周期?时钟周期?解:指令周期:每条指令的执行由取指令、译码和执行等操作组成,执行一条指令需要的时间称为指令周期(InstructionCycle)。不同指令的周期不等长。MOVAX,BXMOVAX,[BX]总线周期:8086CPU与外部交换信息总是通过总线进行的。每当CPU要从存储器或IO端口存取一个字或字节时就需要一个周期(BusCycle)。一个指令周期由一个或若干个总线周期组成。什么是指令周期?总线周期?时钟周期?时钟周期:执行指令的一系列操作都是在时钟脉冲CLK的统一控制下一步一步进行的,时钟脉冲的重复周期称为时钟周期(ClockCycle)。时钟周期是CPU的时间基准,由计算机的主频决定。一个总线周期至少包括四个时钟周期。下列指令中,执行速度最快的是()。A.MOVAX,NUMBERB.MOVAX,[BX]C.MOVAX,BXD.MOVAX,[BX+BP]8086堆栈指令的操作数字长可以是()位A.16B.8C.32D.64无条件段间转移指令的执行改变()。A.SPB.SS,SPC.IPD.CS,IP指令MOVAX,[BX][SI]中源操作数的寻址方式是()。A.基址变址B.寄存器相对C.寄存器间接D.寄存器寄存器间接寻址方式中,操作数在()中。A.通用寄存器B.堆栈C.主存单元D.段寄存器设DS=8225H,DI=3942H,指令NEGBYTEPTR[DI]操作数的物理地址是()。A.85B92HB.86192HC.BB690HD.12169H下列传送指令中有语法错误的是()。A.MOVCS,AXB.MOVDS,AXC.MOVSS,AXD.MOVES,AXMOV指令传送方向设AX=2000H,BX=1000H,则在执行指令CMPAX,BX后,标志位CF和ZF的值为()。A.0,0B.0,1C.1,0D.1,01若AX=0001H,BX=0FFFFH,执行ADDAX,BX之后,标志位ZF、SF、CF、OF各是什么?ZF=1;SF=0;CF=1;OF=1写出能达到要求的一条(或几条)汇编形式的指令将立即数1234H送入寄存器BXMOVBX,1234MOV[BX],1234将立即数1234送入段寄存器DSMOVBX,1234MOVDS,BX将变址寄存器DI的内容送入数据段中2000H的存储单元MOV[2000H],DI写出能达到要求的一条(或几条)汇编形式的指令将立即数0ABH与AL相加ADD0ABH,ALADDAL,0ABH寄存器BX中的低4位内容保持不变,其他位按位取反,结果在BX中XORBX,FFF0HXORBX,0FFF0H顺序执行下列指令,填写指令后的空格。MOVAX,2000H;AH=MOVDS,AX;AL=;DS=MOVBX,2030H;BH=;BL=MOVSI,BX;SI=PUSHBXPOPCX;BX=;CX=XCHGAX,SI;AX=;SI=ADDAX,0F43H;AX=;CF=CWD;AX=;DX=SHLAL,CL;AL=;CL=ORAX,5555H;AX=ANDAX,0AA55H;AX=MOVBL,0FFHMULBL;AX=IMULBL;AX=00H2000H20H20H30H2030H2030H2030H2030H2000H2F73H02F73H0000H00H30H7F55H2A55H54ABH0055HNEXTXX低地址栈顶SS→···XX…未进栈单元…已进栈单元高地址SP→栈顶12H未进栈单元已进栈单元SP→XX···XX低地址SS→…高地址34HMOVAX1234HPUSHAX…栈顶未进栈单元已进栈单元SP→12HXX···XX低地址SS→…高地址34HPOPBX栈顶12H未进栈单元已进栈单元SP→XX···XX低地址SS→…高地址34H(BX)=1234H设ARRAY是字数组的首地址,写出将第5个字元素取出送AX寄存器的指令,要求使用以下几种寻址方式:1.直接寻址2.寄存器间接寻址3.基址变址寻址设ARRAY是字数组的首地址,写出将第5个字元素取出送AX寄存器的指令,要求使用以下几种寻址方式:1.直接寻址MOVAX,ARRAY+82.寄存器间接寻址MOVBX,ARRAY+8MOVAX,[BX]LEABX,ARRAY+8设ARRAY是字数组的首地址,写出将第5个字元素取出送AX寄存器的指令,要求使用以下几种寻址方式:3.基址变址寻址LEABX,ARRAYMOVSI,8MOVAX,[BX+SI]LEABX,ARRAY+8MOVAX,[BX]设DS=2000H,BX=0100H,SS=1000H,BP=0010H,TABLE的物理地址为000AH,SI=0002H。求下列指令的源操作数的存储单元地址。MOVAX,[1234H]MOVAX,[BX]MOVAX,TABLE[BX]MOVAX,[BP]MOVAX,[BP][SI]设DS=2000H,BX=0100H,SS=1000H,BP=0010H,TABLE的物理地址为000AH,SI=0002H。求下列指令的源操作数的存储单元地址。MOVAX,[1234H](DS)*10+EA=2000H*10H+1234H=21234HMOVAX,[BX](DS)*10+(BX)=2000H*10H+0100H=20100HMOVAX,TABLE[BX](DS)*10+EA=2000H*10H+000AH+0100H=2010AH设DS=2000H,BX=0100H,SS=1000H,BP=0010H,TABLE的物理地址为000AH,SI=0002H。求下列指令的源操作数的存储单元地址。MOVAX,[BP](SS)*10+(BP)=1000H*10H+0010H=10010HMOVAX,[BP][SI](SS)*10+EA=1000H*10H+0010H+0002H=10012H假设VAR1和VAR2为字变量,LAB为标号,指出下列指令的错误之处并改正。1.ADDVAR1,VAR2MOVAX,VAR2MOVVAR1,AX2.SUBAL,VAR1SUBAX,VAR1假设VAR1
本文标题:微机原理与接口 C0706-习题
链接地址:https://www.777doc.com/doc-3164722 .html