第1章练习:
1.1 基本练习题
一、填空题
1.系统总线由_地址总线_、_数据总线_、_控制总线_三类传输线组成。
2.微型计算机由_中央处理器_、__存储器__、_输入/输出接口_和系统总线组成。
3.计算机的硬件结构通常由五大部分组成。即运算器,_控制器_,_存储器_,输入设备和输出设备组成。
4.8位二进制整数,其补码所能表示的范围为_-128--127_,-1的补码为__0FF_H。
5.一带符号数的8位补码为11110111B,它所表示的真值为__-9 __D。
6.将二进制数101101.101转换为十进制数为___45.625___。
7.将压缩BCD码01111001转换成二进制数为__1001111__。
解答:BCD ->79->1001111
8.一个完整的微机系统应包括___硬件系统__和___软件系统__两大功能部分。
9.X、Y的字长均为12位,已知[X]反=A3CH,原码为__0DC3__H,[Y]反=03CH,则X-Y的补码为__0A01_H。
10.微处理器由___运算器___、___控制器 __和少量寄存器组成。
11.带符号数在机器中以__补__码表示,十进制数-78表示为__FFB2H___。
解答:1000 0000 0100 1110->补码:1111 1111 1011 0010
12.将压缩 BCD码01111001转换成十进制数为___79___。
13.8位二进制补码10110110代表的十进制负数是__-74__。
14.已知X的补码是11101011B,Y的补码是01001010B,则X-Y的补码是__10100001___。
15.ASCII码由_ 7 _位二进制数码构成,可为__128__个字符编码。
16.在计算机中,用二进制表示实数的方法有两种,分别是__定点法 __和___浮点法__。
二、选择题
1.计算机内部数值7FH,当分别为某个数的原码、反码和补码时,其真值是___D____。
A)原码时大 B)反码时大 C)补码时大 D)一样大
2.十进制数-38的八位二进制补码是____B___。
A) 01011011 B) 11011010 C) 11011011 D) 01011010
3.微型计算机的发展特点是_____D_____。
A) 体积越来越小 B) 容量越来越大 C) 精度越来越高 D) 以上都对
4.在下列不同进制的数据中,最小的数是______B_____。
A) 101001B B) 101001BCD C) 52D D) 23H
5.标准的ASCII码由___B__位二进制代码组成。
A) 4 B) 7 C) 8 D) 9
6.长度相同但格式不同的的两种浮点数,假设前者阶码长,尾数短,后者阶码短,尾数长,其他规则相同,则他们可表示数的范围和精度_____B____。
A)两者可表示的数的范围和精度相同 B)前者可表示的数的范围大但精度低
C)后者可表示的数的范围大且精度高 D)前者可表示的数的范围大且精度高
7.汉字编码的首要原则是,要给每个汉字分配唯一一个__C__位的二进制数。
A) 4 B) 8 C) 16 D) 32
三、简答题
1.写出下列真值对应的机器数的原码、补码形式。
(1)X=-1100100 (2)X=+1000000 (3)X=-1111111 (4)X=-0000000
(1)原码=11100100 补码=10011100 (2)原码=01000000 补码=01000000
(3)原码=11111111 补码=10000001 (4)原码=10000000 补码=00000000
1)微处理器,2)主存储器,3)系统总线,4)辅助存储器,5)输入/输出(I/O)接口和输入/输出设备
答:在计算机中,连接CPU与各个功能部件之间的一组公共线路,称为总线,在计算机中一般有三组功能不同的总线,传输地址信息的称为地址总线,传输数据信息的称为数据总线,传输控制信息的称为控制总线。
答:电子计算机是一种能自动,高速,精确地完成各式各样的数据存储,数值计算,逻辑推理,过程控制和数据处理功能的电子机器。计算机的主要特点有四个方面,即:高速性,准确性,逻辑性,通用性。
答:BCD码运算修正规则:
(1)凡是对应位运算结果为冗余码时,加(减)6修正。
(2)如该位和数有向高位进(借)位时,也在该位加(减)6修正。
(3)如低位修正结果使高位大于9时,高位进行加(减)6修正。
答:CPU是组成微机系统的核心部件,其功能如下:
(1)算术和逻辑运算,执行数据处理。(2)暂存数据。(3)实现程序控制,即可取指令,对指令寄存,译码分析并执行指令所规定的操作,还能提供整个系统所需的定时和控制信号。
答:数在机器内的表示形式为机器数。而机器数对应的数值称为机器数的真值。
1.2 课后练习题
一、填空题
1.将二进制数1011011.1转换为十六进制数为___5B.8H___。
2.将十进制数199转换为二进制数为___11000111__B。
3.BCD码表示的数,加减时逢___十___进一,ASCII码用来表示数值时,是一种__非压缩的BCD码__(压缩或非压缩)的BCD码。
4.十进制数36.875转换成二进制是___100100.111____。
5.以__微型计算机__为主体,配上系统软件和外设之后,就构成了__微型计算机系统___。
6.十进制数98.45转换成二进制为__1100010.0111__B、八进制_142.3463__Q、十六进制_62.7333_H。(精确到小数点后4位)
二、选择题
1.堆栈的工作方式是_____B______。
A)先进先出 B)后进先出 C)随机读写 D)只能读出不能写入
2.八位定点补码整数的范围是______D_______。
A)-128-+128 B)-127-+127 C)-127-+128 D)-128-+127
3.字长为16位的数可表示有符号数的范围是___B___。
A)-32767-+32768 B)-32768-+32767 C)0-65535 D)-32768-+32768
三、简答题
1、微型计算机系统的基本组成。
答案: 以微型计算机为主体,配上相应的系统软件、应用软件和外部设备之后,组成微型计算机系统。
2、简述冯.诺依曼型计算机基本组成。
答案:冯.诺依曼型计算机是由运算器,控制器,存储器,输入设备和输出设备组成的。其中,运算器是对信息进行加工和运算的部件;控制器是整个计算机的控制中心,所以数值计算和信息的输入,输出都有是在控制器的统一指挥下进行的;存储器是用来存放数据和程序的部件,它由许多存储单元组成,每一个存储单元可以存放一个字节;输入设备是把人们编写好的程序和数据送入到计算机内部;输出设备是把运算结果告知用户。
3、什么是微型计算机?
答案:微型计算机由CPU、存储器、输入/输出接口电路和系统总线构成。
4、什么是溢出?
答案:在两个有符号数进行家减运算时,如果运算结果超出了该符号数可表示的范围,就会发生溢出,使计算出错。
第2章 8086/8088微处理器
2.1 基本练习题
一、填空题
1. 8088的内存单元3017H:010BH的物理地址为___3027BH ____。
2. 8088 CPU的外部数据线有____8___条,内部数据线有___16____条。
3. 8086中,RESET的作用是:___使8086进行初始化_____。
4. 在8088系统中,从偶地址读写两个字时,需要___4___个总线周期。
5. 8086CPU 内部设置有一个_____6____字节的指令队列寄存器。
6. 8086上电复位后,其内部(CS)=__0FFFFH__,(IP)=__0000H___。
7. 8086 CPU在内部结构上由__执行部件EU___和___总线接口部件BIU__组成。
8. 在用8086 CPU组成的计算机系统中,当访问偶地址字节时,CPU和存储器通过___CPU的低8位数据线(AD0--AD7)___数据线交换信息;访问奇地址字节时通过___CPU的高8位数据线(AD8--AD15______数据线交换信息。
9. 8086 CPU对存储器的最大寻址空间为__1MB__;在独立编址时对接口的最大寻址空间是__64K__。
10. 8086状态寄存器中,作为控制用的标志位有__3__个,其中,不可用指令操作的是__TF__。
11. 在8086系统中,堆栈是按___先进后出__方式工作的存储区域,操作地址由__SP__和__SS__提供。
二、选择题
1. 指令的指针寄存器是____B___。
A) BX B) IP C) BP D) SP
2. 中央处理器(微处理器)一般主要包括____C____。
A)运算器 B)控制器 C)运算器和控制器 D)运算器、控制器和存储器
3. 下面的说法中,___B__是正确的。
A) 指令周期等于总线周期 B) 指令周期大于等于总线周期
C) 指令周期是总线周期的两倍 D) 指令周期与总线周期之间的关系不确定
4. 在8086系统中,在以下地址中可作为段起始地址的为:( A )
A) 20100H B) 20102H C) 20104H D) 20108H
5. 8086执行一个总线周期最多可传送( B )字节。
A) 1个 B) 2个 C) 3个 D) 4个
6. 在8086CPU的标志寄存器中,属于控制标志位的是____A_____。
A) DF B) SF C) OF D) CF
7. 8088 CPU中断请求线有 ( B )。
A) 1条 B) 2条 C) 4条 D) 8条
8. 某个8088存储单元的逻辑地址为A400:3400,其物理地址是__B___。
A) 0D8000H B) 0A7400H C) 3E400H D) 0A740H
9. 在8086CPU中,对时钟周期、指令周期和总线周期的长短排序,正确的是____C____。
A) 总线周期≥指令周期≥时钟周期 B) 时钟周期≥指令周期≥总线周期
C) 指令周期≥总线周期≥时钟周期
10. 在8086/8088中,一个最基本的总线周期由4个时钟周期(T状态)组成,在T1状态,CPU在总线上发出_____C_____信息。
A) 数据 B) 状态 C) 地址 D) 其他
三、简答题
1. 若在4002H段中有8个字节的数据为34H,45H,56H,67H,78H,89H,9AH,0ABH,假定它们在存储器中的物理地址为400A5H-400ACH,试求各存储单元的有效地址;若从存储器中读出这些数据,试问最少要几个总线周期?
答:各字节的有效地址分别为0085H,0086H,0087H,0088H,0089H,008AH,008BH和008CH,8个总线周期
答:在8086内部由BIU和EU两大部分组成,BIU主要负责和总线打交道,用于CPU与存储器和I/O接口之间进行数据交换;EU主要是将从指令队列中取得的指令加以执行。
答:在8086内部,按功能划分可以分为BIU和EU两大部分,BIU主要负责总线接口,与存储器和I/O接口进行数据传递;而EU则是执行部件,主要是执行指令;这两部分分开可以在执行指令的同时,从存储器中将将要执行的指令取到指令队列,使两部分并行工作,提高CPU的速度。(只要意思为提高CPU的效率即可)
答:一般称为CPU,它是将运算器、控制器集成在一块芯片上,本身具有运算能力和控制功能,是微型计算机的核心。(只要答出将运算器、控制器集成在一块即可)
2.2 课后练习题
一、填空题
1. 8086/8088的基本总线周期由____4___个时钟周期组成,若CPU主频为10MHz,则一个时钟周期的时间为_____100ns______。
2. 在8086CPU的时序中,为满足慢速外围芯片的需要,CPU采样____Ready_____信号,若未准备好,插入____等待_____时钟周期。
3. 8086系统总线形成时,须要用___ALE____信号锁定地址信号。
4. 对于8086微处理器,可屏蔽中断请求输入信号加在___INTR____引脚。
5. 在8086系统中,若某一存贮单元的逻辑地址为7FFFH:5020H,则其物理地址为__85010H____。
6. 8086的输入信号 Ready 为低电平的作用是说明___存储器或I/O接口未准备好_____。
7. 8088 CPU的 NMI 引脚提出的中断请求称为:____非屏蔽中断_____。
8. CPU从主存取出一条指令并执行该指令的时间称为___指令周期__。
9. 在8086系统中,从奇地址读写两个字时,需要____4_____个总线周期。
二、简答题
1、在内部结构上,微处理器主要有那些功能部件组成?
答案: 1) 算术逻辑部件 2) 累加器和通用寄存器组
3) 程序计数器 4) 时序和控制部件
2、微处理器一般应具有那些基本功能?
答案: 1.可以进行算术和逻辑运算 2.可保存少量数据
3.能对指令进行译码并完成规定的操作 4.能和存储器、外部设备交换数据
5.提供整个系统所需的定时和控制 6.可以响应其他部件发来的中断请求
3、什么是总线周期?
答案:CPU通过外部总线对存储器或I/O端口进行一次读/写操作的过程;一个基本的总线周期包含4个T状态,分别称为T1、T2、T3、T4。
三、判断题
1. 在8086系统中,20位地址是在执行部件中形成的。 ( × )
更正:总线接口部件
2. 8086 CPU的最小方式是为实现多处理器系统而设计的。 ( × )
3. 在加减运算时,OF=1就表示结果有错。 ( × )
4. 两数相加,结果有偶数个"1",则PF=1。 ( × )
5. 当8086CPU复位后,(CS)=0000H,(IP)=0FFFFH,所以复位后系统从物理地址0FFFF0H开始执行程序。 ( × )
在0FFFFH开始
6.8086的每个存储单元地址既是字节地址又是字地址。 ( √ )
7. 同一个物理地址可以由不同的段地址和偏移量组合得到。 ( √ )
第3章 指令系统
3.1 基本练习题
一、填空题
1.条件转移指令转移的范围是___-128~+127___。
2.设当前的(SP)=0100H,执行PUSH AX指令后,(SP)=___00FE____H,若改为执行INT 21H指令后,则(SP)=___00FA___H。
3.若当前(SP)=6000H,CPU执行一条IRET指令后,(SP)=___6006____H;而当CPU执行一条段内返回指令RET 6后,(SP)=___6008____H。
4.8086的I/O指令有__直接寻址__和__寄存器间接寻址___两种寻址方式。
5.程序控制类指令的功能是___改变程序执行的顺序____。
6.已知(BX)=2000H,(DI)=3000H,(SS)=4000H,(DS)=6000H,(SS)=5000H,66000H单元的内容为28H,则指令MOV AL,[BX+DI+1000H]的执行结果是__(AL)=28H ___。
7.在寻址方式中,可作基址寄存器的有____BX____、___BP___。
8.若(AL)=95H,执行SAR AL,1 后(AL)=__0CAH __。
9.MOV AX,[BX][DI] 指令中源操作数的寻址方式为___基址加变址寻址方式_____。
10.若(CS)=1000H,(DS)=2000H,(SS)=3000H ,(ES)=4000H,(SI)=1000H,(BP)=2000H,则指令MOV AX,[BP]的功能是将___32000H单元的内容___单元的内容传送给AL,将___32001H单元的内容__单元的内容传送给AH(填写物理地址)。
11.指令MOV DX,OFFSET BUFFER 的源操作数的寻址方式是:__立即寻址方式 ___。
12.若(AL)=35H,执行ROL AL,1 后,(AL)=___6AH____。
13.指令MOV AX,[DI-4]中源操作数的寻址方式是_____相对寄存器寻址方式____。
14.累加器专用传送指令IN间接访问I/O端口,端口号地址范围为____0-65535____。
15.若(DS)=2000H,(ES)=2100H,(CS)=1500H,(SI)=00A0H,(BX)=0100H, (BP)=0010H,则执行指令LEA AX,[BX][SI] 之后,(AX)=__01A0H__H,源操作数是__基址变址寻址___寻址方式。
二、选择题
1.完成将BX清零,并使标志位CF清零,下面错误的指令是____C_____。
A) SUB BX,BX B) XOR BX,BX C) MOV BX,00H D) AND BX,00H
2.已知(DS)=1000H,(BP)=0010H,(BX)=0100H,(DI)=0100H,(010110H)=ABH,(010111H)=BAH,执行指令LEA CX,[BP][DI]后,(BX)=_____B____。
A) 0ABBAH B) 0100H C) 0BAABH D) 0110H
3.下面的指令不合法的是____D____。
A) INT 21H B) ADC AX,[SI] C) IN AX,03H D) PUSH AL
4.设SP=50H,执行段间返回指令RET 后,寄存器SP的内容是( B )。
A) 44H B) 54H C) 5AH D) 5CH
5.在指令MOV ES:[SI],AX 中,目的操作数为____D___寻址方式。
A) 寄存器 B) 直接 C) 基址变址 D) 寄存器间接
6.下列四条指令中,有几条指令需要使用DX寄存器_____A____?
MUL BX DIV BL IN AX,20H OUT 20H,AL
A) 1条 B) 2条 C) 3条 D) 4条
7.设(CL)=05H,要获得(CL)=0AH,可选用的指令是( C )。
A) NOT CL B) AND CL,0FH C) XOR CL,0FH D) OR CL,0AH
8.用MOV指令将十进制数89以压缩BCD码格式送入AX,正确使用的指令是_____C____。
A) MOV AX,0089 B) MOV AX,0809 C) MOV AX,0089H D) MOV AX,0809H
9.若(AL)=0FH,(BL)=04H,则执行CMP AL,BL后,AL、BL的内容____A______。
A) 0FH,04H B) 0BH,04H C) 0FH,0BH D) 04H,0FH
10.在子程序的最后一定要有一条_____B_____指令。
A) HLT B) RET C) IRET D) POP
11.下列指令中,有语法错误的是________A__________。
A) MOV [SI],[DI] B) IN AL,DX
C) JMP WORD PTR[BX+8] D) PUSH WORD PTR 20[BX+SI-2]
12.下面指令序列执行后完成的运算,正确的算术表达式应是________CCCCCCC________。
MOV AL,BYTE PTR X
SHL AL,1
DEC AL
MOV BYTE PTR Y,AL
A) Y=2X+1 B) X=2Y+1 C) Y=2X-1 D) X=2Y-1
13.若已知(SP)=2000H,(AX)=0020H,则执行指令,PUSH AX 后,(SP)和((SS):(SP))的值分别为_____D____。
A)2002H,00H B)2000H,20H C)1FFFH,00H D)1FFEH,20H
14.8086执行POP AX指令时,正确的操作是_________A_________。
A) AX<--[SP+1][SP],SP<--SP+2 B) AX<--[SP+1][SP],SP<--SP-2
C) SP<--SP+2,AX<--[SP+1][SP] D) SP<--SP-2,AX<--[SP+1][SP]
15.若累加器AL的内容为13H,执行NEG AL指令后,AL内容为____D____。
A) OOH B) 13H C) 0ECH D) 0EDH
16.8086中8位算术运算指令执行后,结果为10010001B,则ZF和SF标志位的值为____A__。
A)ZF=0 SF=1 B)ZF=0 SF=0 C)ZF=1 SF=1 D)ZF=0 SF不确定
17.在执行MUL BL指令执行后,CF=OF=1,(AL)=82H,则表示____D____。
A) (BL)>0 B) (AH)=FFH C) 被乘数小于零 D) 乘积大于255
三、简答题
1.什么是寻址方式,写出五种与数据有关的寻址方式?
答:寻址方式就是寻找操作数或操作数地址的方法。立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址
I/O端口的地址范围是0000H--0FFFFH (64K),当地址范围在0000H-00FFH 时可以使用直接端口地址访问和间接访问,格式如下(以8位为例):
IN AL,PORT IN AL, DX
OUT PORT,AL OUT DX,AL
而当地址范围在大于00FFH 时只能使用间接访问指令,格式如下(以8位为例):
IN AL,DX OUT DX,AL
3.指出以下三条指令的区别(NUM为数据段一个变量名)。
(1) MOV SI,NUM (2) LEA SI,NUM (3) MOV SI,OFFSET NUM
答:(1)指令执行后SI取得的是内存变量NUM的值。
(2)指令执行后SI取得的是内存变量NUM的偏移地址。
(3) 指令执行后SI取得的是内存变量NUM的偏移地址。
4.根据给定的条件写出指令或指令序列。
(1)将AX寄存器及CF标志位同时清零。 (2)BX内容乘以2再加上进位位。
(3)将AL中的位二进制数高4位和低4位交换。
(4)将首地址为BCD1存储单元中的两个压缩BCD码相加,和送到第三个存储单元中。
答:(1) XOR AX,AX或AND AX,0
(2) ADC BX,BX
(3) MOV CL,4
(4) MOV AL,BCD1
ROR AL,CL
ADD AL,BCD1+1
答:(1)保护现场,即将主程序转移前的程序状态保存起来,保存内容主要是程序计数器PC的内容。保护现场通常采用堆栈完成,将程序计数器PC的内容(断点地址)压入堆栈。(2)将子程序入口地址送入程序计数器PC,那么,下一条要执行的指令就是子程序的第一条指令。
取出NE OBJ指令后,(IP)=0626H,OBJ的值是:(IP)+D->IP
0626H+27H=064DH 0626H+6BH=0691H 0626H-3AH=05ECH
7.如BUFFER为数据段中0032单元的符号地址其中存放的内容为2345H,试问以下两条指令有什么区别?指令执行完成后AX寄存器的内容是什么?
答:(1)MOV AX,BUFFER (2)LEA AX,BUFFER
第一条指令是将BUFFER字单元的内容送到AX寄存器,而第二条指令是将BUFFER的段内偏移地址送到AX寄存器。 (1)(AX)=2345H (2)(AX)=0032H
8.在无超越说明时,通用数据读写、目的数据串、源数据串、堆栈操作和取指令操作分别自动选择哪些段寄存器搭配产生物理地址?
答:通用数据读写自动选择数据段寄存器(DS) 目的数据串自动选择附加数据段寄存器(ES)
源数据串自动选择数据段寄存器(DS) 堆栈操作自动选择堆栈段寄存器(SS)
取指令操作自动选择代码段寄存器(CS)
9.设(DS)=1000H,(AX)=1C5AH,(BX)=2400H,(SI)=1354H,(13774H)=30H,(13775H)=20H,(13754H)=40H,(13755H)=10H 指令在此环境下执行,在各空中填入相应的执行结果。
SUB AX,20H[BX][SI]
(AX)=_____,SF=______,ZF=______,CF=_____,OF=______
答:(AX)=0FC2AH,SF=1, ZF=0, CF=1,OF=0
3.2 课后练习题
一、简答题
1、若(AX)=9C5AH,(BX)=9754H,执行下列指令序列后,程序转向何处执行。
ADD AX,BX JNC L3
JNO L1 JNO L4
JNC L2 JMP L5
SUB AX,BX
答案:L5
2、中断服务程序结束时,用RET指令代替IRET指令能否返回主程序?这样做存在什么问题?
答案:RET应该可以使中断服务程序返回主程序,但因为RET是子程序返回指令,它只从堆栈中恢复CS和IP,而不能使状态字PSW得以恢复,所以不能使断点完全恢复,对源程序的继续执行造成不良影响。
3、写出把首地址为BLOCK字数组中的第6个字,送到DX寄存的指令(或指令组),要求使用以下几种寻址方式:
(1) 寄存间接寻址; (2) 寄存相对寻址; (3) 基址变址寻址
答案: 1) MOV BX,OFFSET BLOCK+6 MOV DX,[BX]
2) LEA BX,BLOCK MOV DX,[BX+12]
3) LEA BX,BLOCK MOV SI,12 MOV DX,[BX+SI]
4. 设BX=134AH,BP=1580H,DI=0528H,SI=0234H,DS=3200H,SS=5100H,求在各种寻址方式下源操作数的物理地址。
1) MOV AX, [2400H]
2) MOV AX, [BX]
3) MOV AX, [SI]
4) MOV AX, [BX+2400H]
5) MOV AX, [BP+2400H]
6) MOV AX, [BX+DI]
7) MOV AX, [BP+SI+2400H]
二、阅读下面的程序段,写出运行结果
1. CLC
MOV AX,248BH
MOV CL,3
RCL AX,CL 执行以上程序序列后, AX=_____2458H_______。
2. MOV BX,6D16H
MOV CL,7
SHR BX,CL 执行后BX寄存器中的内容_____00DAH________。
3. MOV DX,01H
MOV AX,42H
MOV CL,4
SHL DX,CL
MOV BL,AH
SHL AX,CL
SHR BL,CL
OR DL,BL 执行后 (DX)=__(DX)=0010H___,(AX)=_(AX)=0420H__
4. mov ax,693ah
mov al,ah
not al
add al,ah
inc al 程序段执行后,AL= ___0000___ 、ZF= _____1_____。
5. 根据程序填空(程序段顺序执行)
MOV CL, 58 ;CL= 58
MOV AL, 79 ;AL= 79
ADD AL, CL ;AL= 89 H, AF= 1 , CF= 0
DAA ;AL= 8FH , AF= 1 , CF= 0
三、判断题
1. 执行下列指令可以将00H送到端口地址为1A0H的外设上。 ( × )
MOV AL,00H
MOV 1A0H ,AL
2. 执行下列指令可以将其00H送到端口地址为2F8H的外设上:( √ )
MOV AL,00H
MOV DX,2F8H
OUT DX,AL
3. 8088的MOV指令不能进行两个存储器单元之间的数据直接传送。( √ )
4. 8088系统中,堆栈的存取可以以字或字节为单位。 ( × )
5. IN和OUT指令可寻址的口地址为64K个,端口地址只能用立即数。( × )
6. 判断下列指令是否正确
(1) |
JMP |
BX |
√ |
(9) |
PUSH |
SS |
√ |
||
(2) |
IN |
AL,DX |
√ |
(10) |
POP |
CS |
× |
||
(3) |
MOV |
DS,AX |
√ |
(11) |
XCHG |
BX,IP |
× |
||
(4) |
SHL |
AX,2 |
× |
(12) |
MOV |
[BX],[1000] |
× |
||
(5) |
PUSH |
AL |
× |
(13) |
IN |
AL,N;(N>255) |
× |
||
(6) |
MOV |
ES,3F00H |
× |
(14) |
MOV |
[BX][DI],10 |
× |
||
(7) |
MOV |
[BX],[SI] |
× |
(15) |
IN |
BX,DX |
× |
||
(8) |
MOV |
AL,[BX+10H] |
√ |
(16) |
MOV |
CS,AX |
× |
4.1 基本练习题
一、填空题
1.标号和变量都是存贮单元的符号地址,但其内容不同,标号是______指令_______的符号地址,而变量是____操作数________的符号地址。
2.汇编语言源程序结束伪指令是_____END ______。
3.一个程序中,有下列伪指令:
ARY DB 25 DUP(3,4,4 DUP(?,1,0))
LEN DW $ - ARY
LEN单元存储的值是 350 。
4.有一个程序片段如下
MSG DW 3 DUP(?, 2 DUP (5,4),3)
MEN DW $-MSG
┇
┇
MOV AX, SEG MEN
MOV DS, AX
MOV AX, MEN
AX的值最后是 36 。
二、简答题
1.简述8086汇编语言中,指令语句和伪指令语句的区别和作用。
答:指令是真正让计算机进行某种具体操作的命令,它在程序运行时执行。伪指令是通知汇编程序在翻译程序时执行的命令。
答:变量是在程序运行过程中,其值可以改变的量,通常给其命名一个符号,称为变量名。变量有三种属性:变量的类型、变量的段地址、变量的段内偏移地址;类型属性使用SIZE获取,段地址属性用SEG获取,偏移地址属性用OFFSET获取。
答:变量是在程序运行过程中,其值可以改变的量,通常给其命名一个符号,称为变量名。变量有三种属性:变量的类型、变量的段地址、变量的段内偏移地址;类型属性使用SIZE获取,段地址属性用SEG获取,偏移地址属性用OFFSET获取。
答:汇编语言是用指令助记符、符号地址编写程序的一种语言,每条指令对应一种机器指令。汇编就是将汇编语言源程序翻译成机器指令的过程
答:1)在AH寄存器中设定所需调用的功能号;2)根据功能的规定设定入口参数;3)用INT 21H进入子程序;4)根据规定,从相应的寄存器取得返回值。
三、程序设计题
1.从BUFF单元起有一个字符串(长度小于65535),以'*'结束,编写一个完整程序求该字符串长度存入LENT单元,并统计字符串中含有大写英文字符的个数并存入COUNT单元。要求源程序具备必要的伪指令和段说明。
1. |
DATA SEGMENT |
INC CX |
|
BUFF DB 'ABCD…….*' |
CMP AL,'A' |
||
LENT DW ? |
JC NEXT |
||
COUNT DW ? |
CMP AL,'Z' |
||
DATA ENDS |
JNC NEXT |
||
CODE SEGMENT |
INC DX |
||
ASSUME CS:CODE,DS:DATA |
NEXT: |
INC BX |
|
START:MOV AX,DATA |
JMP LP |
||
MOV DS,AX |
DONE: |
INC CX |
|
LEA BX,BUFF |
MOV LENT,CX |
||
MOV CX,0 |
MOV COUNT,DX |
||
MOV DX,0 |
MOV AH,4CH |
||
LP: MOV AL,[BX] |
INT 21H |
||
CMP AL,'*' |
CODE |
ENDS |
|
JZ DONE |
END START |
2. |
MOV AL,DAT |
JMP DONE |
|
AND AL,AL |
LPl: |
MOV MARK,0FFH |
|
JS LP1 |
JMP DONE |
||
JZ LP2 |
LP2: |
MOV MARK+1,0FFH |
|
MOV MARK+2,0FFH |
DONE: |
HLT |
答:DSEG SEGMENT SUB BX,Y
X DW ? ADD BX,600
Y DW ? MOV AX,X
Z DW ? ADD AX,Y
DSEG ENDS MOV DX,0
CSEG SEGMENT DIV BX
ASSUME CS:CSEG,DS:DSEG MOV Z,AX
MAIN PROC FAR MOV AH,4CH
BEGIN: MOV AX,DSEG INT 21H
MOV DS,AX MAIN ENDP
MOV BX,X CSEG ENDS
END BEGIN
CODE SEGMENT HASC PROC NEAR
ASSUME CS:CODE,DS:CODE MOV DL,AL
START: MOV BX,CODE AND DL,0FH
MOV DS,BX CMP DL,9
MOV CL,4 JA L2
MOV BL,4 ADD DL,30H
MOV SI,OFFSET RESULT L1: RET
LP: CALL HASC L2: ADD DL,37H
MOV [SI],DL JMP L1
INC SI HASC ENDP
SHR AX,CL RESULT DB 4 DUP(?)
DEC BL CODE ENDS
JNZ LP END START
EXIT: MOV AH,4CH
INT 21H
方法1 方法2 方法3
MOV CX,0 NOT AX NEG DX
SUB CX,AX NOT DX NEG AX
MOV AX,CX ADD AX,1 SBB DX,0
MOV CX, 0 ADC DX,0
SBB CX, DX
MOV DX, CX
6. |
CODE SEGMENT |
REPE CMPSB |
|
ASSUME CS:CODE,DS:CODE |
JNZ NE |
||
START: MOV AX,CODE |
MOV AL,'Y' |
||
MOV DS,AX |
JMP EXIT |
||
MOV ES,AX |
NE: |
MOV AL,'N' |
|
CLD |
EXIT: |
MOV AH,4CH |
|
LEA SI,STRING1 |
INT 21H |
||
LEA DI,STRING2 |
STRING1 DB'…' |
||
MOV CX,DI |
STRING2 DB'…' |
||
SUB CX,SI |
CODE |
ENDS |
|
XOR AX,AX |
END START |
MOV CL,4 SHR DX,CL
SHR AX,CL SHL BL,CL
MOV BL,DL OR AH,BL
8. |
DATA SEGMENT |
MOV AX,ES:[SI] |
|
ADR1 DW 100 DUP(?) |
LOP1: |
CMP AX,ES:[SI] |
|
MAX DW ? |
JAE LOP3 |
||
MAXM DW ? |
MOV AX,ES:[SI] |
||
DATA ENDS |
MOV ES:[MAXM],SI |
||
CODE SEGMENT |
LOP3: |
ADD SI,2 |
|
ASSUME CS:CODE,DS:DATA,ES:DATA |
LOOP LOP1 |
||
MAIN PROC FAR |
MOV ES:[MAX],AX |
||
MOV AX,DATA |
MOV AH,4CH |
||
MOV ES,AX |
INT 21H |
||
MOV SI,OFFSET ADR1 |
MAIN |
ENDP |
|
MOV CX,100 |
CODE |
ENDS |
|
MOV ES:[MAXM],SI |
END MAIN |
MOV AX,4BD5H INC DL
MOV BL,0 JMP L3
MOV DL,0 L2: INC BL
MOV CX,16 L3: LOOP L1
L1: SHL AX,1 HLT
JC L2
10.有一个首地址为ARRAY的N个字的数组,请编程序使该数组中的数按照从大到小的次序排序。(采用冒泡排序算法)
10. |
DATA SEGMENT |
MOV BX,0 |
|
ARRAY DW A1,A2,A3,…,AN |
LOOP2: |
MOV AX,ARRAY[BX] |
|
DATA ENDS |
CMP AX,ARRAY[BX+2] |
||
PROG SEGMENT |
JGE CONTINUE |
||
ASSUME DS:PROG,DS:DATA |
XCHG AX,ARRAY[BX+2] |
||
MAIN PROC FAR |
MOV ARRAY[BX],AX |
||
START: PUSH DS |
CONTINUE: |
ADD BX,2 |
|
SUB AX,AX |
LOOP LOOP2 |
||
PUSH AX |
MOV CX,DI |
||
MOV AX,DATA |
LOOP LOOP1 |
||
MOV DS,AX |
RET |
||
MOV CX,N |
MAIN |
ENDP |
|
DEC CX |
PROG |
ENDS |
|
LOOP1: MOV DI,CX |
END START |
4.2 课后练习题
一、填空题
1. 定义段结束的伪指令是____ENDS_____;定义子程序结束的伪指令是____ENDP____。
2.伪指令X DB 4 DUP (6,2 DUP(6,8)); Y DW 6800H; 设X的偏移地址为2000H,则Y的偏移地址为_____2014____H,若执行指令MOV BL,BYTE PTR Y后,则(BL)=____00____。
3.伪指令VR1 DB 2 DUP(?,3 DUP(1,2),5)在存贮器中被分配了________16_______字节。
二、选择题
1.下面表示段定义结束的伪指令是_____C_____。
A) END B) ENDP C) ENDS D) ENDM
2.变量的类型属性如下,下面错误的类型是_____B_____。
A) 字节型 B) 字符型 C) 字型 D) 双字型
3.设有一程序定义如下:
ORG 0024H
AR1 DW 4,5,$+4
…
MOV AX,AR1+4
执行以上指令后,AX中的内容正确的是_______D________。
A) 0028H B) 0032H C) 002AH D) 002CH
4.现用数据定义伪指令定义数据:BUF DB 4 DUP(0,2 DUP(1,0));问定义后,存储单元中有数据0100H的字单元个数是_______C_____。
A) 4 B) 3 C) 8 D) 12
5.下列伪指令中定义字节变量的是____A____。
A) DB B) DW C) DD D) DT
6.使用DOS功能调用时,子功能号应放在( B )寄存器中。
A) AL B) AH C) DL D) DH
三、程序设计题
1、统计从01000H内存单元开始的100个字(WORD)型带符号数中的正数、负数和零的字(WORD)个数。
答案: 设正数个数存放于BX中,负数个数存放于DI中,零的个数存放于DX中
MOV AX,0100H JZ ZERO
MOV DS,AX JL NEGAT
MOV BX,0 INC BX
MOV DX,0 JMP NEXT1
MOV DI,0 ZERO: INC DX
MOV SI,0 JMP NEXT1
MOV CX,100 NEGAT: INC DI
NEXT: MOV AX,[SI] NEXT1: ADD SI,2
CMP AX,0 LOOP NEXT
2、实现两个十六位二进制数的加法。要求加数放在FIRST开始单元,被加数放在SECOND开始单元,和数放在SUM单元。
答案:
MOV AX,FIRST
ADD AX,SECOND
MOV SUM,AX
第5章 半导体存储器
。
5.1 基本练习题
一、填空
1.在微机系统中用高位地址线产生存储器片选(CS)的方法有__线选__、_部分译码__、_全译码 __。
2.某机器中有8KB的ROM,其末地址为0FFFFFH,则其首地址为__0FE000H____。
3.DRAM靠__电容_____存储信息,所以需要定期___刷新_____。
4.掉电后信息丢失的存储器是____RAM____,掉电后信息不丢失的存储器是____ROM_____。
5.半导体存储器分为__只读存储器___、__随机读写存储器__两大类。前者的特点是__速度慢但掉电后信息不丢失___,后者的特点是__速度快但掉电后数据丢失__。
6.从内存地址40000H到0BBFFFH,共____496_____KB。
7.用512×4的RAM芯片组成12K×8的芯片组,需片内地址线_____9__条,片组选择线至少____24____条。
二、选择
1.某CPU有地址线20根,它可连接内存的最大存储容量是____C____。
A) 64KB B) 640KB C) 1MB D) 4MB
2.以下四种半导体存储器中,以传输同样多的字为比较条件,则数据传输率最高的是___B____。
A) DRAM B) SRAM C) 闪速存储器 D) EPROM
3.没有外部存贮器的计算机,其监控程序可以存放在______B______。
A) RAM B) ROM C) CPU D) RAM和ROM
4.用16M×1的DRAM芯片组成128MB×8存储容量,要使用_______B_______。
A) 128片 B) 64片 C) 32片 D) 16片
5.27128的存储容量为16K×8,其片内地址线和数据线数分别为____C____。
A) 8,8 B) 8,14 C) 14,8 D) 14,14
6.2864是一种______D____芯片。
A) RAM B) PROM C) EPROM D) EEPROM
7.下列几种半导体存储器中,哪一种需要刷新操作_______B_______?
A) SRAM B) DRAM C) EPROM D) EEPROM
8.某SRAM芯片,其存储容量为512K×8位,该芯片的地址线和数据线数目为____D____ 。
A) 8,512 B) 512,8 C) 18,8 D) 19,8
9.EPROM是指_____C_____。
A) 可编程的只读存储器 B) 只读存储器
C) 紫外线可擦除可编程的只读存储器 D) 电可改写只读存储器
10.以下四种类型的半导体存储器中,以传输同样多的字为条件,则读出数据最快的是_____B____。
A) FLASH B) DRAM C) SRAM D) EPROM
11.存储器是计算机系统的记忆设备,它主要用来______C_____。
A) 存放数据 B) 存放程序 C) 存放数据和程序 D) 存放微程序
12.和外存相比,内存的特点是____A____。
A) 容量小、速度快、成本高 B) 容量小、速度快、成本低
C) 容量大、速度快、成本高 D) 容量大、速度快、成本低
三、简答题
1.什么是RAM?什么是ROM、EPROM?各有什么用途?
答:RAM:随机读写存储器,可以随时改写其中存储的信息。
ROM:只读存储器,其中的内容在正常情况下只可以读出,而不能改写。
EPROM:可以由用户编程的只读存储器,但在正常情况下只可以读出其内容,而不能改写。
RAM一般用于计算机中需要经常改变其内容的存储器,如计算机内存。
ROM一般用于计算机中不需要经常改变其内容的存储器,如计算机的ROMBIOS。
EPROM一般用于在设计过程中需要经常改变其内容,而在设计完成后其内容一般不改变的场合。
答:线选法除将低位地址线直接接片内地址外,剩下的高位地址线,分别作为各个存储器芯片的片选控制信号,寻址时只允许一位有效,否则不能保证每次只选中一个芯片。线选法的优点是连接简单,无需专门译码电路,缺点是地址不连续,有重叠区,浪费地址空间,适于简单存储系统构造。
全译码法除了将低位地址总线直接连至各芯片的地址线外,将余下的高位地址总线全部译码,译码输出作为各芯片的片选信号。这种方法可以提供对全部存储空间的寻址能力,且每一存储单元有唯一地址对应。即使不需要全部存储空间,多余的译码输出可闲空,便于需要时扩充。
答:随机存储器RAM中的任何存储单元都能随时读写,即存取操作与时间、存储单元物理位置顺序无关,一旦掉电,所存信息丢失。常见类型有静态RAM(SRAM)和动态RAM(DRAM)等。
ROM是一种只读存储器,其内容一经写入,在工作过程中就只能读出不能重写,即使掉电,信息也不会丢失。常见类型有掩模ROM、PROM、EPROM、EEPROM等。
答:常用存储器片选控制方法有3种,分别是线选法,全译码法,局部译码法。
线选法的优点是连线简单,缺点是地址空间利用率低;全译码法不浪费地址空间,但需译码电路;局部译码介于前二者之间,当存储容量要求大于系统地址线所能寻址的最大范围,或者几个微处理器需要共享某一存储区域时,则采用扩充寻址法。
答:存储体、地址译码器、控制逻辑电路、数据缓冲器
(1)该存储器能存储多少字节的信息
(2)如果存储器由1K*1位SRAM芯片组成,需要多少芯片?
(3)最少需要多少位地址作芯片选择
答:(1)16384 (2)128 (3)4
答:半导体存储器主要有:ROM(只读存储器)和RAM(随机存取存储器)两类,RAM随机存储器又可以分为:动态RAM,静态RAM;ROM只读存取存储器又可以分为:掩膜型ROM;可编程ROM(PROM);可擦除可编程ROM(EPROM);电擦除可编程ROM(EEROM)。
答:计算机的内存一般存储容量小,存取速度快,目前多采用半导体器件组成。通常有动态RAM和静态RAM两部分组成。常把软磁盘和硬磁盘、磁带等作为外存设备,最近光存储器的应用也越来越广泛。储存容量大、速度低,必须配备专门的读/写控制设备。
9.在存储器器件内部,为什么总是采用矩阵形式组成存储结构?请用一个具体的例子进行说明。
答:采用矩阵形式存储信息主要是为了节省地址译码电路,提高半导体器件的集成度。例如要组成1KB的内存,若不采用矩阵形式来组织这些单元,就需要1024条译码线才能实现对1KB的寻址。但若用32*32矩阵来排列,则只要有32条行选线和32条列选线就可以了。存储容量越大,矩阵形式的优越性就越明显。
答:常采用存储器的模块结构及在一个存储模块内再将存储器分组,这样可用地址的高位对模块选择,其余位对存储器组进行选择。
四、存储器设计应用题
1.已知有SRAM芯片62256(32K×8)及EPROM芯片27256(32K×8),现用这两种芯片构成8088最小系统内存的一部分,其中SRAM所占的地址空间为40000H--47FFFH,EPROM所占的地址空间为F8000H--FFFFFH,试设计出其原理图。
答:连接如图:
2、给8088CPU系统扩展32K的ROM,且所选用的存储器芯片为8K×8,地址译码器为74LS138,ROM的地址范围从60000H~67FFFH,要求写出每一个存储器芯片的地址范围,画出逻辑连线图。
答:存储器芯片为8K×8,可知芯片容量为8K,地址线为13条,数据线为8条,而系统要求容量为32K,位数是8,因此为字扩展。需要的芯片为4个
存储器芯片的地址为:
1)、地址译码器:3个输入端的信号中必须有:A13,A14,其对应的位置不同,输出的引脚也不同。只要输入信号与输出信号一致,且连接到相应的存储器芯片上 。
2)、数据线连接正确
3)、地址线连接正确
3.设某系统的CPU有16根地址线A15-A0、8根数据线D7-D0。现需扩展6KB的ROM,地址范围为:0000H-17FFH,采用2716芯片。
(1) 请写出存储器器件2716的数据线和地址线的条数;
(2)计算ROM的芯片数量;
(3)设计存储器扩展原理图,并写出每片ROM的地址范围。
答:1)存储器2716的数据线有8条,地址线有11条。
2)因为2716的容量为2KB,要扩展6KB,所以需要三片。
3)原理图如下:
4.已知RAM芯片结构如图所示,回答下列问题:
1) 该芯片容量为多少?若要求构成一个2K×8的RAM阵列,需几个这样的芯片?
2) 若RAM阵列组的起始地址为E1000H,画出存储器系统与8086的电路连接图(8086工作在最小模式),并写出每组RAM芯片的地址空间。
3) 编程:将缓冲区中的10个数据写进E1000开始的10个单元中,并说明如何查看结果?
1) 4片
2) 连接如图
3) MOV AX,0E100H MOV CX,10
MOV ES,AX CLD
MOV SI,OFFSET BUF REP MOVSB
MOV DI,O
查看结果 D E100:0
五、判断题
1.只读存储器ROM只有一种类型。 ( × )
2.动态RAM的一个重要问题是必须对它所存的信息定期进行刷新。 ( √ )
3.用紫外线照射一片EPROM的窗口后,若读出其存储单元的内容均为0FFH,则表明该EPROM已被擦除干净。 ( √ )
4.读写存储器RAM,有SRAM和DRAM二种类型。 ( √ )
5.2 课后练习题
一、填空题
1.在Intel80x86系统中,若一个32位(4字节)字11223344H,存储在地址为10000H的存储单元中,则10000H字节单元内容为_______44H_____,10003H字节单元内容为____11H____。
2.若芯片SRAM的容量为4K×4bit,现欲用这样的芯片构成0A0000H到0C3FFFH的内存,需要__72片这样的芯片。
3.如果某存储器芯片的容量为4K×8位,则存储器片内寻址地址线是___12____根,如果它在系统中起始地址为0F0000H,则它的末地址是____0F0FFFH___。
二、简答题
1.试述动态RAM的工作特点,与静态RAM相比,动态RAM有什么长处和不足之处。说明它的使用场合。
1、答案:无论采用何种工艺,动态RAM都是利用电容存储电荷的原理来保存信息的。与静态RAM相比,动态RAM电路结构简单,集成度高,存储容量大。但使用它必须配以复杂的刷新控制电路,以便不断地对其补充电荷。因此边线较静态RAM复杂,故常用在要求速度快,存储容量大的场合。
2.用下列RAM芯片构成32K×8的存储器模块,各需要多少芯片?多少个片选线?
(1)1K×8 (2)4K×8 (3)1K×4 (4)16K×4
答案:(1)32,32 (2)8,8 (3)64,32 (4)4,2
3.什么是字扩展?什么是位扩展?用户自己购买内存条进行内存扩充,是在进行何种存储器扩展?
答案:当存储器芯片的容量小于所需内存容量时,需要用多个芯片构成满足容量要求的存储器,这就是字扩展。
当存储器芯片每个单元的字长小于所需内存单元的字长时,需要用多个芯片构成满足字长要求的存储模块,这就是位扩展。
买内存条进行内存扩充是字扩展。
三、存储器应用
1.设某微机系统需要扩展内存RAM 32KB,扩充的存储器空间为10000H开始的连续存储区域。存储器芯片采用16K×8的RAM芯片,CPU使用8088。
1)选用芯片,画出逻辑连接图;
2)写出各片RAM的所在地址区域。
答:地址范围 第一片 10000H--13FFFH; 第二片 14000H--17FFFH
2.用4K×4的EPROM存储器芯片组成一个16K×8的只读存储器。试问:
(1)该只读存储器的数据线和地址线的位数。
(2)根据题意需要多少个4K×4的EPROM芯片?
(3)画出此存储器的组成框图。
答案:1) 该存储器芯片有14位地址线和4位数据线。
2) 共需总芯片数为8片。
第6章 输入输出接口技术
6.1 基本练习题
一、填空题
1. CPU与内存及I/O装置间传送数据的硬件线路通道称为_____总线____。
2. CPU和外设之间的数据传送方式有__无条件传送方式__、___程序查询传送方式___、__中断传送方式__和__DMA传送方式__。
3. I/O接口的编址方式可分为__I/O接口单独编址__、__与存储器统一编址 ___两种方式。
4. CPU与I/O之间接口信息通常有三类,它们是__数据信息__、_控制信息__、__状态信息__。
5. CPU从I/O接口的__状态寄存器___中获取外部设备的"准备好"、"忙"或"闲"等状态信息。
6. 一个典型的接口是由_数据寄存器_、__状态寄存器_和__命令寄存器__三种不同的寄存器构成。
7. 主机与外设之间的数据传送控制方式通常有三种,它们是程序控制方式,DMA方式及_中断方式___,其中__DMA__方式的数据传输率最高。
二、选择题
1. 中断与DMA( C )
A)程序中断可以完全代替DMA B)DMA可以完全代替程序中断
C)二者各有使用范围和特点,不能互相代替
2. I/O与主机信息的交换采用中断方式的特点是____B_____。
A) CPU与设备串行工作,传送与主程序串行工作
B) CPU与设备并行工作,传送与主程序串行工作
C) CPU与设备并行工作,传送与主程序并行工作
3. 有关外设的连接,下面哪个说法是正确的_________B_________?
A)输入输出设备可以直接和CPU连接
B)输入设备的数据线必须经过三态缓冲器才能和CPU的数据总线连接
C)CPU的数据总线,必须经三态缓冲器才能和输出设备连接
4. 一般的接口电路中,不包含下面的哪个端口______B____。
A)数据口 B)地址口 C)控制口 D)状态口
5. CPU与外设间数据传送的控制方式有_________D_______。
A)中断方式 B)程序控制方式 C)DMA方式 D)以上三种都是
三、简答题
1. 什么情况下两个端口可以用一个地址?
答:一个端口作输入,一个端口作输出时,这两个端口可共用一个地址。
2. 计算机与外部设备数据交换的方式有几种,分别是什么?
答:计算机与外部设备数据交换的方式有三种:程序控制数据传输方式、中断方式、DMA方式;其中在程序控制数据传输方式中,又分为直接数据传输方式和程序查询数据传输方式。
3. 如果利用中断方式传送数据,数据是如何传输的?中断机构起什么作用?
答:利用中断方式传送数据,一般是首先向CPU发出中断请求,CPU响应中断后在中断处理程序中进行数据传输,传输完毕返回。中断机构起控制作用,实时性较强。
4. 什么是I/O接口?
答:在CPU和外部设备之间,需要一些进行数据转换、电平匹配和相互联络的功能电路,称为I/O接口,在接口电路中,一般包含功能不同的寄存器,称为端口寄存器。通过对这些寄存器的编程,可以改变接口的功能和输入/输出关系。
5. 简述CPU以中断方式如何与外设交换数据。
答:当外设在某个时候准备就绪,向CPU提出中断申请,当CPU接收到此中断请求后,如果可以响应此中断,则会暂停现在正在进行的工作,响应此请求,得到此中断的中断类型码,根据此类型码,在中断向量表中取得中断服务程序的入口地址,执行此中断服务程序,进行数据的交换,完成后,返回到被打断的程序继续原来的工作
6.2课后练习题
一、选择题
1. 下列有关I/O端口的描述中,不正确的是________C_______。
A)I/O端口从逻辑上讲是被CPU访问的I/O接口电路中的寄存器
B)8086系统对I/O端口的访问只能通过专用的指令
C)从连接形式上讲,I/O端口总是直接与数据总线连接
D)I/O端口可以看作是CPU与外设交换数据的中转站
2. 在DMA传送方式中,对数据传递过程进行控制的硬件称为( C )。
A) 数据传递控制器 B) 直接存储器 C) DMAC D) DMAT
3. CPU响应中断请求和响应DMA请求的本质区别是 ( D )
A) 中断响应靠软件实现 B) 速度慢 C) 控制简单
D) 响应中断时CPU仍然仍控制总线,而响应DMA请求时,CPU要让出总线
4. 在中断方式下,外设数据输入到内存的路径是 ( D )
A) 外设→数据总线→内存 B) 外设→数据总线→CPU→内存
C) 外设→CPU→DMAC→内存 D) 外设→I∕O接口→CPU→内存
5. CPU与I∕O设备间传送的信号有 ( D )
A) 数据信息 B) 控制信息 C) 状态信息 D) 以上三种都是
6. CPU与外设之间的数据传输方式有________D_______。
A) 查询方式 B) 中断方式 C) DMA方式 D) 以上都是
7. 主机、外设不能并行工作的输入/输出方式是______A______。
A) 程序查询方式 B) 中断方式 C) DMA方式
二、简答题
1、说明I/O接口的基本功能。
答案: I/O地址译码与设备选择;信息的输入输出;命令、数据和状态的缓冲与锁存;信息转换等功能。
2、相对于查询方式,中断方式有什么优点?和DMA方式比较,中断方式有什么不足之处?
答案:中断方式可以使CPU与外设并行工作,所以比起查询方式,CPU的工作效率提高了。
中断方式仍然要由CPU通过指令来传送数据,对高速设备来说速度太慢了。DMA方式是在DMA控制器控制下进行数据传送,速度上限主要取决于存储器的存取速度,因此中断方式传输速度不如DMA方式。
三、填空题
I/O端口的编址方式有统一编址和____独立编址_____两种。其中,在PC机中,I/O端口编址方式为_____独立编址___。
第7章 并行接口及8255A应用
基本要求:要求学生掌握并行接口的原理及扩展方法,掌握并行接口器件8255A的内部结构、外部引脚、内部寄存器以及各种工作方式(方式0、方式1)特点和使用,了解方式2的特点;要求学生掌握8255A初始化编程的方法,并能进行应用程序的软硬件设计;要求学生掌握键盘、LED显示器的作用和工作原理,掌握接口的设计方法。重点:8255A的内部结构和引脚功能、与CPU的连接;8255A的工作方式0;控制字的格式及作用、各种工作方式的组合,初始化编程方法,应用设计;键盘、LED的工作原理。难点:8255A的工作方式;行扫描法、行反转法,键识别与处理、多位LED的多位显示问题。
7.1 基本练习题
一、填空题
1.一片8255A端口A有3种工作方式,端口B有____2 ___种工作方式。
2.8255A的三个端口工作在方式0输入方式时,三个端口均_____无____(有/无)锁存能力。
3.当从8255A的端口C读出数据时,8255A的几个控制信号*CS,A1,A0,*RD,*WR分别是____0_____,_____1____,______0___,_____0____,____1_____(*代表低电平有效)。
4.8255A的端口A可用程序设置为_____方式0_____、_____方式1_____、_____方式2____三种工作方式,对C口还有一种特殊使用方式为___按位置0置1__。
5.当8255A的输入信号 *CS=0、*RD=0、*WR=1且A1=A0=0时,此8255A执行的操作是__将端口A的数据送到数据线上___。(*表示低电平有效)
6.当8255A的输入信号 *CS=0、*RD=1、*WR=0且A1=A0=0时,此8255A执行的操作是 _接收CPU送来的端口A的数据___。(*表示低电平有效)
7.8255A芯片中的端口B可以有____2___种工作方式。
8.一片8255A芯片内含____3_____个传输数据的8位I/O端口,其中PA口有____3____种工作方式。
二、选择题
1.8255A芯片具有三个独立数据端口,只有____A___端口具有双向传输方式。
A) A口 B) B口 C) C口 D) 以上均可
2.当8255A的PC4-PC7全部为输出时,表明8255A的A端口工作方式为_____A_____。
A) 方式0 B) 方式1 C) 方式2 D) 不能确定
3.8255A的A口工作在方式2时,B口可工作__________A________。
A)方式0或方式1 B)方式1或方式2
C)只能工作在方式1 D)任何方式都不行,只能空着
4.已知某系统中8255芯片所占用的I/O地址为340H--343H,则该8255芯片内控制字寄存器口地址为_____D____。
A)340H B)341H C)342H D)343H
5.某系统采用8255A并行I/O接口,初始化时CPU所访问的端口地址为0CBH,并设定A口的工作方式为方式1输出,则A口的地址最可能为_____D_____。
A)0CBH B) 0CAH C) 0C9H D) 0C8H
6.8255A的方式选择控制字应写入_____D_____。
A) A口 B) B口 C) C口 D) 控制口
7.在通用可编程并行电路8255A中,用于传输数据的8位I/O端口共有____C_____。
A) 1个 B)2个 C) 3个 D) 4个
三、简答题
1.8255A是什么芯片?一片8255占用几个口地址?它有几种工作方式?
答:8255A是通用可编程并行接口芯片。一片8255占用4个口地址。方式0:基本输入/输出方式方式1:选通输入/输出方式方式2:双向传输方式
2.8255A的方式0一般使用在什么场合?在方式0时,如果使用应答信号进行联络,应该怎么办?
答:方式0的特点是只要WR,RD信号有效,就有数据传送,一般使用在可随时传送数据的场合。若使用应答信号进行联络,可用C口作为联络,对C口位操作,一般上C口用作选通(STB)线,下C口作状态输入(RDY)线。
3.当8255A工作在中断方式2时,CPU是如何来区分输入或输出的?
答:在输入,输出均允许中断的情况下,可在中断服务程序中查询状态字,判断OBF和IBF位的状态,来区分是输入中断还是输出中断,并采取相应操作。
4.现欲从8255A芯片PC口的PC0输出高电平“1”,试问有哪几种办法实现此操作?
答:两种方法:1)使用字节型输出方式,向PC口输出最低位为“1”的值;2)使用按位操作,将PC0置为“1”
答:1)首先规定行线为输出,列线为输入。2)从行线上输出全“0”的数据,从列线读取数据,如果读取数据为全“1”,则说明没有键按下,否则,有键按下。3)当有键按下时,将列线规定为输出、行线为输入。4)将第二步从列线上读取的数据输出到列线上,从行线上读取数据,若读取的数据为全“1”,则认为是一个干扰,否则,根据当前行、列线的数据值,可以唯一确定哪一个键按下。
四、硬件编程题
1.一个8088系统中有一8255A,8255A各口设置如下:A组与B组均工作于方式0,A口为数输入,B口为输出,C口高位部分为输出,低位部分为输入,A口地址设为40H。
1) 写出工作方式控制字
2) 对8255A初始化
3) 从A口输入数据,将其取反后从B口送出
答: 1)10010001B 即91H
2) MOV AL,91H; OUT 43H,AL
3)IN AL,40H; NOT AL; OUT 41H,AL
2.设8255A的4个寻址地址号为0060H~0063H,试编写下列各种情况下的初始化程序。
1) 将A组和B组设置成方式0,A口,B口为输入,C口为输出。
2) 将A组工作方式设置成方式2,B组为方式1,B口作为输出。
3) 将A口,B口均设置成方式1,均为输入,PC6和PC1为输出.
4) A口工作在方式1,输入;B口工作在方式0,输出;C口高4位配合A口工作,低4位为输入。
答:
3.8255A控制字如下,8255A端口地址为:160H、162H、164H、166H,端口A方式0输出,端口B方式0输入,端口C方式0输出。编写程序实现初始化,并将端口B内容的2倍与端口C的内容求和后将结果取反送到端口A。
答:根据端口地址知,端口A地址为:160H,端口B地址为:162H,端口C地址为:164H,控制端口地址为:166H。端口A方式0输出,端口B方式0输入,端口C方式0输入知:控制字8BH。
MOV AL, 8BH
MOV DX, 0166H
OUT DX, AL
MOV DX, 0162H
IN AL, DX
MOV BL, AL
ADD BL, AL
MOV DX, 164H
IN AL, DX
ADD AL, BL
NOT AL
MOV DX, 0160H
OUT DX, AL
五、硬件设计题
1.用一片8255 A芯片设计一基于PC系统总线的I/O接口板,要求:
1)8255A占用的端口地址为300H--306H,画出原理图。
2)设8255A的PA、PB、PC口均工作在方式0,PA口为输入,PB、PC口均为输出,编写8255的初始化程序片段(已知8255A控制字为10010000B)。
3)编写程序片段,将从PA口读入的状态送至PB口输出。
答:1) 参见图
MOV DX, 236H
MOV AL, 82H
OUT DX, AL
MOV AX, SEG FIRST
MOV DS, AX
MOV SI, OFFSET FIRST
LOP: MOV DX, 232H
IN AL, DX
MOV [SI], AL
MOV DX, 230H
OUT DX, AL
JMP LOP
7.2 课后练习题
一、填空题
1. 8255A控制字可以分为 方式选择控制字 和 C口置复位控制字 两类。
2.8255A各个端口的工作方式是由 方式选择控制字 决定的。
二、选择题
1. 某系统采用8255A并行I/O接口,初始化时CPU所访问的端口地址为0CBH,并设定为方式1输出,则了B口的口地址应为_____B______。
A)0CAH B)0C9H C)0C8H D)0CCH
2. 某系统采用8255A并行I/O接口,初始化时CPU所访问的端口地址为0BBH,并设定为方式1输出,则了B口的口地址应为______B____。
A)0BAH B)0B9H C)0B8H D)0BCH
三、简答题
常用的键盘扫描有几种方式?试述各自的特点及原理。
答案: 行扫描法和行反转法
行扫描法工作原理
1)规定行输出,列输入
2)将全“0”数据从行线上输出,读取列线,若全“1”,则认为没有按键,否则认为有按键。
3)在有按键情况下,逐次使其中的行线输出“0”,其余的行线为“1”,读取列线,若读取的数据为全“1”,则表明该行没有按键,若读取的非全“1”,根据行列线上的数据,可以唯一确定哪一个键按下。
行反转法工作原理
1)首先规定行线为输出,列线为输入。
2)从行线上输出全“0”的数据,从列线读取数据,如果读取数据为全“1”,则说明没有键按下,否则认为有按键。
3)改变输入、输出端口,将2)获得的数据从列线输出,从行线读取数据,根据两次读取的数据,就可以唯一确定哪个键按下。
四、硬件编程题
8255A的工作方式控制字和C口的按位置位/复位控制字有何差别?若将C口的PC2引脚输出高电平(置位),假设8255A控制口地址是303H,程序段应是怎样的?
8255A的工作方式控制字和C口的按位置位/复位控制字有何差别?若将C口的PC2引脚输出高电平(置位),假设8255A控制口地址是303H,程序段就应是怎样的?
答案: 工作方式控制字的最高位为1,而C口的按位置位/复位控制字最高位为0
MOV DX,303H
MOV AL,80H
OUT DX,AL
MOV AL,05H
OUT DX,AL
五、硬件设计题
1. 已知8255A的控制口地址为236H,LED采用共阳级接法。字型信息接在PB口,字位信息接在PA口,使用8255A作为接口芯片,在两块LED上显示自己的学号。要求画出完整的线路连接图并设计相应的程序(8086工作在最小模式,8255A相应控制字为80H)。
答案:
MOV DX,236H LOP: LOOP LOP
MOV AL,80H MOV DX,232H
OUT DX,AL MOV AL,nn ;学号高位
MOV CX,000H OUT DX,AL
START:MOV DX,232H MOV AL,2
MOV AL,nn ;学号低位 MOV DX,230H
OUT DX,AL OUT DX,AL
MOV AL,1 LOP1:LOOP LOP1
MOV DX,230H JMP START
OUT DX,AL
2.若打印机及其工作时序如图所示,当打印机不忙时(BUSY=0),向它送数据(设每次只传送1个字节)并在数据稳定时用 负脉冲将数据存于打印机内部,同时设置打印机忙信号,即BUSY =1。
1)用可编程接口芯片8255A将打印机与总线相连接起来。若规定8255A的地址为0320H~032FH任选,试画出连接电路图。
2)数据段中首地址为BUFFER的区域中存放着100字节要打印的字符,试编写包括8255A初始化的打印程序,并将100个字符打印出来。
答案:1、
2、
MOV DX,326H MOV AL,[BX]
MOV AL,81H OUT DX,AL
OUT DX,AL MOV DX,326H
LEA BX,BUFFER MOV AL,8
MOV CX,100 OUT DX,AL
NE:MOV DX,324H MOV AL,9
IN AL,DX OUT DX,AL
TEST AL,01 INC BX
JZ NE LOOP NE
MOV DX,322H
3.在一个系统中,8255A的四个端口地址分别为:420H、422H、424H和426H。要求:
1)初始化8255A,使端口A、B、C均工作于方式0,端口A作为输入端口,端口B和C作为输出端口。
2)将端口A输入的信息取反后直接输出到端口B。
3)检测端口A输入的信息的PA7位。当PA7=1时,端口C输出FFH,否则,输出00H。
请编写程序段,完成上述功能(程序要加注解)。
答案: 1) MOV AL,90H
MOV DX,426H
OUT DX,AL
2) MOV DX,420H
IN AL,DX
MOV DX,422H
NOT AL
OUT DX,AL
3) MOV DX,420H ;从端口A输入信息
IN AL,DX
TEST AL,80H ;测试PA7是否为0
MOV AL,0
JZ KO ;如果为0,输出0
MOV AL,0FFH ;否则输出0FFH
KO:
MOV DX,424H ;端口C的地址
OUT DX,AL
第8章 串行接口及8251A应用
8.1 基本练习题
一、填空题
1.常用来实现RS-232C电平与TTL电平相互转换的电路是__1488、1489(MAX232)___。
2.串行通讯按照时钟同步方式不同,可分为___异步____通讯和__同步___通讯。
3串行接口标准RS-232C最简化型的三根线为__数据发送线Txd,数据接收线Rxd,和地线___;其电气特性逻辑0和1的电平分别为__逻辑“0” +5V~+15V,逻辑“1” -5V~15V__伏。
二、选择题
1. IEEE488 总线是_________B_________。
A)工业控制总线 B)串行通信总线 C)计测总线 D)PC扩展总线
2.在数据传输率相同的情况下,同步传输的速度要高于异步传输,其原因是 ( D )
A)字符间无间隔 B)双方通信同步 C)发生错误概率少 D)附加信息总量少
3.设串行异步通信的数据格式是:1个起始位,7个数据位,1个校验位,1个停止位,若传输率为1200,则每秒钟传输的最大字符数为 ( C )
A) 10个 B) 110个 C) 120个 D) 240个
4若传输率为2400,收、发时钟(RxC∕TxC)频率为38.4KHz,则波特率因子为( B )
A) 1 B) 16 C) 32 D) 64
三、简答题
1.8251A的状态字哪几位和引脚信号有关?状态位TxRDY和引脚标号TxRDY有什么区别?它们在系统设计中有什么用处?
答:状态字中D6位SY/BR与SYNDET,D2位TxEPTY与TxE,D1位RxRDY与RxRDY,D0位TxRDY与TxRDY引脚有关。状态位TxRDY与引信号TxRDY区别在于,TxRDY位为1的条件是:8251A内部数据输出寄存器内容为空或即将发送完毕,TxRDY端输出变高条件是TxRDY=1,CTS输入为低电平且命令字设置TxEN发送允许位为1。它们在系统设计中可用于中断请求或中断查询。
2.8251A内部有哪些功能模块?其中读/写控制逻辑电路的主要功能是什么?
答:具有5个功能模块:I/O缓冲器,读/写控制逻辑,接收器,发送器,调制/解调器。读/写控制逻辑主要功能是接收来自CPU控制总线的控制信号,对数据在内部总线的传送方向进行控制
答:有7个寄存器和外部电路有关,方式寄存器,同步字符寄存器1和2,控制寄存器,数据输入寄存器,数据输出寄存器,状态寄存器。只占用两个端口地址,因为寄存器的区分是依靠读/写的固定顺序。
四、编程题
1.一片8251占用80H,82H两个端口地址,试说明该8251的C/D引脚如何与系统地址线连接,其控制端口地址为什么?数据端口为多少?并编程序初始化该8251,使其工作于同步方式,且波特率因子为16,允许发送和接收,8个数据位,2位停止位,不允许校验。
系统总线A1与C/D引脚相连,控制端口地址为82H,数据端口地址为80H
答: MOV AL,0 MOV AL,0CEH
OUT 82H,AL OUT 82H,AL
OUT 82H,AL MOV AL,05H
OUT 82H,AL OUT 82H,AL
答: XOR AX,AX MOV AL,18H
MOV DX,66H OUT DX,AL
OUT DX,AL MOV AL,SYNC
OUT DX,AL OUT DX,AL
OUT DX,AL OUT DX,AL
MOV AL,40H MOV AL,0BFH
OUT DX,AL OUT DX,AL
8.2 课后练习题
一、简答题
1. 串行通讯的数据传送方式有哪三种?
2. 在8251内部有多个寄存器,其中有模式寄存器、同步字符寄存器1、同步字符寄存器2、控制寄存器、状态寄存器、数据接收寄存器和数据发送寄存器,但是8251芯片只有一条引脚C/D用来区分内部寄存器,请问它是如何区分这些寄存器的?
二、编程题
1. 设8251A为异步工作方式,波特率因数为16,7位/每字符,奇校验,两位停止位。CPU对8251A输入80个字符。试对其进行初始化编程。设8251A的地址为0F2H。
2. 若8251A的收发时钟(RxC,TxC)频率为38.4KHz,它的RTS和CTS引脚相连,试编写出以半双工异步通讯,每帧字符的数据位数为7,停止位数为1,偶校验,波特率为600 b/s,处于发送状态的初始化程序(设8251A的地址为02C0H和02C1H)。
中断及8259A
9.1 基本练习题
一、填空题
1. 中断类型码若为58H,它在中断矢量表中的矢量地址为__160H--163___H,从该地址开始连续四个单元存放的是__中断服务程序的偏移地址和段地址 __。
2. 一个中断类型号为01CH的中断处理程序存放在0100H:3800H开始的内存中,中断向量存储在地址为_00070H__至_00073H__的___4___个字节中。
3. 8088的外部中断分为_非屏蔽中断__和__可屏蔽中断___两大类。
4. 若用两片断8259A芯片构成主从级联形式,则这两片8259A芯片最多可直接管理__15__级外部中断源。
5. 若8259A的两个端口地址为20H和21H,则在初始化时,应在写入ICW1_之后,以___奇__地址写入ICW2和ICW4。
6. 8259A有两类命令字,分别是_初始化命令字(ICW)__和__操作命令字(OCW)__。
7. 8086系统中,中断服务子程序的入口地址通过__中断向量表__获取,它们之间的关系为_(中断类型号*4)-->IP,(中断类型号*4+2)-->CS__,如果1CH的中断处理子程序从5110:2030H开始,则中断向量被存放在_70H,72H字__单元,各单元的内容为__(00070H)=2030H,(00072H)=5110H__。
8. 8259A可采用级联方式工作,在微机系统中最多可接____8___(具体数字)个从属的8259A。
9. 8088 CPU的非屏蔽中断的类型码为____2_____。
10. 中断优先级控制主要解决两种问题:_多个中断同时发生__、_中断处理过程中另一更高优先级的中断源提出中断请求_。
11. 中断向量可以提供__中断服务程序入口地址___。
12. 硬件中断可分为__可屏蔽中断___、__非屏蔽中断__两种。
二、简答题
1. 8259A的中断屏蔽寄存器IMR和8086/8088的中断允许标志IF有什么差别?在中断响应过程中,它们怎样配合起来工作?
答:IMR的8位对应8个中断级,其中置为1的位所对应的中断级的输入线IR处于被屏蔽方式,被屏蔽的中断级请求不能使8259A的INT输出端产生有效的请求信号。所以即使当中断允许IF=1时也无法响应。IF是CPU的中断允许标志,当IF=0时所有可屏蔽中断被禁止。在中断响应过程中,通过设置IF,IMR可灵活控制中断的优先次序。
2. 外设向CPU申请可屏蔽中断,但CPU不响应该中断,其原因有哪些?
答:其原因可能有四个:(1)CPU处于关中断状态,IF=0。(2)该中断请求已被屏蔽;(3)该中断请求的时间太短,未能保持到指令周期结束;(4)CPU已释放总线(即已响应了DMA请求),而未收回总线控制权。
3.8259A的初始化命令字和操作命令字有什么差别?它们分别对应于编程结构中哪些内部寄存器?
答:初始化命令字通常在系统初始化阶段设置,从ICW1开始,按照固定次序的设置,一经设置完成,则在以后的操作中基本保持不变,操作命令字是在程序执行阶段向8259A发出的命令字,实现以8259A的状态,中断方式和过程的控制。操作命令字可以一个程序中多次设置,从而改变中断的方式。初始化命令字有4个,分别为ICW1,ICW2,ICW3,ICW4,操作命令字有3个,分别为OCW1,OCW2,OCW3。
4. 在8086/8088的中断系统中,响应可屏蔽中断过程,是如何进入中断服务程务程序的?
答:中断控制器提供中断类型码,从中断向量表中相应位置取出中断服务程序首址置入IP和CS中,程序转至中断服务程序。
5. 8086中,可屏蔽中断与非屏蔽中断的主要区别是什么?
答:可屏蔽中断能否响应受到CPU标志寄存器FLAG的限制,如果IF=0,则所有可屏蔽中断都不能响应,只有IF=1时,CPU才能响应可屏蔽中断,另外,可屏蔽中断是从CPU的INTR引脚引入的。 非屏蔽中断是从CPU的NMI引脚引入CPU的,它不受标志寄存器中IF的限制,只要有请求,而在请求时没有总线请求,就可以响应。
6. 8086中断系统响应中断时如何找到中断入口地址?
答:在响应中断时,根据中断类型号,从中断类型号*4开始的连续的4个单元中保存有中断服务程序的入口地址(段内偏移地址和段地址),取出来,直接送给PC和CS即可。
三、选择题
1. 8086 CPU 响应可屏蔽中断的必要条件除中断允许标志IF=1外,只需满足____B_____。
A) 访内操作结束 B) 当前指令执行完 C)无软中断请求 D)无内部中断请求
2. PC机采用向量中断方式处理8级外中断,中断号依次为08H-0FH。在RAM 0000H:002CH单元开始依次存放23H、FFH、00H、F0H四个字节,问该向量对应的中断号和中断程序入口是________B_______。
A)0CH,23FFH:00F0H B)0BH,0F000H:0FF23H C)0BH,00F0H:23FFH
D)0CH,0F000H:0FF23H E)0CH,00F0H:23FFH F)0BH,0F000H:23FFH
3. 8086系统中的中断向量表的作用是______D______。
A)存放中断服务程序 B)存放系统引导程序
C)存放中断响应标志 D)存放中断服务程序的入口地址
4. 8259A内中断类型号的数据长度为____B_____。
A) 3位 B) 8位 C) 16位 D) 8位或16位
5. 8086对硬件中断请求响应优先级最高的请求_______A______。
A) NMI B) INTR C) 内部硬件中断 D) 单步中断
6. 8086中断向量表的大小为( )字节,其中断系统可以管理( A )种中断。
A) 1K,256 B) 1K,128 C) 256,64 D) 2K,512
7. 8086系统可管理的中断(软件及硬件中断)的个数最多为_____D_____。
A) 8个 B) 16个 C) 64个 D) 256个
8. 当8088 CPU响应中断时,CPU把断点处的有关内容压入堆栈保护,并清除( D )。
A) TF B) IF C) OF D) TF和IF
9. 除法出错是属于( B )中断。
A) 线路故障 B) 内部中断 C) 外部中断 D) 单步中断
10. 3片8259A级联,最多可管理的中断级数为( C )级。
A) 20 B) 21 C) 22 D) 24
9.2 课后练习题
一、选择题
1. PC机中确定可屏蔽中断服务程序的入口地址是______C_____。
A) 主程序中的调用指令 B) 主程序中的转移指令
C) 中断控制器发出的类型码 D) 中断控制器中的中断服务寄存器(ISR)
2. 已知某8259A与8086 CPU相连,其对应的中断类型码为40--47H,那么在初始化时,CPU 送给8259A 的ICW2值和IR3中断源被响应时8259A送给CPU的中断类型码可能的是____C___。
A)40H和47H B)40H和40H C)47H和43H D)43H和47H
3. 对8086 CPU而言,中断优先级别最高的是_______B________。
A)单步中断 B)除法错,溢出中断,软中断 C)INTR D)NMI
4. 在8086环境下,对单片方式使用的8259A进行初始化时,必须放置的初始化命令字为( B )
A)ICW1,ICW2,ICW3 B)ICW1,ICW2,ICW4 C)ICW1,ICW3,ICW4 D)ICW2,ICW3,ICW4
5. 非屏蔽中断的中断类型号是______B______。
A) 1 B) 2 C) 3 D) 4
6. 在中断响应周期内,将IF置0是由____A_____。
A)硬件自动完成的 B)用户在编制中断服务程序时设置的 C)关中断指令完成的
A)子程序入口地址 B)中断服务程序入口地址 C) 中断服务程序入口地址的地址
8. 通过中断向量表中的中断向量,可以提供____C_____。
A) 被选中设备的起始地址 B) 传送数据的起始地址
C) 中断服务程序入口地址 D) 主程序的断点地址
9. CPU响应中断的时间是_____B_____。
A) 外设提出中断 B) 一条指令结束 C) 取指周期结束
10. 所有中断处理(服务)过程的最后一条可执行指令必须是( B )。
A) RET B) IRET C) HALT D) NOP
二、简答题
1. 8086中断系统有哪几类?8259A管理的是哪一类中断?
答:种类有非屏蔽中断、可屏蔽中断、软件中断和软件陷阱。 8259可管理可屏蔽中断。
答:中断是允许的有中断请求没有总线请求和响应没有高优先级中断在服务当前指令执行完如果是对段寄存器的操作执行完此指令后必须再执行一条指令如果当前指令是带REP的串指令则一个字节或字的操作完成没有必要完全执行完该指令若当前指令是封锁指令则必须执行完其后的一条指令
3. 已知8259A某可屏蔽中断的类型号为20H,服务程序的入口地址标号为NMITS,编程将入口地址填写到中断向量表中。
CLI MOV ES[20H*4]AX
MOV AX0000H MOV AXSEG NMITS
MOV ESAX MOV ES[20H*4+2]AX
MOV AXOFFSET NMITS STI
三、判断题
1. 非屏蔽中断信号是一个由高到低的下降沿,这类中断不受中断允许标志位的影响,也不能用软件进行屏蔽。 ( X )
2. 在由8086组成的微机系统中,对应中断类型码为255的外设,其中断服务程序的入口地址为0000:03FFH。 ( X )
3. 实现中断嵌套需用堆栈来保护断点,由于所保护内容不多,不必考虑栈溢出。( X )
4. 中断嵌套可以在多级上进行,形成多级嵌套,在应用时,其嵌套级数不受任何限制。( X )
第10章 定时器/计数器
10.1 基本练习题
一、填空题
1.8253A工作于“模式0”,设置计数器0的计数常数为0FFEH,进行二进制计数。假设8253A的端口地址为50H—56H。
MOV AL, 30H ; 8253A初始化
OUT 56H , AL
MOV AL, 0FEH ; 设8253A计数初值
OUT 50H , AL
MOV AL, 0FH ;
OUT 50H , AL
2.某一测控系统要使用一个连续的方波信号,如果使用8253A可编程定时/计数器来实现此功能,则8253A应工作在方式 3 。
3.利用8253A芯片每20ms产生一个脉冲输出,若输入的时钟频率为2MHz,8253A的计数初值应取 40000 ,工作方式选 2 。
二、选择题
1. 当8253A可编程定时/计数器工作在 BF 下时,需要由外部脉冲触发开始计数。
A) 方式0 B) 方式1 C) 方式2 D) 方式3 E) 方式4 F) 方式5
2. 若8253A处于计数过程中,当CPU对它装入新的计数初值时,其结果将是 D 。
A) 8253A禁止编程
B) 8253A允许编程,并改变当前的计数初值
C) 8253A允许编程,但不改变当前的计数初值
D) 8253A允许编程,是否影响当前计数过程随工作方式而变
3. 当8253A工作在方式0,在初始化编程时,一旦写入控制字后 B 。
A) 输出信号端OUT变为高电平 B) 输出信号端OUT变为低电平
C) 输出信号端保持电平值不变 D) 立即开始计数
4. 当8253A工作在方式0,控制信号变为低电平,对计数器的影响是 B 。
A) 结束本次循环,等待下一次计数的开始 B) 暂时停止现行计数工作
C) 不影响本次计数 D) 终止本次计数过程,立即开始新的计数循环
5. 利用8253A每20ms产生一次中断,若CLK为20MHz,则8253A可采取的工作方式及计数初值为 D 。
A) 方式0;65535 B) 方式3;40000H C) 方式5;40000 D) 方式2;40000
6. 8253A C 。
A) 只能实现计数 B) 只能实现定时 C) 即可实现计数,又可实现定时 D) 都不能
三、简答题
1. 定时和计数有哪几种实现方法?各有什么特点?
答:软件定时:利用CPU执行某一指令需要一定机器周期的原理,在软件编程时循环执行一段指令,从而产生累积的定时。优点是不需要增加硬件。缺点是耗费CPU资源,故软件定时只适用于短时定时。而且,不同CPU的时钟频率不同,同一段软件延时程序在不同的机器上运行,可能结果不同,即兼容性不强。
硬件定时和计数:以硬件计数器构成,计数脉冲触发硬件计数器计数,如果计数脉冲的周期固定,则计数同时产生定时。优点是不占用CPU资源,定时精确,定时范围大。缺点是增加一些硬件开销。
答:它由与CPU的接口、一个控制寄存器以及三个16位计数器所组成。每个计数器通过3个引腿和外部联系,1个为时钟输入端CLK,1个为门控信号输入端GATE,别1个为输出端OUT。
四、综合题
设8253A三个计数器的端口地址为100H、101H、102H,控制寄存器端口地址103H。输入时钟为2MHz,让1号通道周期性的发出方波,其周期为1ms,试编写初化程序段。
使用计数器1,先加载低8位,后加载高8位,设为方式3,二进制计数,控制字是76H。设控制口的地址是103H,计数器1的地址是101H。程序段如下:
MOV |
DX,103H |
MOV |
AX,2000 |
MOV |
AL,76H |
OUT |
DX,AL |
OUT |
DX,,AL |
MOV |
AL,AH |
MOV |
DX,101H |
OUT |
DX,AL |
10.2 课后练习题
一、选择题
1. CPU可以对8253计数器执行读操作,其读到的是( D )
A)工作方式 B)计数初值 C)计数执行部件CE(减法计数器)的当前值 D) 0
2. 在 8253 的6种工作方式中,能够自动重复工作的两种方式是( B )。
A)方式1,方式 2 B)方式 2,方式3
C)方式2,方式 4 D)方式 3,方式5
3. INTEL8253每个通道都有一个( C )位的预置初值减1计数器。
A) 4 B) 8 C) 16 D) 32
4. 在下列8253的四种工作方式中,即使GATE保持为高电平,处于( B )的8253在写入初值后也不开始定时或计数。
A)方式0(计数结束中断) B)方式1(硬件可重触发单稳态)
C)方式2(速率发生器) D)方式3(方波)
二、综合题
1.某系统中8253芯片的通道0至通道2和控制端口的地址分别为0FFF0H~0FFF6H,定义通道0工作在方式2,CLK0=2MHz,要求输出OUT0为1KHz的速率波;定义通道1工作方式0,其CLK1输入外部计数事件,每计满1000个向CPU发出中断请求。试写出8253通道0和通道1的初始化程序。
答:对于计数器0由于每个技术脉冲的周期为0.5us所以要产生1KHz的输出信号则计数初值应该为2000选择模式2或模式3采用BCD码计数所以控制字为00100101B。 对于计数器1计数初值设置为1000采用方式2采用BCD码计数当记满1000个外部事件时利用OUT1引脚的上升沿请求中断控制字为01100101B。
MOV DX,0FFF6H
MOV AL,25H 计数器0控制字
OUT DX,AL
MOV AL,65H 计数器1控制字
OUT DX,AL
MOV DX,0FFF0H
MOV AL,20H 计数器0的计数初值
OUT DX,AL
MOV DX,0FFF2H
MOV AL,10H 计数器1的计数初值
OUT DX,AL
答:因为计数频率为2MHz则计数周期为0.5us记满1秒钟需要的计数周期数为1/0.5×10-6=2×106=2000000一个计数器是不能完成的若要完成可以采用两个计数器串联的方式。即将计数器0的CLK0接2MHz的计数时钟计数初值设定为2000采用方式3BCD码计数其OUT0直接接到计数器1的CLK1上通过计数器1的OUT1产生1Hz的方波则计数器1的工作方式设定为方式3计数初值为1000BCD码计数即可完成要求的任务
MOV DX,353H
MOV AL,27H 计数器0控制字
OUT DX,AL
MOV AL,67H 计数器1控制字
OUT DX,AL
MOV DX,350H
MOV AL,20H 计数器0的计数初值
OUT DX,AL
MOV DX,351H
MOV AL,10H 计数器1的计数初值
OUT DX,AL
第11章 模拟量通道
11.1 基本练习题
一、填空、选择题
1.A/D转换器的功能是将___模拟量信号 ___转换成数字量信息,便于计算机运算、处理。
2.某10位的A/D芯片,模拟输入信号的量程为0~+5伏,则数字量12对应的电压为( B )伏。
A) -0.0293 B) 0.0586 C) 0.0293 D) -0.0586
二、简答题
1.使用DAC0832进行数/模转换时,有哪两种方法可对数据进行锁存?
答:DAC0832中具有两级锁存器,第一级锁存器为输入寄存器,锁存信号为ILE和CS;第二级锁存器为DAC寄存器,锁存信号为XFER。
为了DAC0832进行数/模转换,可使用两种方法对数据进行锁存。第一种方法是使输入寄存器工在锁存状态,而DAC寄存器工作在不锁存状态 。即使WR2和XFER均为低电平,DAC寄存器的锁存端为无效状态,而使输入寄存器的有关控制信号,ILE为高电平,CS为低电平。当WR1来一个负脉冲时,就可完成一次转换。
第二种方法是输入寄存器工作在不锁存状态,DAC寄存器工作在锁存状态,即使WR1为低电平,CS为低电平
而ILE为高电平。这样输入寄存器的锁存信号处于无效状态,而WR2和XFER输入一个负脉冲,使DAC寄存器为锁存状态。
答:如果有一个D/A转换器超过8位,CPU则通过两条输出指令向两个锁存器对应的端口地址输出数据,但是第一次执行输出指令后,D/A转换器会得到一个局部的输入,由此,输出端得到一个局部的,实际上不需要的模拟量输出。因此用两级缓冲结构来解决,CPU先用两条输出指令把数据送到第一级数据缓冲器,通过第三条输出指令使数据送到第二级数据缓冲器,从而使D/A转换器一次得到所有位待转换的数据。这就是用带两级缓冲器的D/A转换器必须要用3条输出指令才能完成16位或12位数据转换的理由。
答:采样保持电路有两种工作状态,一种是采样状态,一种是保持状态。在采样状态,输出随输入而变化,增益为1,在保持状态,输出保持为某个值。
三、编程题
1.利用DAC0832芯片 ,实现输出三角波。DAC端口的地址为328H,DAC0832芯片采用一级缓冲方式。请写出主要程序段。
1. |
MOV |
DX,328H |
MOV |
AL,0FEH |
|
MOV |
AL,0 |
LLL: |
OUT |
DX,AL |
|
LOP: |
OUT |
DX,AL |
DEC |
AL |
|
INC |
AL |
JNZ |
LLL |
||
JNZ |
LOP |
JMP |
LOP |
2.在一个计算机系统中连接有一个8位 D/A 转换器,D/A转换器的数据端口地址为180H,请编程从此 D/A 转换器的模拟量输出端输出一个如图所示的锯齿波(频率不限制)。
2. COD |
SEGMENT |
||||
ASSUME |
CS:COD |
DEC |
AL |
||
MAIN |
PROC |
FAR |
JMP |
LOP |
|
MOV |
AL,0 |
MAIN |
ENDP |
||
MOV |
DX,180H |
COD |
ENDS |
||
LOP: |
OUT |
DX,AL |
END |
MAIN |
11.2 课后练习题
一、简答题
1.比较计数式,双积分式和逐次逼近式A/D转换的优缺点。
答案:计数式A/S转换的速度比较慢,但价格低,故适用于慢速系统。
双积分式A/D转换分辨率高,抗干扰性也比较高,适用于中等速度的系统。
逐次逼近式A/D转换速度最快,分辨率高,在计算机系统中多采用此方式的A/D集成电路芯片。
答案:在数字量和模拟量并存的系统中,有两类电路芯片。一类是模拟电路芯片,一类是数字电路芯片。这两类芯片要用两组独立的电源供电。一方面要把各个"模拟地"连在一起,各个"数字地"连在一起,两种"地"不能彼此相混地连接在一起;另一方面,整个系统中要用一个公共地点把模拟地和数字地连起来,以免形成地环流,人为地造成干扰。
二、编程题
1.一个8位D/A转换器连接于8086系统中,其端口地址为3FH,请编程实现在D/A转换器的输出端输出一个锯齿波。
答案: MOV AL,0
NEXT: OUT 3FH,AL
INC AL
Call delay
JMP NEXT
2.一个8086系统中连接有一A/D转换器,如图所示,请完成下列问题
1)图中0809通道5(IN5)的端口地址是多少?
2)图中0809转换完成信号(EOC)的端口地址是多少?
3)编程将通道7(IN7)的模拟信号连续采集16次,存放到内存BUF1开始的单元中。
答案: 1) 0FFB0H (2分)
2) 0FFB1H (2分)
3) MOV BX,OFFSET BUF TEST AL,1
MOV CX,10 JZ LOP1
LOP0: MOV DX,0FFB0H MOV DX,0FFB0H
MOV AL,07H IN AL,DX
OUT DX,AL MOV [BX],AL
MOV DX,0FFB1H INC BX
LOP1: IN AL,DX LOOP LOP0
第12章 与实验相关的问题
12.1 基本练习题
一、填空题
1. 汇编语言源程序的扩展名是__ASM___。
2. 汇编语言程序的上机操作的步骤是__编辑源程序__、__汇编___、__连接___、__调试___。
二、选择题
1. 实验时,在DEBUG下如果要运行0100:4360段开始的一段程序用的命令为____C____。
A) D=0100:4360 B) A=0100:4360 C) G=0100:4360 D) Q=0100:4360
2. 汇编实验时要显示2100H:45B6H段开始的一段程序的反汇编命令用_____C____。
A) E 2100:45B6 B) F 2100:45B6 C) U 2100:45B6 D) N 2100:45B6
3. 在做汇编语言实验时,有时需要使用调试工具DEBUG,在DEBUG中,如果要修改AL寄存器中的内容,需要使用的命令是__________A________。
A) R AX B) R AL C) E AX D) E AL
三、问答题
1. 请你设计一个实验项目,在实验箱上完成,具体要求是:在某个键按下时,发光二极管闪烁(亮一段时间,熄灭一段时间),而该键抬起来时,发光二极管一直点亮。写出实验步骤和具体使用的实验箱资源等。
答:采用8255做输入输出接口,将PB0连接按键,PA0连接发光二极管。编写程序实现上述功能。8255初始化为方式0,A口做输出,B口做输入,从B口读入数据判断按键是否按下,进而控制发光二极管的状态。
2. 在我们做硬件中断实验时,经常在中断服务程序中使用这样两条指令
MOV AL,20H
OUT 20H,AL
请问这两条指令的功能是什么?
答:发出中断结束命令,通知中断控制器8259将中断服务寄存器ISR中的相应位清除。
3. 在我们做硬件中断实验时,在主程序中经常使用如下三条指令
IN AL,21H
AND AL,7FH
OUT 21H,AL
请问这三条指令的功能是什么?
答:设置中断屏蔽字,在不改变其他引脚的中断屏蔽状态的情况下,将8259的中断请求引脚IR7允许中断。
答:不能完成,因为0000:0000H是中断向量表,而实验系统本身有许多工作是用中断完成的,如果你改变了中断向量表,则实验箱的监控程序将无法工作,更不用说调试软硬件了,所以实验也就无法完成了。
5. 写出做微机原理硬件实验的具体步骤。
答:硬件实验:取出实验箱,连接好串行通信电缆和实验箱电源,根据实验内容,在实验箱中连接好设计用的电路,将实验箱电源打开,打开计算机电源启动计算机,启动实验集成环境,编制输入实验用程序,汇编程序、连接程序、将程序装载如实验箱,调试程序的运行并记录实验箱内实验指示部件的状态。
按与启动实验相反的次序,关闭各个实验部件,将实验室内实验所使用的物品放归原处,清洁、整理实验室。对实验结果进行分析,写出实验报告。
6. 简述DEBUG中A、R、D、Q、G命令的功能。
一、判断题
1. 我们做软件实验时用MASM对编好的程序进行汇编。 ( 对 )
2. 在我们做微机原理硬件实验时,实验程序是由实验箱上的CPU执行的。( 对 )
3. 在做微机原理硬件实验时,实验程序是由通用计算机PC的CPU运行的。( 错 )
二、简答题
简述DEBUG中A、R、D、Q、G命令的功能。
笔记链接:
链接:https://pan.baidu.com/s/1XIuTgILzjAf3ulNtFBg2ig
提取码:bvat