资源描述
-/
一、回答问题
问题1:8086的存储器为什么要进行分段?
答:8086的地址总线AB有20根地址线,意味着存储器每个存储单元的地址由20位二进制数构成。而8086内部用来存放地址信息的寄存器只有16位,出现了矛盾,为解决这个问题,8086采取了存储器分段的方式。由于16位二进制地址可寻址范围是64KB而1MB的存储空间可以在逻辑上分为16个段每段大小是64KB,因此可以用段地址(也称为段基址)给每个段编号,每个段内的地址单元用偏移地址编号。
问题2:什么是物理地址?什么是逻辑地址?请说明二者的关系。
答:物理地址共有20位,对应一个存储单元的实际地址,物理地址与存储单元是一一对应关系。逻辑地址则由段地址和偏移地址组成是指令中引用的形式地址。一个逻辑地址只能对应一个物理地址,而一个物理地址可以对应多个逻辑地址。(2000:0202H、2010:0102H、……)。段地址——16位,即存储单元所在逻辑段的编号,通常存放在对应的段寄存器中,偏移地址为16位,存储单元在逻辑段内相对于该段第一个存储单元的距离。
20位物理地址 = 段地址16 + 偏移地址取指令操作CS 16 + IP堆栈操作SS 16 + SP 数据存储器操作DS/ES 16 + 偏移地址
问题3:请说明段寄存器与提供偏移地址寄存器的对应关系。
答:CS:IP对应代码段,DS:SI(或DI或BX)对应数据段,SS:SP(或BP)对应堆栈段。
问题4:8086的有最大和最小两种工作模式,请说明两种工作模式下的特点,并说明如何进行工作模式的设置。
答:8086微处理器有最小模式和最大模式。最小模式为单处理器模式,最大模式为多处理器模式;最小工作方式下总线控制信号都直接由8086产生,系统中总线控制逻辑电路被减小到最小,这种方式适合于较小规模系统的应用。最大工作方式用在需要利用8086CPU构成中等或较大系统时。由MN/MX的电平高低进行工作模式的设置。(+5V最小、接地最大)
问题5:从功能上看,CPU可以分为哪两部分?各负责什么工作?有什么优点?
答:从功能上看8086CPU可分为两部分:1)总线接口部件BIU ——负责指令和操作数读及结果写。2)执行部件EU——负责指令的执行。两个部件独立地进行操作,即并行工作,使得取指令、分析指令和执行指令可以并行操作,提高了CPU的工作效率,加快了指令的执行速度。
问题6:微型计算机由哪几部分组成?简述各部分功能。
答:微型计算机系统主要由微处理器(CPU)、存储器、I/O接口和总线组成。
其中微处理器为微型计算机的核心,主要完成取指令、指令译码、简单的算术逻辑运算及程序控制等;存储器主要用来存储程序和数据;I/O接口用于外设与CPU之间的信息协调;总线是CPU与存储器和I/O接口之间传送数据信息、地址信息和控制信息的通道。
问题7:什么是指令?什么是指令系统?请说明指令系统在微机系统中重要性。
答:指令就是计算机执行某种操作的命令,指令系统是该计算机所以指令的集合,它是综合反映计算机性能的重要因素,不仅直接影响机器的硬件结构,而且影响机器的系统软件及机器的适用范围。
问题8:什么是数据的寻址方式?8086/8088的微机系统中有哪些数据寻址方式?
答:所谓数据的寻址方式就是寻找指令中所需操作数的方法。寻址方式有:隐含寻址,立即数寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。
问题9:什么是中断类型码、中断向量、中断向量表?在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系?
答:处理机可处理的每种中断的编号为中断类型码。中断向量是指中断处理程序的入口地址,由处理机自动寻址。中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。在8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。
问题10:什么叫中断?请叙述中断向量号(中断类型)、中断向量表和中断服务程序入口地址三者的关系。
答:中断——由请求中断的外部设备口向CPU提供中断向量,CPU根据这个向量到向量表中转换表跳转中查找中断服务程序入口地址,而转入不同的中断处理服务程序入口。
8088/8086可以处理256种向量中断,对每种中断都指定一个中断向量号代码,从0~255每一种中断向量号代码都可以与一个中断服务程序相对应。
中断服务程序放在存储区域内,而中断服务程序的入口地址存在内存储器中断向量表内,当CPU处理中断时,就需要指向中断服务程序入口地址,中断向量表是中断向量号与这相应的中断服务程序入口地址之间的转换表。中断向量表占用存储器的最低地址区,因为每个中断向量号要占用4个字节单元。
问题8:8259A中断控制器的功能是什么?
答:8259A中断控制器可以接受8个中断请求输入并将它们寄存。对8个请求输入进行优先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。8259A可以对中断请求输入进行屏蔽,阻止对其进行处理。8259A支持多种中断结束方式。8259A与微处理器连接方便,可提供中断请求信号及发送中断类型码。8259A可以进行级连以便形成多于8级输入的中断控制系统。
二、指令改错
错误1:存储器操作数之间不能直接传送
MOV [1000H],[DI] 错
应改为 MOV AX,[DI]
MOV [1000H],AX
错误2:立即数不能直接传送段寄存器
MOV DS,2000H 错
应改为 MOV AX,2000H
错误3:段寄存器之间不能直接传送
MOV ES,DS 错
应改为 MOV BX , DS
MOV ES , BX
错误4:CS、 IP、PSW只可以作为源操作数即不允许给CS、IP、PSW三个寄存器传送数据
MOV CS,AX 错
MOV AX,CS 对
错误5:源操作数和目的操作数的宽度必须相同
MOV AL,050AH 错
MOV AX,050AH 对
错误6:POP、PUSH指令不以字为操作数
POP DL 错
错误7:端口地址8位,超出范围
IN AX ,1234H
三、分析程序
例题1 设初值为AX=1234H,BX=5678H,DX=0ABCDH,则下面一段程序:
MOV CL,4
SHL DX,CL
MOV BL,AH
SHL AX,CL
SHR BL,CL
OR DL,BL
执行后,请问AX=?,BX=?,DX=?
AX=2340H BX=5601H DX=BCD1H
例题2 MOV AX,10
SAL AL,1
MOV BX,AX
MOV CL,2
SAL AL,CL
ADD AX,BX
执行后,AX为?
AX=100
例题3 设初值(AX)=4321H,(DX)=8765H,则
MOV CL,04H
SHL DX,CL
MOV BL,AH
SHL AX,CL
SHR BL,CL
OR DL,BL
上述程序执行后(DX)= ;(AX)=
(DX)=7654H,(AX)=3210H
例题4 假如在程序的括号中分别填入指令:
(1) LOOP L20 (2) LOOPNE L20 (3) LOOPE L20
试说明在三种情况下, 当程序执行完后, AX、BX、CX、DX四个寄存器的内容分别是什么?
CODESG SEGMENT
ASSUME CS:CODESG, DS:CODESG. SS:CODESG
ORG 100H
BEGIN: MOV AX,01
MOV BX,02
MOV DX,03
MOV CX,04
L20: INC AX
ADD BX,AX
SHR DX,1
( )
RET
CODESG ENDS
END BEGIN
答: (1)(AX)= 5 (BX)= 16 (CX)= 0 (DX)= 0
2)(AX)= 2 (BX)= 4 (CX)= 3 (DX)= 1
(3)(AX)= 3 (BX)= 7 (CX)= 2 (DX)= 0
例题5 以下程序实现的功能是什么20H*30H?结果存放在哪里?AX
START: MOV AL, 20H
MOV BL,AL
MOV AL, 30H
MOV CL, AL
MOV AX, 0
NEXT: ADD AL, BL
ADC AH, 0
DEC CL
JNZ NEXT
HLT
例题6:若从NUM开始的存储区存放着ASCII码表示的字符串,指出下列程序的功能。
LEA BX,NUM
MOV CX,100
LP:MOV AL,[BX]
SUB AL,30H
CMP AL,0AH
JC L1
SUB AL,07H
L1:MOV [BX],AL
INC BX
LOOP LP
HLT
四、编程题
例题1 两个32位加数98765432H和8901FA45H分别存放在数据段内2000H单元和2004H单元,编程将两数相加,结果从2100H单元开始存放。
MOV AX,[2000H] ;AX=5432H,被加数低16位
MOV BX,[2002H] ;BX=9876H,被加数高16位
ADD AX,[2004H] ;低16位相加,AX=4E77H
ADC BX,[2006H] ;高16位及低16位的进位相加,BX=2178H
MOV [2100H],AX ;存低16位的和4E77H
MOV [2102H],BX ;存高16位的和2178H
MOV AX,0
ADC AX,0 ;获得最高位的进位
MOV [2104H],AX ;存和的最高位
例题2 计算(V-(X*Y+Z))/X, XYZV均为16位有符号数,要求商存入AX,余数存入DX
MOV AX, X ;X*Y
IMUL Y
MOV CX,AX
MOV BX,DX ;积存入BX,CX
MOV AX,Z
CWD ;Z扩展
ADD CX,AX
ADC BX,DX ;X*Y+Z
MOV AX,V
CWD ;V扩展
SUB AX,CX
SBB DX,BX ;相减
IDIV X ;除以X
例题3 用XLAT指令将BCD码0~9转换成对应的ASCII码,并将ASCII码存入ARRAY中。
例题4 设在内存缓冲区中有一数据块BUF,存放着100名学生某门课程的考试成绩(满分为100分,最低为0分),求出成绩不低于90分以及成绩低于60分的学生个数,并将它们分别存于符号地址为GOOD和FAIL的2个内存单元中。要求画出程序流程框图,编写完整的汇编语言源程序。
DATA SEGMENT
BUF DB 100 DUP (?)
GOOD DB 0
FAIL DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:MOV AX, DATA
MOV DS, AX
MOV BX, OFFSET BUF
MOV CX,100
MOV DX,0
L1: MOV AL, [BX]
CMP AL,90
JB L2
INC DH
JMP L3
L2: CMP AL,60
JAE L3
INC DL
L3: INC BX
LOOP L1
MOV GOOD, DH
MOV FAIL, DL
MOV AH, 4CH
INT 21H
CODE ENDS
END START
五、存储器
例题1 图示为某CPU的最小系统和某存储芯片的框图,已知该CPU共有8位数据总线,最大可以访问1MB的存储空间,其内部结构与8086相同,请回答以下问题:
1、将图中CPU的相关信号线与存储器相连。
2、 要求1#存储器的起始地址为32000H,2#存储器的起始地址为38000H,且各存储单元的地址唯一。根据需要选择合适的门电路与138译码器一起完成译码,画出译码电路图。
3、编写程序片段把1#存储器内容的绝对值按顺序存储到2#存储器。
最小
系统
(1)正确连接CPU相关信号
最小
系统
(2)
1.、地址译码输入连接,译码电路不唯一
2.、存储器片选连接
&
3)程序片段(参考程序,不唯一)
MOV AX,3000H
MOV DS,AX
MOV SI,2000H
MOV DI,8000H
MOV CX,2000H
L1: MOV AL,[SI]
CMP AL,0
JGE L2
NEG AL
L2: MOV [DI],AL
INC SI
INC DI
LOOP L1
例题2
六、综合应用题
例题1. 已知某8088微机系统包括8255、8253两个可编程接口电路。其中8253三个计数器分别工作在不同的方式下,可以为A/D转换器提供可编程的采样频率和采样时间;8255A的PB0可用于检测按键开关的位置,PB7可根据PB0的状态决定是否点亮LED指示灯。设系统所要求有关硬件连线已经全部接好,如图所示。试完成下列各项要求。
(1) 分别列出8255A,8253各个端口的地址编码,其中片选信号,采用图2中的译码地址。
(2) 根据图2所示8255A的A口和B口的连接方式,写出接口初始化程序片段。
(3) 设计一个程序片段,使8255A监测PB0的输入状态,当PB0=1时使LED灯亮。
(1) 8255的口地址码为08H,09H,0AH,0BH,8253的口地址码为0CH,0DH,0EH,0FH
(2) 8255的初始化程序
MOV AL,10000010B
OUT 0BH,AL
(3) 8255检测到当PB0=1时点亮灯的程序片段
IN AL,09H ;读B口状态
K1: TEST 01H ;测试PB0=1否
JZ K1 ;不为1,踏步
MOV AL,00H ;PB0=1,使PA0=0,点亮LED
OUT 08H,AL
例题2 图示为键盘电路,试编写8255初始化程序和键值读取程序,并将键值序号在LED七段数码管显示出来。
DATA SEGMENT ;数据段中存放数字0 ~ 9的LED显示代码
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,203H ;送8255工作方式字:A口方式0输出,
MOV AL,10001000B;C口上半部输入,下半部输出
OUT DX,AL
MOV CX,3 ;准备键扫
MOV AL,0FEH ;送第一行扫描码:PC0=0
MOV BH,-1 ;BH=-1表示第一行无键按下
S_NEXT: MOV DX,202H ;从8255C口下半部送键扫描码
OUT DX,AL
MOV BL,AL
IN AL,DX ;从8255C口上半部读按键状态
AND AL,70H
CMP AL,70H ;(AL)=70H表示无键按下
JNZ DISP ;有键按下,转到显示处理
MOV AL,BL
RCL AL,1
ADD BH,3 ;准备检查第二行(PC1=0)键状态
LOOP S_NEXT
JMP EXIT
DISP: MOV CL,4 ;根据AL值计算键值
SHR AL,CL
NN: INC BH
RCR AL,1
JC NN
MOV AH,0 ;查表取键值显示码
MOV AL,BH
MOV SI,AX
MOV AL,LED[SI]
MOV DX,200H ;从8255A口送显示码,驱动LED显示
OUT DX,AL
EXIT: MOV AX,4C00H ;退出
INT 21H
CODE ENDS
END START
展开阅读全文
相关搜索