第二章 Intel 8086/8088微处理器
12.在8086/8088系统中怎样用16寄存器实现对20位物理地址存贮单元寻址?
13.什么是逻辑地址?什么是物理地址?有一个由20个字组成的数据区,其起始地址为610AH:1CE7H。试写出该数据区首末单元的的实际地址PA
逻辑地址由两个16 位的部分即段基址和偏移量组成,一般在程序中出现的地址 都表示为逻辑地址形式;物理地址是一个20 位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上。
14.指出 8086/8088系统中8284A、8282/8283、8286/8287,、8288几个芯片的作用
简述8086系统中8284A时钟发生器、8282/8283地址锁存器、8286/8287总线收发器、8288总线控制器的作用
答:8284A时钟发生器提供一个频率固定的时钟脉冲信号。
8282/8283地址锁存器:对地址等需要锁存的信号进行锁存。
8286/8287总线收发器:用来对数据信号进行驱动和数据收发。
8288总线控制器:控制外部总线的操作,替代CPU的部分总线控制器功能,产生并发送总线控制信号,提供总线控制的能力。
15.8086/8088寻址IO端口时,使用多少地址总线?最多可访问()个字节端口?在IBM PC/XT系统中实际使用多少条地址线对I/O端口进行寻址?
16;64k;10;
8086中,CPU实际利用哪几条地址线来访问I/O端口?最多能访问多少个端口?
访问内存时,地址为A0-A19,共20位,寻址能力为1MB;
访问I/O时,地址为A0-A15,共16位。此时A16-A19为 0。 ____
16.在8086/8088中断响应过程中,CPU向8259A发出的两个INTA 信号分别起什么作用?
当8259A接收到第一个/INTA有效的负脉冲后,将被响应的中断源置入ISR(正在服务寄存器)的对应位,即ISR对应位置1,同时把IRR(中断请求寄存器)的对应位清0;
当8259A接收到第二个/INTA有效的负脉冲后,就将其中断类型号送入数据总线。
8086CPU使用()根地址线访问I/O端口,最多可访问()个字节端口,使用()根地址线访问存储单元,最多可以访问()个字节单元。
参考答案:16;64k;20;1M
第三章 Intel 8086/8088的寻址方式和指令系统
4.设CS=1000H,DS=2000H,ES=3000H,SS=4000H,IP=100H,SP=200H,BX=300H,BP=400H,SI=500H,则1.下一条带执行指令的物理地址为多少? 当前栈顶的物理地址为多少? 3.[BX]代表的存储单元的物理地址为多少?4…[BP]代表的 存储单元的物理地址为多少?5.ES:[BX+SI]代表的存储单元的物理地址为多少?
1.下一条要执行指令的物理地址为:1000H10H+100H=10100H
2,栈顶物理地址=SS10H+SP=40200H;
3.[BX]代表的存储单元的物理地址=DS10H+BX=20300H;
4.[BP]代表的存储单元的物理地址=SS10H+BP=40400H;
5.ES:[BX+SI]代表的存储单元的物理地址=ES*10H+BX+SI=30800H
5.试根据以下要求,分别写出相应的汇编语言指令。
- 用寄存器BX和SI作为基址变址寻址方式把存储器中的一个字送到DX寄存器。
- )以寄存器 BX 和偏移量 VALUE 作为寄存器相对寻址方式把存储器中的一个字和 AX 相加,把结果送回到那个字单元。
- 将BH的高四位与低四位互换。
- 测试bx的第6,7,8,12,13位是否同时为0
- 将存放了0到9的数值的DL寄存器中的内容转化为相应的‘0’到‘9’的字符。**
解答:1.MOV DX , [BX][SI]
2. ADD VALUE[BX],AX
3. MOV CL,4
ROR BH,CL;或者ROL BH,CL;
4. TEST BX,31C0H;0011 0001 1100 0000B
5. ADD DL,30H ;或者OR DL,30H
6.写出清除bx寄存器的多种方法并比较。(要求单指令实现)
7.分别用存储器的5种寻址方式实现将以VAR为首址的第3个字(注意:从第0个),送AX的指令序列。
8.指出下列指令错误的原因:
1)MOV CL,300 ;300超过字节数据表示范围
9.试着不计较以下几条指令的功能。
第四章MASM汇编语言基础
6.指出下列每一小题中的伪指令表达的操作哪些是错误的?错误在哪里?
(1)DATA DB 375
1个字节最多能够表示256
(2)SEGMENT DATA
…
ENDS DATA
书写格式错误
DATA SEGMENT
DATA ENDS
(3)COUNT EQU 100
COUNT EQU 10
不可以用EQU给一个变量重复赋值
(4)MAIN PROC
…
END
过程结束标志,应该有个MAIN
(5)ARRAY DW 10 DUP(?)
…
JMP ARRAY
ARRAY是变量,JMP不能跳到ARRAY处
第五章 汇编程序设计
3、编程实现两个字节变量相乘送字变量的程序。
答:DATA SEGME
4、编程实现从键盘接收两位十六进制数并将其转化为等值的十进制数显示出来(如输入7CH=124,要求至少设计一个子程序)
5、编程实现三个变量值的排序(分别用无符号数和有符号数处理)。
答:实现A、B、C三个变量从小到大排序的程序如下。
DATA SEGMENT
A DB l2H
B DB 34H
C DB 23H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AL,A
CMP AL,B
JBE NEXT1 ;无符号,有符号用JLE
XCHG AL,B
MOV A,AL
NEXT1: CMP AL,C
JBE NEXT2 ;无符号,有符号用JLE
XCHG AL,C
MOV A,AL
NEXT2: MOV AL,B
CMP AL,C
JBE NEXT3 ;无符号,有符号用JLE
XCHG AL,C
MOV B,AL
NEXT3: MOV AH, 4CH
INT 21H
CODE ENDS
END START
6、编程实现任意个有符号字节数据之和(和要求用字变量存放)。
答:DATA&
7,编程实现从VAR带符号数据区中找出最大数。
DATA SEGMENT
VAR DB -2,2,1,3,4,5,6,9
MAX DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEGIN: MOV AX,CODE
MOV DS,AX
MOV CX,MAX-VAR
LEA BX,VAR
MOV AL,[BX]
LOP: INC BX
CMP AL,[BX]
JA A1
MOV AL,[BX]
A1: LOOP LOP
MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
第六章 总线技术与I/O接口基础、
1.什么是总线?微型计算机的总线通常分为哪几类?
5.RS-232C总线的逻辑电平是如何定义的?它与TTL电平之间如何转换?
11.CPU和外设之间传送数据的方式有哪三种?试着比较他们各自的优缺点和适合场合。
CPU与外设之间的数据传输有以下三种方式:程序方式、中断方式、DMA方式。
其中程序方式又可分为无条件传送方式和条件传送方式两种方式。在CPU外设传送数据不太频繁的情况下一般采用无条件传送方式。
在CPU用于传输数据的时间较长且外设数目不多时采用条件传送方式。在实时系统以及多个外设的系统中,为了提高CPU的效率和使系统具有实时性能,采用中断传送方式。
如I/O设备的数据传输效率较高,那么CPU和这样的外设进行数据传输是,即使尽量压缩程序查询方式和中断方式中的非数据传输时间,也仍然不能满足要求。
这是因为在这两种方式下,还存在另外一个影响速度的原因,即它们都是按字节或字来进行传输的。为了解决这个问题,实现按数据块传输,就需要改变传输方式,这就是直接存储器传输方式,即DMA方式。
12.I/O端口的编址方式有那两种?它们分别有什么缺点?IBM, PC/XT 中 I/O端口采用哪种编址方式?
1.独立编址(专用的I/O端口编址)----存储器和I/O端口在两个独立的地址空间中
(1)优点:I/O端口的地址码较短,译码电路简单,存储器同I/O端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制结构相互独立,可以分别设计
(2)缺点:需要有专用的I/O指令,程序设计的灵活性较差
2.统一编址(存储器映像编址)----存储器和I/O端口共用统一的地址空间,当一个地址空间分配给I/O端口以后,存储器就不能再占有这一部分的地址空间
(1)优点:不需要专用的I/O指令,任何对存储器数据进行操作的指令都可用于I/O端口的数据操作,程序设计比较灵活;由于I/O端口的地址空间是内存空间的一部分,这样,I/O端口的地址空间可大可小,从而使外设的数量几乎不受限制
(2)缺点:I/O端口占用了内存空间的一部分,影响了系统的内存容量;访问I/O端口也要同访问内存一样,由于内存地址较长,导致执行时间增加
微机原理
3. IBMPC及其兼容机主要使用独立编址方式,采用了一个独立的I/O地址空间对控制设备中的寄存器进行寻址和访问
第七章 并行接口与串行接口 、
2.可编程并行接口芯片8255A有哪些控制字?它们的格式及各位含义是怎样规定的?
4.某8086系统中使用一片8255A,其端口地址为90H,92H,94H,96H,欲使A口工作方式在方式1,输入,B口工作方式0,输出,下C口工作方式0.输出。试对8255A初始化编程。
https://www.docin.com/p-863216861.html
5.用端口C置位/复位控制字使8255A的C5为高电平,C1为低电平。写出8086的指令语句。
6.按下述要求用所提供的简单外设和接口芯片 设计一个简单的微机应用系统。简单外设:发光二极管8只,拨动开关1个,8255A芯片,8088CPU。设计要求
第十章 定时/计数器及接口
5.8253内部有几个独立的定时/计数器?是多少位的?它们的CLK端和GATE端的作用分别是什么?
有3个独立的16 减法计数器,CLK0-2:计数器时钟,输入。用于输入定时脉冲或脉冲信号。GATE0-12:门控信号,输入,用于控制计数器的启动计数和停止计数的操作。
6.现用8253的通道0对外界事件进行计数,要求每计到100时产生一个中断请求信号,分别是什么?
- 画出该8253的外部硬件链接图;
- 对该8253进行初始化。
https://wenku.baidu.com/view/0d030224f424ccbff121dd36a32d7375a417c6cc.html
https://wenku.baidu.com/view/6fb03a44370cba1aa8114431b90d6c85ed3a8802.html.