资源描述
微机原理及应用期末自测题 一、基本概念与术语1、8086是( 16 )位计算机。8086地址线有( 20 )条,可直接寻址的空间最大为( 1M )。2、总线周期是指( 进行一次总线操作的时间 )。基本总线周期有( 4 )T状态。Tw状态是指( 等待周期 )。3、8086CPU允许的I/O地址线最多可达( 16 )条,最大寻址I/O空间为( 64K )。4、8086CPU由( 总线接口部件BIU,执行部件EU )两部分组成,其功能为( 总线接口部件BIU,负责控制存储器与I/O端口的信息读写,包括指令获取与排队、操作数存取等。执行部件EU负责从指令队列中取出指令,完成指令译码与指令的执行行。 )。其中8086CPU中标志寄存器的作用是( 记录指令运行的状态标志和控制标志 ),指令队列的作用是( 完成指令的获取和排队 ),20位地址加法器的作用是( 将执行单元提供的16位非重定位地址重定位为20位的存储器物理地址,用于存储器接口访问总线上实际的物理存储器 )。代码段物理地址由CPU的( CS,IP )两个寄存器确定。堆栈段物理地址由CPU的( SS,SP )两个寄存器确定。5、8086中断源有( 系统外部中断,内部中断两 )个。8086中断服务程序入口地址由( 中断向量表 )组成。中断类型号为20H,其中断向量为( 80H )。6、I/O指令IN/OUT,传送数据的寄存器为( AL,AX ),间接寻址时使用寄存器( DX ),其中IN AL,DX的含义是( 将DX中的数据写入到AL中 )。OUT 60H,AL的含义是( 将AL读出到地址为60H的端口中 )。7、一片8259A可以管理( 8 )级中断;3片8259A可以管理( 16 )级中断。8、硬件中断是(外部引发,随机的,执行总线周期,中断类型码由中断控制器提供),软件中断是(内部引发,确定的,不执行总线周期,中断类型确定 )软件中断优先级与硬件中断优先级相比,( 软件中断 )的级别高。9、在中断服务程序结束前,为正确返回,必须设置一条指令( IRET )。在子程序调用结束前,为正确返回,必须设置一条指令( RET )。10、若中断控制器8259的中断请求寄存器IRR状态为10100000B,说明( IR5,IR7引脚上有中断请求 )。ISR状态为10100000B说明( 出现了中断嵌套 )。11、可编程定时器8253的地址有( 16 )个。共有( 3 )独立定时通道。工作方式有( 6 )个。12、并行接口8255有( 4 )个数据端口,有( 3 )种工作方式。13、假设8253的端口地址为40H43H,那么控制端口地址为( 43H ),通道0、1、2的端口地址为( 40H,41H,42H )。14、假设8255的端口地址为330H333H,那么控制端口地址为( 333H ),端口A、B、C的地址为( 330H,331H,332H )15、定时器8253的门控信号GATE作用是( 门控输入端,用于外部控制计数器的启动或停止计数的操作 ),CLK端的作用是( 计数器的时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号 ),OUT端作用是( 定时器的输出端 )。16、初始化定时器8253需要先写( 控制字 ),后写( 定时初值 )。17、伪指令的作用是( 指出汇编程序应如何对源程序进行汇编,如何定义变量,分配存储单元,以及指示程序的开始和结束 ),( 不 )产生机器代码。二、简单应用与简答题1、简述微型计算机的组成。微型计算机是由微处理器、存储器、输入/输出接口电路和系统总线构成的裸机系统。2、总线分为哪几种类型?微型计算机采用总线结构有什么优点?分为地址总线,数据总线与控制总线三类,又称三总线。微型计算机的三总线结构是一个独特的结构。采用总线结构,系统中各功能部件之间的相互关系,变成了各功能部件面向总线的单一关系。一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能得到扩展。3、8086 CPU在内部结构上由哪几部分组成?其功能是什么? 8086的内部结构分成两部分。总线接口部件BIU,负责控制存储器与I/O端口的信息读写,包括指令获取与排队、操作数存取等。执行部件EU负责从指令队列中取出指令,完成指令译码与指令的执行行。4、8086的总线接口部件由那几部分组成? 其功能是什么?8086的总线接口部件主要由下面几部分组成:4个段寄存器CS/DS/ES/SS,用于保存各段地址; 一个16位的指令指针寄存器IP,用于保存当前指令的偏移地址; 一个20位地址加法器,用于形成20位物理地址;指令流字节队列,用于保存指令;存储器接口,用于内总线与外总线的连接。5、8086的执行单元(部件)由那几部分组成?有什么功能?8086的执行单元部件主要由下面几部分组成:控制器、算数逻辑单元、标志寄存器、通用寄存器组。(1)控制器,从指令流顺序取指令、进行指令译码,完成指令的执行等。(2)算数逻辑单元ALU,根据控制器完成8/16位二进制算数与逻辑运算。(3)标志寄存器,使用9位,标志分两类。其中状态标志6位,存放算数逻辑单元ALU运算结果特征;控制标志3位,控制8086的3种特定操作。(4)通用寄存器组,用于暂存数据或指针的寄存器阵列。6、简述8086CPU的流水线思想,与传统计算机有何不同。在8086CPU中,指令的提取与执行分别由总线接口部件BIU与执行部件EU完成,两个单元重叠并行工作,这种机制称为流水线,这种工作方式有力的提高了CPU的工作效率。传统的计算机一般按照取指令、指令译码与执行指令的串行步骤工作。7、8086和8088是怎样解决地址线和数据线的复用问题的? ALE信号何时处于有效电平?8086/8088采用时间分隔技术与地址锁存技术,通过地址锁存允许信号ALE锁存CPU送出的地址,有效解决地址线和数据线的复用问题。 ALE在T1状态有效,将CPU送出的20位地址锁存。8、计算机对I/O端口编址时通常采用哪两种方法?在8086/8088系统中,用哪种方法对I/O端口进行编址?对端口编址的两种方法。计算机对内存和I/O端口统一编址;计算机对内存和I/O端口分别进行编址。 在8086/8088系统中用计算机对内存和I/O端口独立编址。9、一般的IO接口电路安排有哪三类寄存器?它们各自的作用是什么?(1)安排数据寄存器、状态寄存器、控制寄存器。(2)数据寄存器:存放CPU与外设之间传送的数据信息。状态寄存器: 存放当前外设所处的工作状态。控制寄存器: 存放CPU通过接口向外设传送控制信息。10 简述CPU与外设进行数据交换的几种常用方式与特点。CPU与外设之间的数据传输有以下三种方式:程序方式、中断方式、DMA方式。(1)程序方式又分为无条件传送方式和条件传送方式两种方式,接口简单。无条件传送方式用于简单外设,如LED显示器。条件传送方式用于外设较少、需要联络信号的情形。(2)中断传送方式需要专门的中断控制电路。CPU利用率高,速度快,用于外设较多的实时系统。(3)DMA方式需要专用硬件电路。外设直接和存储器进行数据传送,效率高,适合大量、快速数据传送,例如硬盘读写等。11、简述条件传送方式的工作过程,主要适用的场合。条件传送数据有三个环节:(1)CPU从接口中读取状态字。(2)CPU检测状态字的对应位是否满足“就绪”条件,如不满足,则回到前一步读取状态字。(3)如状态字表明外设已处于就绪状态,则传送数据。主要用于需要联络信号(如选通信号)的外设较少的系统。12、8086 CPU响应中断的条件?8086 CPU响应中断后自动完成的任务是什么?(1)有中断源发出的中断请求信号,并保存在中断请求触发器中,直至CPU响应此中断请求之后才清除。(2)开放总中断。(3)在现行指令结束后响应中断。关中断,断点保护,形成中断入口地址。即获得中断服务程序的入口地址,从而进入中断服务程序。13、软件中断有哪些特点?硬件中断有那些特点?软件中断是由CPU内部事件引起的中断,是确定的 ;与硬件无关,不执行中断响应周期;除单步中断外,软件中断(内部中断)不可屏蔽;优先级高于硬件中断(外部中断)。硬件中断由外部事件引起,是随机的,需要执行总线周期,中断类型码由中断控制器提供 。14、什么是中断向量?它放在哪里?对应于类型号1CH的中断向量在哪里?如1CH中断程序从5110H :2030H开始,则中断向量应怎样存放?中断向量是中断处理子程序的入口地址,它放在中断向量表中。由1ch*4=70H知中断向量存放在0000:0070处。由于中断处理入口地址为5110H:2030H,所以2030H应放在0070H,0071H两个存储单元,5110H应放在0072H、0073H这2个单元。15、简述定时器/计数器芯片8253的主要功能。说明OUT、CLOCK与GATE信号的作用。(1)具有3个独立的16位定时/计时器,采用二进制计数时最大计数范围为065535,采用BCD码计数时,最大计数值为09999(2)每个定时/计数器都有自己的时钟输入CLK,定时的输出OUT和门控信号GATE(3)每个定时/计数器均可以按二进制或BCD码计数,计数频率可达2MHz(4)每个定时/计数器都有6种工作方式,通过编程设置,计数器可做计数用,也可做定时用(5)所有输入和输出电平都与TTL兼容OUT是计数器的输出端,用于计数信号输出,CLOCK是计数器的时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号,GATE是门控输入端,用于外部控制计数器的启动或停止计数的操作16、 8253内部有几个独立通道?8253有几种工作方式?初始化8253的步骤是什么?若8253端口地址为200H-203H,对应的端口是哪个? 8253内部有3个独立通道,8253有,6种工作方式,初始化8253的步骤是:选择计数器,确定计数器数据的读写格式,确定计数器的工作方式,确定计数器计数的数制,写入计数初值,若8253端口地址为200H-203H,计数器0,1,2和控制字寄存器端口的地址分别为200H,201H,202H和203H17、并行接口8255有几个数据端口?若端口地址为300H-303H,对应的端口是哪个?怎样初始化8255?并行接口8255有4个数据端口,若端口地址为300H-303H,对应的端口是,:端口A、B、C和控制端口的地址分别为300H,301H,302H和303H18、假设8255A的端口A工作于方式0,外设需要提供两个联络信号,一个为输出选通,一个为外设就绪信号输入,试选择端口并说明理由。若8255A的端口A工作于方式0输出,外设需要提供两个联络信号,把端口C的高4位某位,例如PC7规定为输出口,用来输出选通信号;而把端口C的低4位规定为输入口,例如用PC0用来读入外设的状态。就是这样,利用端口C来配合端口A和端口B的输入/输出操作。19、中断控制器8259的主要功能?简述8259的工作过程。中断控制器8259具有8级优先权管理,可用9片扩展为64级中断系统,接受中断请求,提供中断类型号,具有屏蔽与开放中断的功能,可编程选择不同工作方式8259的工作过程:(1). 有请求输入时,将IRR相应位置位;(2). 经IMR屏蔽电路处理后(IRR与IMR相与),送PR;(3). PR检测出最高的中断请求位,并经嵌套处理考虑是否发送INT;(4). 若可发INT信号,则控制逻辑将INT信号送给CPU的INTR引脚(6). 若CPU处在开中断,则在当前指令完成后,发两个INTA信号;(7). 8259A接到第一个INTA信号后,使ISR位置位,IRR相应位复位;(8). CPU启动另一个响应周期,输出第二个INTA脉冲,8259A(9). 向数据总线送出中断类型码;同时,CPU取出此向量乘以4,(10). 得到中断服务程序的入口地址;(11). 中断响应周期完成,CPU执行中断服务程序,8259A工作(12).在自动结束AEOI或普通结束EOI模式下,使ISR清0。三、编程应用题1、编程计算(X+Y)*10)+Z)/X,X、Y、Z都是16位无符号数,结果存在RESULT开始的单元。DATA SEGMENT RESULT DW2 DUP(?)DATAENDSCODESEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX ;初始化 MOVBX,0 MOVAX,X ADDAX,Y JNCS0 MOVBX,1S0: MOVDX,0 MOV CX,10 MULCX ADDDX,BX ADDAX,Z ADCDX,0 MOVBX,X DIVBX LEASI,RESULT MOVSI,AX ADDSI,2 MOVSI,DX MOVAH,4CHINT21HCODE ENDS END START2、将BUF1开始的100字节传送到BUF2开始的单元,然后从中检索字符“#”,并将此单元换成空格字符。DATA SEGMENT BUF2 DB100 DUP(?)DATAENDSCODESEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX ;初始化 MOVES,AX LEASI,BUF1 LEADI,BUF2 MOVCX,100 CLD REPMOVSB MOVCX,100 LEABUF2 S : MOVAL,#COMAL,DI JNZCOUN MOVAL, MOVDI,ALCOUN: INCDI LOOPSMOVAH,4CH INT21HCODE ENDS END START3、编写一段程序,比较两个5字节的字符串OLDS和NEWS,若相同,在RESULT置0,否则置0FFH。DATA SEGMENT OLDSDB 1,2,3,4,5 NEWSDB 1,2,3,4,A N = $-NEWS RESULTDB 0DATAENDSCODESEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX ;初始化 MOV SI,OFFSET OLDS MOV DI,OFFSET NEWS MOV CX,N DON: MOV AL, SI CMP AL, DI JNZ NOEQU ;串不相等转 INC SI INC DI LOOP DON MOV AL,0 JMP OUTPUTNOEQU:MOV AL,0FFH OUTPUT:MOV RESULT,ALSTOP:JMP STOP ;程序陷阱CODE ENDS END START4、累加数组中的元素,将和存于SUM开始单元,数据段定义如下DATASEGMENT ARRAY DW 10,10,12,4,5,6,7,8,9,10 COUNT DW ($-ARRAY)/2 SUM DW ?,?DATAENDS ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOVAX,COUNT MOVBX,2 MULBX MOVCX,AX MOVAX,0 LEASI,ARRAY S:ADDAX,SIADDSI,2 LOOPS LEASI,SUM MOVSI,AX MOVAH,4CHINT21HCODE ENDS END START5、编写程序完成求123N的累加和,直到累加和超过1000为止。统计被累加的自然数的个数送CN单元,累加和送SUM。DATASEGMENT CN DW ? SUM DW ?DATAENDS ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX MOV CX,0 MOVAX,0 MOVBX,1 S: ADDAX,BXINCCXCMPAX,1000JAOKINCBXJMPS OK: LEASI,SUM MOVSI,AX LEADI,CNMOVDI,CX MOVAH,4CH INT21HCODE ENDS END START6、从给定串中寻找最大值,并放到MAX单元,元素放在BUFFER开始的字节单元中。DATASEGMENT BUFFER DB 10,32,56,11,90,56,89,21N EQU$-BUFFER MAX DB ?DATAENDS ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,N-1 LEA SI,BUFFER S: MOV AL,SI CMP AL,SI+1 JNAS1 XCHG SI+1,AL XCHG SI,AL S1: INC SI LOOPS MOVAL,SI LEASI,MAX MOVSI,AL MOVAH,4CH INT21HCODE ENDS END START7、把BUF表中的字节元素按值的大小升序排列。数据段定义如下: BUF DB 10,32,56,11,90,56,89,21 N = $-BUFDATASEGMENT BUF DB 10,32,56,11,90,56,89,21N EQU$-BUFDATAENDS ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,N-1 S1: MOV BL,0 MOV CXDX LEA SI,BUF S2: MOV AL,SI CMP AL,SI+1 JNA NO XCHG SI+1,AL XCHG SI,AL MOV BL,0FFHNO: INC SI LOOPS2 DECDX CMPDX,0 JNES1 MOVAH,4CH INT21HCODE ENDS END START8、类型号为20H的中断服务程序入口符号地址为INT-5,试写出中断向量的装入程序片断。CLIPUSH DSPUSH AXXOR AX,AXMOV DS,AXMOV AX,OFFSET INT-5MOV WORD PTR 080H,AXMOV AX,SEG INT-5MOV WORD PTR 082H,AXPOP AXPOP DSSTI9、设一个8253的计数器0产生周期为20ms的定时信号,计数器1产生周期为100ms的定时信号。设外部时钟频率为f=2MHZ,端口地址为330H333H。试对它进行初始化编程。MOVAL,00110100B MOV DX, 333H OUTDX,ALMOVAX,40000 MOV DX, 330H OUTDX,AL MOVAL,AHOUTDX,ALMOVAL,01110100B MOV DX, 333H OUTDX,ALMOVAX,5MOV DX, 331H OUTDX,AL MOVAL,AHOUTDX,AL10、已知某8253占用I/O空间地址为40H43H,设定时器0、定时器1工作于方式3,外部提供一个时钟,频率f=2MHZ。要求定时器1连续产生5ms的定时信号,定时器0连续产生5秒的定时信号。MOVAL,00110110B OUT43H,ALMOVAX,1000 OUT40H,AL MOVAL,AHOUT40H,ALMOVAL,01110110B OUT43H,ALMOVAX,5000 OUT41HAL MOVAL,AHOUT41H,AL 11、用8255A控制三个发光二极管依秩序循环显示。假设开关闭合时,点亮发光二极管,开关断开时息灭二极管。(1)画出原理图,并说明工作原理;(2)选择8255工作方式;(3)编写8255初始化程序与控制程序。见课本P22612、8255连接一组开关与一组LED显示器,如图所示。开关状态用LED显示,若闭合,则点亮。8255端口地址为310H313H。(1)选择8255工作方式;编写8255初始化程序与控制程序。见课本P233四、常用指令与读程序1、8086 CPU执行如下指令后的结果,以及标志CF、ZF的值。 MOV AL, 80H SUB AL, 10H ;(AL)=70H ADD AL, 89H ;(AL)=F9H,CF=0,ZF=02、CPU执行如下指令后的结果。 MOV AX,1234H MOV BX,5678H PUSH AX POP CXAX=1234H, BX=5678H, CX=1234H写出执行下列指令结果. MOV AX, TABLE MOV BX, OFFSET TABLE MOV CX, N MOV DX, LENGTH ZERAX=0 BX=1000H CX=8 DX=243、单独执行下列指令的结果MOVAL,10110101B AL=10110101BANDAL,00011111B AL=00010101BORAL,11000000B AL=11010101BXORAL,00001111B AL=11011010B4、单独执行下列指令的结果 假设(AL)=10101111B,CF=0,CL=4,写出分别执行下列指令后的结果以及标志位CF、ZF的值。SHL AL,CL AL=11110000B CF=0 ZF=0SHR AL,CL AL=00001010B CF=1 ZF=0ROL AL,CL AL=11111010B CF=0 ZF=06、读程序,写出结果。 MOV AL,5BH TEST AL,80H JZ LP MOV BL,1 JMP STOPLP: MOV BL,0 HLT执行上述程序段后AL=5BH BL=0五、程序设计与完善1、读程序,写出结果。DATASEGMENT;数据段定义 BUF DB 8,2,3,4;定义一段字节存储空间,内容为8,2,3,4 COUNT EQU $-BUF;计算BUF的字节长度DATAENDS;数据段定义CODESEGMENT;代码段定义 ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA;程序执行起始点 MOV DS,AX ;将数据段地址寄存器指向用户数据段 LEA SI,BUF;BUF偏移地址指向SI MOV CX,COUNT;设定循环次数 CALL ADDONE ;填空,调用子程序ADDONE HLTADDONE PROC NEAR;子程序代码段定义 ADD BYTE PTRSI,1;SI中数据加1,送回SI INC SI;SI地址加1 LOOP DON;循环判断 RET;返回主程序 ADDONE ENDP;子程序代码段定义CODEENDS ;代码段定义 ENDSTART ;程序结束 (1)执行上述程序段后BUF 存储区的内容为: 9,3,4,5 。(2)给程序加上完整段定义。(3)给程序加上注释,说该程序功能。程序功能是将BUF中数据分别加1,结果送回原存储空间2、读程序并完善。DATASEGMENT;数据段定义 AR1 DB 1,2,3,4,5,7;定义一段字节存储空间,内容为1,2,3,4,5,7 N = $-AR1;计算AR1的字节长度 AR2 DB N DUP(0);定义N字节存储空间,内容为0,0,0,0,0,0 DATAENDS;数据段定义CODESEGMENT;代码段定义 ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA;程序执行起始点 MOV DS,AX ;将数据段地址寄存器指向用户数据段 MOV CX,N;设定循环次数 MOV SI,offset AR1 ;取AR1偏移地址送SI寄存器 MOV DI,offset AR2 ;取AR2偏移地址送DI寄存器again: MOV AL,SI;将SI中数据送入AL MOV DI,AL;AL内容送数据到DI所指单元 INC DI;DI所指地址加1 INC SI;SI所指地址加1 LOOP again ;循环again MOVAH, 4CH;返回DOS INT21H CODEENDS ;代码段定义 ENDSTART ;程序结束1)程序执行前,AR2单元内容为:0,0,0,0,0,02)程序执行后,AR2单元内容为:1,2,3,4,5,73)给程序加上注释,说明程序功能;将AR1内存单元中数据复制到偏移地址AR2中4)给程序加上完整段定义。3、下面是程序主要片段:DATASEGMENT;数据段定义 BUF DB 0, 1,2,3;定义一段字节存储空间,内容为0,1,2,3 COUNT = $- BUF;计算BUF的字节长度 ASCII DB 0, 0,0,0;定义一段字节存储空间,内容为,0,0,0,0DATAENDS;数据段定义CODESEGMENT;代码段定义 ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA;程序执行起始点 MOV DS,AX ;将数据段地址寄存器指向用户数据段 LEA SI, BUF;BUF偏移地址指向SI LEA DI, ASCII ;ASCII偏移地址指向DI MOV CX, COUNT;设定循环次数DON: MOV AL,SI ;SI地址内数据送入AL ADD AL, 30H ;AL中数据加30H,转换为该数据的ASCII码 MOV DI, AL;AL中数据送入DI所指地址中 INC SI;SI所指地址加1 INC DI;DI所指地址加1 LOOP DON ;循环DON MOVAH, 4CH;返回DOS INT21H CODEENDS ;代码段定义 ENDSTART ;程序结束(1)根据需要加上完整数据段段定义、代码段定义、程序结束等;(2)写出每行代码的注释,说明程序实现的功能。程序的功能是将BUF存储空间数据装换为ASCII码存入ASCII所指偏移地址 完善程序,说明程序功能(15分)下面是程序主要片段:DATASEGMENT;数据段定义BUF DW 1234H, 5678H;定义一段字存储空间,内容为1234H,5678HMAX DW ?;定义一个字存储空间DATAENDS;数据段定义CODESEGMENT;代码段定义 ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA;程序执行起始点 MOV DS,AX ;将数据段地址寄存器指向用户数据段 MOV SI, OFFSET BUF;BUF偏移地址指向SIMOV AX,SI;SI所指地址数据送入AXMOV BX, SI+2;SI+2所指地址数据送入BXCALL SUBRUT;调用子程序SUBRUTJMPLP1:转移到LP1SUBRUTPROC NEAR;子程序代码段定义 CMP AX, BX;比较AX与BX内数据大小JA LP1;AX中数据大于BX中数据转移到LP1 XCHG AX,BX;否则,交换AX与BX中数据 RET;返回主程序SUBRUT ENDP;子程序代码段定义 LP1: MOV MAX, AX;将AX中数据送入MAX所指偏移地址 MOVAH, 4CH;返回DOS INT21H CODEENDS ;代码段定义 ENDSTART ;程序结束(1)根据需要加上完整数据段段定义、代码段定义、程序结束,初始化数据段等;(2)写出每行代码的注释,说明程序实现的功能。程序功能是比较BUF中两数据大小,将大数送入MAX所指内存单元3、(习题5.7, 教材P145)现有一输入设备,其数据端口的地址为FFE0H,并于端口 FFE2H提供状态,当其D0位为1时表明输入数据备好。采用查询方式进行数据传送的程序段,要求从该设备读取100个字节并输入到从2000H开始的内存中。按要求完善程序,写出完整段定义。;-补充数据段定义- ;数据段段开始 ORG 2000H ; 定位到2000H单元 BUF 120 DUP(0) ; 定义输入缓存区 ;数据段段结束;-补充代码段定义- START: MOV SI,offset BUF ;初始化数据区地址MOV CX,100;-查询时输入- LL: MOV DX,0FFE2H ;状态口地址送DX IN AX,DX ;读状态到AL TEST AL,01H ;测试外设状态是否满足就绪? JZ LL ;不满足,继续读状态 MOV DX,0FFE0H;就绪,准备输入数据 IN AX,DX ;从输入端口读取数据 CALL delay ;延时MOV SI,AX;存数据INC SI ;准备接受下一个数据LOOP LL;数据没有输入完,继续 MOV AH,4CH INT 21HDELAY PROC ;程序略 RETDELAY ENDPCODE ENDS ;代码段定义结束 END START
展开阅读全文