一、选择题:
1、(1101001.101)2= D
A (69.625)10
B (1101001.101) BCD
C (69.5)16
D (1.0)BCD
2、若X=-1110110,则[X]原= (1)B,[X]补= (2)C, [-X/2]补= D(3)。
(1) A 01110110 B C D
(2) A 01110110 B 00001010 C D
(3) A 00010101 B C D 00111011
3、已知CS=1000H ,DS=4000H ,ES=2000H ,BX=0250H,SI=0382H,8086/8088指
令MOV AX,[BX+SI]中源操作数的寻址方式是D(1),目标操作数的寻址方式是(2)A。CPU执行该指令时,应从内存中物理地址为B(3)的字单元中取出数据。(1) A 寄存器间址方式 B 基址寻址方式 C 变址寻址方式D 基址加变址寻址方式
(2)A 寄存器寻址方式 B 寄存器间址方式C 基址寻址方式 D 变址寻址方式
(3) A 205D2H B 405D2H C 20632H D 40632 H
4、若8088 CPU 的寄存器AL和BL中分别存放了9AH和7DH 两个数,当CPU执行
ADD AL, BL 指令操作后,状态寄存器FR的标志位CF、OF、ZF、SF分别为C(1),AL和BL的内容分别为(2)D。
(1)A 0、0、0、0 B 1、0、1、0 C 1、0、0、0 D 0、1、1、0 (2)A 117H和7DH B 117H和9AH C 17H和9AH D 17H和7DH
5、8253外接频率为1MHZ的时钟信号,若控制字设置为74H,则8253将工作
于D(1),当写入计数器的16位计数初值为7000H时,可定时的时间为B(2)。
(1)A 计数通道0的方式1,按二进制计数B 计数通道0的方式2,按二进制计数
C 计数通道1的方式2,按BCD码计数
D 计数通道1的方式2,按二进制计数(2)
A 7ms
B 28.672ms
C 70msD286.72ms
8253 控制字
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
0 0 通道0 0 0 计数器锁存0 0 0 方式0 0 二进制计数
0 1 通道1 0 1 读/写低字节0 0 1方式1 1 BCD码计数
1 0 通道
2 1 0 读/写高字节0 1 0方式2
1 1 先读/写低字节0 1 1方式3
后读/写高字节 1 0 0方式4
1 0 1方式5
6、某80X86微处理器有16条数据线,24条地址线,由该处理器组成的微机系统的最大
内存容量为(1)D,该微机被称为(2)B。
(1) A 216×2字节 B 216×1字节C224×16位D224×8位
(2) A 8位机 B 16位机 C 24位机 D 32位机
7、在8086/8088的中断中,只有(1)B需要外部硬件提供中断类型码,中断类型码是在(2)C通过(3)A送给CPU的。
(1)A 外部中断 B 可屏蔽中断 C 非屏蔽中断 D 内部中断
(2)A 中断请求周期 B 第一个中断响应周期 C 第二个中断响应周期 D存储器读周期(3) A 数据总线 B 地址总线 C 控制总线 DA+B
8、下图是一微机系统采用一片8259A构成的中断系统,若8259A设置为全嵌套、非缓冲、非自动中断结束等方式,并ICW2初始化设置为28H,当定时器和串口同时产生中断请求时,则CPU响应中断将从(1)C 存储单元中取得中断服务程序入口地址。在中断服务结束前(IRET指令前)必须将中断结束命令写入8259A的C(2)。
(1) AB2H-B5H B 112H-115H C A0H-A3H D A0-A7H
(2) A ICW1 B OCW1 C OCW2 D OCW3
二、填空题:
1、8086CPU 有20条地址线,以8086 CPU为核心的微型机的存储器容量最大可
达1MB。整个存储器可分为奇地址存储体和偶地址存储体,
它们的容量均为512KB。
2、8086/8088系统的栈区设置在堆栈段中。一个栈区的最大容量可达64KB,若CS=2000H,DS= 2000H,SS=1500H,SP= 1500H,AX= 0F68H,当执行指令 PUSH AX 后,其栈顶的物理地址为164FEH,其单元中内容为68H。
3、8086/8088系统的存储器地址有逻辑地址和物理地址,逻辑地址是指段基地址和
偏移地址,物理地址由20 位二进制数组成,它的计算公式为 PA= 段基地址*16 + 偏移地址。
4、一般CPU和外设之间传送数据的方式有无条件传送、查询传送、中断传送和直接数据通道传送四种,CPU访问外设接口可有两种编址方式:端口独立编址方式和与
存储器统一编址;一般8086/8088 系统采用端口独立编址方式,当将数据写入外设接口
时应采用OUT指令。
5、中断是的过程。8086/8088中断系统最多允许有256个中断源,在内存物理地址为00000H
—00FFFH内建立了一个中断向量表,所谓中断向量是指中断服务程序入口地址。
6、若CS=1000H, SS=2000H, DS=ES=3000H, BX=0500H, BP=0200H,IP=1500H ,则CPU要取的当前指令在代码段逻辑段中,其物理地址为11500H,该逻辑段的长度为64KB 。
7、串行通信接口的作用是实现串行到并行和并行到串行的转换。若一个串行接口设置为7位数据位、1位终止位和无校验位的异步通信传送方式,当传送7位二进制数5BH时,
串口发送的帧格式为0。
三、分析以下以8088为 CPU的最小模式系统,回答以下问题。
1、简要说明系统中各组成部分的作用。(6分)
2、若系统要求配置10KB的存储器,,其中4KBROM类存储器和6KBRAM 类存储器,ROM的地址从18000H开始,RAM地址在ROM后连续。如果采用4KBROM芯片和 2KBRAM芯片,试写出各芯片的地址范围。(6分)
1、系统由8088CPU、存储器、I/O接口、8282地址锁存器、8284时钟发生器、8286总线驱动器等组成。
8088CPU 是系统控制指挥中心,所有指令的执行、读写存储器和输入输出接口、系统的功能操作都是由CPU完成的;存储器存放CPU执行的指令程序和系统运行过程中的数据;I/O接口连接CPU和外部输入输出设备,保证它们之间数据传送;8282地址锁存器把8088CPU AD0-AD7、AD16/S3-AD19/S6 分时复用线输出的地址信号锁存;8284主要为8088CPU提供工作时钟信号;8286总线驱动器增强cpu数据线的负载能力。
2、采用1片ROM芯片和3片RAM芯片。
ROM芯片地址范围为: 18000H - 18FFFH
#1 RAM 芯片地址范围为: 19000H – 197FFH
#2 RAM 芯片地址范围为:19800H – 19FFFH
#3 RAM 芯片地址范围为:1A000H – 1A7FFH
四、以下为8088系统中以8255A 为输入设备和输出设备的查询方式接口电路的部分硬件图。(18分)
1、试述8088CPU和输入设备进行数据传送的工作过程。(6分)
输入设备要将数据传送给CPU时,先将数据输出给8255A的PA0-PA7,然后通过ACK 端输出脉冲信号将数据锁存于锁存器,同时将触发器置1。
而CPU要不断查询设备的状态,执行读8255A C口操作,判断从C口读入数据的D1位是1还是0,若为0表示设备未准备好,则等待后再查询;若为1表示设备已将数据送出, CPU 从8255A的 A口读入数据,然后通过PC 6输出负脉冲将状态触发器清0。之后重复以上的操作,周而复始。
2、以下是8088CPU将存于以BLOCK为首址的内存单元区域中100个数据依次传送给输出设备的程序段,请在划线处填入内容。
BLOCK DB a1,a2,……a100
COUNT EQU $-BLOCK
START: LEA SI, BLOCK ;置数据单元首址指针
MOV CX , COUNT
MOV DX, 383H;8255A初始化设置
MOV AL, 91H
OUT DX, AL
MOV DX, 383H;置PC7为低电平
MOV AL, 0EH
OUT DX, AL
AGAIN: MOV DX, 382H;查询输出设备状态
IN AL, DX
TEST AL, 04H
JNZ AGAIN
MOV AL, [SI] ;取数据传送给输出设备
INC SI
MOV DX, 381H
OUT DX, AL
MOV DX, 383H ;置PC7产生高电平
MOV AL, 0FH
OUT DX, AL
NOP
NOP
MOV AL, 0EH;置PC7为低电平
OUT DX, AL
LOOP AGAIN
RET
8255A方式控制字 8255A C口复位/置位控制字
1 D6 D5 D4 D3 D
2 D1 D0 0 0 0 0 D
3 D2 D1 D0
A口方式
00 方式0 A口C口下半口
01 方式1 0 输出0 输出PC0 0复位
1×方式2 1 输入 1 输入001 PC1 1 置位
B口010 PC2
C口上半口B口方式0 输出∶∶
0 输出0 方式0 1 输入111 PC7
1 输入 1 方式1
五、分析以下汇编语言源程序,根据要求在划线处填上适当内容: DATA SEGMENT AT 2000H
ORG 0100H
TABLE DB 66,76,87,89, 96, 79, 64, 62, 57, 49, 85, 75, 60, 77, 58 COUNT EQU $-TABLE
NUM1 DB0
NUM2 DB0
NUM3 DB 0
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
TOP DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA, SS:STACK
MAIN : MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET TABLE
MOV CX,COUNT
LOP1: MOV AL, [SI]
CMP AL, 85
JA HIGH
CMP AL, 70
JBE LOW
INC NUM2
JMP NEXT
HIGH: INC NUM1
JMP NEXT
LOW: INC NUM3
NEXT: INC SI
LOOP LOP1
MOV AH, 4CH
INT 21H
CODE ENDS
END MAIN
(1) 画出数据段中数据定义语句实现的内存分配图。
(2) 执行程序后,结果为:
OFFSET TABLE = 0100H,SEGMENT NUM2 = 2000H ,
AL= 58 (3AH) , DS= 2000H , CX= 0 ,
(20106H)= 64 (40H) , (2010FH)= 03H ,(20111H)= 07H ,
六、(10分)程序设计:
在以BLOCK为首址的内存区域中,存放着一组无符号的字节数据,数据个数存于COUNT
单元中,试编制程序段从中找出最大数和最小数,并分别存放于MAX和MIN单元中。
程序段为:
BLOCK DB a1,a2, ┉ an
COUNT DB N
MAX DB 0
MIN DB FFH
LEA SI, BLOCK
MOV CX, COUNT
AGAIN: MOV AL, [SI]
CMP AL, MAX
JBE NEXT1
MOV MAX, AL
NEXT1: CMP AL, MIN
JAE NEXT2
MOV MIN, AL
NEXT2: INC SI
LOOP AGAIN
HLT
综合练习二
一、选择题:
1、(78.625)10= C
A (116.A)16
B (1111000. 101)2
C (4E.A)16
D (01111000.1010)BCD
2、若X=-0110101,Y=+1011010,则 [X]补=C(1), [Y]补=B(2) ,
[-Y/2]补=D(3)。
(1)A B 00110101 C D
(2)A B 01011010 C D 00100110
(3) A 00101101 B C D
3、若8088 CPU的寄存器AL和BL中分别存放了两个单字节带符号数A9H和6FH,若
要判别两数的大小,应先做减法操作,然后根据标志位D(1)进行判别。当CPU执
行比较指令CMP AL, BL 后,标志位OF和SF分别为C(2)。
(1) A CF B SF C OF D SF和OF
(2) A 0和0 B 0和1 C 1和0 D 1和1
4、已知CS=1000H ,DS=2000H ,ES=3000H ,BX=0200H,SI=0300H,8086/8088CPU 执行指令MOV AX,[BX+SI],应从A(1)逻辑段中取出源操作数,该操作数所在单元的逻辑地址为C(2),执行该指令时,CPU的20根地址线上出现的信号为B(3)。
(1)A 数据段 B 代码段 C 堆栈段 D 附加段
(2)A 1000H∶0500H B 3000H∶0500H C 2000H∶0500H
D 20500H
(3)A 10500H B 20500H C 30500H D 00500H
5、8253外接频率为1MHZ的时钟信号,若控制字设置为35H,则8253将工作于(1)C,可定时的最大时间为B(2),应写入计数器的16位计数初值是(3)A。
(1) A 计数通道0的方式1,按二进制计数 B 计数通道0的方式2,按二进制计数
C 计数通道0的方式2,按BCD码计数
D 计数通道1的方式2,按BCD码计数(2)
A 9.999ms
B 10ms
C 65.535ms
D 65.536ms
(3) A 0B 1 C 0100H D FFFFH
8253 控制字
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
0 0 通道0 0 0 计数器锁存0 0 0 方式0 0 二进制计数
0 1 通道1 0 1 读/写低字节0 0 1方式1 1 BCD码计数
1 0 通道
2 1 0 读/写高字节0 1 0方式2
1 1 先读/写低字节0 1 1方式3
后读/写高字节 1 0 0方式4
1 0 1方式5
6、典型的8088单CPU模式微机系统由C (1) 组成,8088CPU主要由D(2)
组成。
(1) A 运算器、控制器、存储器及I/O设备;
B 8088CPU、时钟发生器、地址锁存器、存储器、总线
C 8088CPU、时钟发生器、地址锁存器、总线驱动器、存储器、I/O设备及总线
D 8088CPU、运算器、控制器、时钟发生器、地址锁存器、总线驱动器、存储器、
I/O设备及总线
(2) A 通用寄存器、专用寄存器和ALU B ALU、FR及8个16位通用寄存器
C CS、ES、SS、DS及IP、指令队列
D EU和BIU
7、一微机系统采用一片8259A 构成中断系统,若8259A设置为普通全嵌套、非缓冲、
非自动中断结束等方式,并将ICW2设置为18H,系统可有B (1) 级中断优先权,
各中断源的优先权是A(2),IR2引脚上中断源的中断类型码为C(3),该中断源的中断服务程序入口地址应存于中断向量表中首址为B(4)的4个单元内。(1)A 2 B 8 C 15 D 64
(2)A 固定不变,IR0优先权最高,IR7优先权最低
B 固定不变,IR7优先权最高,IR0优先权最低
C 固定不变,可设置IRi优先权最高
D 自动循环,
(3)A 18H B 19H C 1AH D 20H
(4)A 60H B 68H C 6AH D 80H
二、填空题:
1、某80X86微处理器有20根地址线和16根数据线,,由该CPU构成的微机系统的最大存储器容量可达1MB,内存首末地址分别为00000H和FFFFFH,该微机系统被称为16位微机。
2、若8088系统中,CS=1000H,DS= 2000H,SS=3000H,SP= 0100H,AX=1234H,BX=5678H 该系统当前堆栈段的物理地址范围为30000H—3FFFFH,栈顶物理地址为30100H,当执行PUSH AX指令后,AX= 1234H,SP= 00FEH 。
3、若CS=2000H, SS=3000H, DS=4000H, 一个字数据F69BH存放于数据段中偏移地址为1C50H开始的单元中,其中低字节9BH存放单元的物理地址为41C50H,高字节F6H 存放单元的物理地址为41C51H。
4、I/O接口是连接CPU和输入、输出外设进行数据交换的硬件电路,I/O接口的主要功能有实现电器特性的匹配、对输入输出数据进行缓冲、隔离等。通常一个外设接口电路包括3类端口:数据端口、状态端口和控制端口。一般外设的查询方式接口电路应包括数据端口和状态端口。
5、中断源是指引起中断的原因或发出中断申请的来源,8086/8088的中断系统可处理256 个中断源,它们分为硬件中断(外部中断)和软件中断(内部中断)两种类型,这些中断源的中断类型码的范围为00H—FFH。
6、8086/8088CPU响应可屏蔽中断的条件是INTR引脚有中断请求有效信号、CPU 开中断(IF=1)和执行当前指令完毕。CPU响应中断后,将在第二个中断响应周期内从数
据线上获取中断类型码。
三、采用以下给出的存储器芯片为8088 CPU设计存储器系统,根据要求回
答以下问题。
U1 U2
1、请说出图中给出U1和U2两种存贮器芯片的类型、容量、特点及其作用。(6分)
2、若系统要求配置16KB 的存储器,其中8KB 的ROM 存储器和8KB 的RAM ,ROM 存储器首地址为22000H ,RAM 存储器地址在ROM 后连续,如采用以上给出的U1、U2芯片,各需要多少片? 请写出各片芯片的地址范围。(6分)
1、U1为ROM 类型存储器芯片,其容量为4KB ,一般在系统运行中只能读出U1中单元的内容,不能将内容写入U1的单元中,但掉电后内容不会丢失。U1 的作用是存放用户程序或固定不变的参数、数据等。
U2为RAM 类型存储器芯片,其容量为2KB ,一般在系统运行中能读取U2中单元的内容,也能将内容写入U2的单元中,但掉电后内容会丢失。U2的作用是存放系统运行中输入/输出的数据、中间结果等。
2、采用2片U1芯片和4片U2芯片。
#1 U1芯片地址范围为: 22000H – 22FFFH ;#2 U1芯片地址范围为: 23000H – 23FFFH #1 U2芯片地址范围为: 24000H – 247FFH ;#2 U2芯片地址范围为: 24800H – 24FFFH #3 U2芯片地址范围为: 25000H – 257FFH ;#4 U2芯片地址范围为: 25800H – 25FFFH
四、以下为8088系统中以8255A 为输入设备和输出设备的查询方式接口电路的部分硬件图。
1、试述8088CPU 和输出设备进行数据传送的工作过程。(6分)
输出设备根据STB 引脚状态,若为1,则处理数据,处理完毕后通过ACK 发出一个负脉冲将状态触发器清零;若STB 引脚状态为0,则等待。
CPU 要不断查询设备的状态,执行读8255A C 口操作,判断从C 口读入数据的D2位是1还是0,若为1表示输出设备未准备好,则等待后再查询;若为0表示设备已处理数据完毕, CPU 可将数据写入8255A 的 B 口,然后通过PC 7输出正脉冲将状态触发器至1。之后重复以上的操作,周而复始。
2、以下是8088CPU 从输入设备依次读取100个数据并存于以BUF 为首址的内存单元区域中的程序段,请在划线处填入内容。(每格1分 ,共12分)
BUF DB 100 DUP (?)
COUNT EQU $-BUF
START: LEA SI, BUF ;置数据单元首址指针
MOV CX , COUNT
MOV DX,383H ;8255A 初始化设置
MOV AL, 91H
OUT DX, AL
LOP: MOV DX, 383H ;置PC6为低电平
MOV AL, 0CH
OUT DX, AL
A0 ┅┅ A11 CE OE D0 ┅ D7 A0 ┅┅ A10 OE CE D0 ┅ D7 WE
NOP
NOP
MOV AL, 0DH;置PC6为高电平
OUT DX, AL
AGAIN: MOV DX, 382H;查询输入设备状态
IN AL, DX
TEST AL, 02H
JZ AGAIN
MOV DX, 380H;从输入设备读取数据
IN AL, DX
MOV [SI], AL ;将数据存入内存单元
INC SI
LOOP LOP;控制读取100个数据
RET
8255A方式控制字 8255A C口复位/置位控制字
1 D6 D5 D4 D3 D
2 D1 D0 0 0 0 0 D
3 D2 D1 D0 A口方式
00 方式0 A口C口下半口
01 方式1 0 输出0 输出PC0 0复位1×方式2 1 输入 1 输入001 PC1 1 置位
B口010 PC2
C口上半口B口方式0 输出∶∶
0 输出0 方式0 1 输入111 PC7
1 输入 1 方式1
五、分析以下汇编语言源程序,根据要求在划线处填上适当内容:
DATA SEGMENT AT 2000H
BLOCK DB 0,0D8H,78H,89H,0E3H,65H,34H,0FFH,1FH,0ABH
COUNT EQU $-BLOCK
MAX DB0
MIN DB0
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
TOP DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
MAIN PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SI,OFFSET BLCOK
MOV DI,OFFSET MIN
MOV CX,COUNT
CLD
LODSB
DEC CX
LOOP1: CMP AL,[SI]
JLE NEXT
MOV AL,[SI]
NEXT: INC SI
LOOP LOOP1
MOV [DI],AL
RET
MAIN ENDP
CODE ENDS
END MAIN
(1) 画出数据段中数据定义语句实现的内存分配图。
(2) 执行程序后,结果为:(每空格1分,共8分)
OFFSET BLOCK = 0000H,SEGMENT MAX = 2000H ,
AL= 89H , DS=2000H , CX= 0000H ,
(20005H)= 65H , (2000AH)= 00H ,(2000BH)= 89H ,
六、程序设计:
从STRING开始的内存单元中存放了一个字符串,该字符串以回车键(ASC码为0DH)结束,请编写程序段统计字符串的实际长度(不包括回车键),并将结果存于CH中。程序段为:
STRING DB ' X NGHJ…… T ',0DH
LEA SI , STRING
MOV CH , 0
AGAIN: MOV AL , [SI]
CMP AL , 0DH ;回车ASC码
JZ EXIT
INC CH
INC SI
JMP AGAIN
EXIT: HLT