计算机原理答案 联系客服

发布时间 : 星期一 文章计算机原理答案更新完毕开始阅读01b24200de80d4d8d15a4fe0

习 题 四

13. 编写程序,求10元素字数组LIST中绝对值最小的数,存入MIN单元。

答: DATA SEGEMNT LIST DW -56, +12, 88, -126, -5, 16, 32, -99, 72, -18 MIN DW ? MINABS DW ?

DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV AX, LIST MOV MIN, AX ;将数组第一个元素假设为绝对值最小的数

MOV MINABS, 32767 ;最小的绝对值假设为32767 LEA SI, LIST MOV CX, 10

AGAIN: MOV AX, [SI]

CMP AX, 0 JGE SKIP1 NEG AX ;求绝对值

SKIP1: CMP AX, MINABS ;绝对值与假设的最小绝对值比较 JGE SKIP2 ;假设的绝对值较小,跳过 MOV MINABS, AX ;保存新的最小绝对值

MOV AX, [SI] ;取出新的绝对值最小的数 MOV MIN, AX ;保留新的绝对值最小的数

SKIP2: ADD SI, 2 LOOP AGAIN

MOV AX, 4C00H

INT 21H CODE ENDS END START

说明:一定要预设最小的绝对值和绝对值最小的数,而且这个绝对值最小的数必须来自LIST数组。 14.

15. 一个有符号字数组以0为结束标志,求这个数组的:最大值、最小值、平均值。

答: DATA SEGEMNT LIST DW -56, +12, 88, -126, -5, 16, 32, -99, 72, -18, 0 MIN DW ? MAX DW ? AVG DW ?

DATA ENDS

CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV MIN, 32767 ;将32767假设为最小的数

MOV MAX, -32768 ;将-32768假设为最大的数 MOV AVG, 0 ;AVG用作累加器,清零 LEA SI, LIST MOV CX, 0

AGAIN: MOV AX, [SI]

CMP AX, 0 JZ DONE ;找到零元素,转DONE结束处理 INC CX ;记录非零元素个数 ADD AVG, AX ;累加 CMP AX, MIN JGE SKIP1 MOV MIN. AX ;比预设最小值还小,保留

SKIP1: CMP AX, MAX

JLE SKIP2

MOV MAX, AX ;比预设最大值还大,保留 SKIP2: ADD SI, 2 JMP AGAIN DONE: JCXZ NULL ;元素个数为零,转NULL处理 MOV AX, AVG CWD IDIV CX MOV AVG, AX ;计算平均值 JMP EXIT NULL: MOV MIN, 0 ;元素个数为0,将“最大值”、“最小值” MOV MAX, 0 ;“平均值”清零 MOV AVG, 0 EXIT: MOV AX, 4C00H INT 21H CODE ENDS END START

习 题 五

1. 接口电路与外部设备之间传送的信号有哪几种?传输方向怎样?

数据信号:对于输入设备,数据信号从外设通过接口送往总线,对于输出设备,数据信号从总线通过接口发往外部设备。

状态信号:状态信号表明外部设备当前的工作状态,用来协调CPU与外部设备之间的

操作。状态信号总是从外部设备通过接口发往总线。

控制信号 :控制信号是CPU向外设发出的命令,它指定设备的工作方式,启动或停止设备。控制信号从CPU通过接口发往外部设备。 2. 接口电路有哪些功能?哪些功能是必需的?

接口电路可以具备:设备选择功能、信息传输功能、数据格式转换功能、联络功能、中断管理功能、复位功能、可编程功能和错误检测等功能。其中设备选择功能和信息传输功能是每一个接口电路所必备的。其他的功能是否需要则由设备的特点和工作方式决定。 3. I/O端口的编址有哪几种方法?各有什么利弊?80X86系列CPU采用哪种方法?

I/O端口的编址有两种不同的方式。

I/O端口与内存统一编址:把内存的一部分地址分配给I/O端口,一个8位端口占用一个内存单元地址。已经用于I/O端口的地址,存储器不能再使用。

I/O端口与内存统一编址后,访问内存储器单元和I/O端口使用相同的指令,这有助于降低CPU电路的复杂性,并给使用者提供方便。但是,I/O端口占用内存地址,相对减少了内存可用范围。而且,由于难以区分访问内存和I/O的指令,降低了程序的可读性和可维护性。

I/O端口与内存独立编址:这种编址方法中,内存储器和I/O端口各自有自己独立的地址空间。访问I/O端口需要专门的I/O指令。

80x86 CPU采用I/O端口独立编址方式。

4. 按照传输信号的种类,I/O端口有几种?它们信号的传输方向怎样?

按照传输信号的种类,I/O端口有三种:

数据端口:数据信息从端口输入CPU(输入设备接口),或者从CPU写入端口(输出设备接口);

状态端口:外设状态信息从端口输入CPU; 控制端口:命令信息从CPU写入端口。 5.

6. 外部设备数据传送有哪几种控制方式?从外部设备的角度,比较不同方式对外部设备的响应速度。

外部设备数据传送有以下四种控制方式。

直接传送方式(也称为无条件传送方式、同步传送方式):这种情况下,外部端口完全被动地等待CPU的访问,没有确定的响应速度,响应时间取决于CPU忙碌的程度以及程序对外部设备控制采取的策略。

查询方式:如果CPU在某一时刻只对一个外设采用查询方式进行数据传输,CPU的响应延迟约为3~10个指令周期。响应速度快于中断方式,慢于DMA方式。

中断方式:CPU的响应延迟平均为几十个指令周期,慢于查询方式,但是这种方式可以同时管理多个外部设备。

DMA方式:外部端口的传输请求由DMA控制器响应,由于DMAC是一个专用于传输控制的电路,任务单一,不发生DMA传输竞争时,响应延迟仅为1~2个DMAC使用的时钟周期,远快于中断方式和查询方式。 7.

8. 比较程序中断方式和查询方式的区别,根据比较,指出中断工作方式的优缺点。

中断方式:外部设备工作完成后,通过“中断请求”信号“主动”向CPU“报告”。 查询方式:外部设备工作完成后,状态信号储存在接口电路内,被动地等待CPU来读取。

根据上述比较,可以得到中断工作方式的如下特点:

优点:

1) CPU能够及时了解外部设备的状态,从而对外部设备IO请求进行及时处理。 2) 由于CPU“被动”地等待外部设备的“中断请求”,外部设备进行输入/输出操作

时,CPU可以同时执行其他的程序,CPU和外部设备“并行”工作。

3) 由于同样的原因,在中断方式下,CPU可以同时管理多台外部设备,CPU的效率

得到提高。 缺点:

1) 用中断方式需要CPU增加相应的管理逻辑,增加了CPU电路的复杂性。

2) 由于CPU“被动”地接收“中断请求”信号,CPU必须通过与外部的一个联络过

程才能知道是那一个设备在申请中断,这增加了响应时间。为了从当前任务转移到中断服务,CPU必须保护原有的运行环境,进行“任务”的“切换”,这也会增加响应时间。

3) 有较多的设备使用中断方式时,会产生“中断申请”的“竞争”。这一方面降低了

响应速度,另一方面增加了管理的复杂性。

9. 10. 某输入设备接口数据端口、状态端口、控制端口地址分别为70H, 71H, 72H。状态端口D5=1表示输入完成,控制端口D7=1表示启动设备输入(输入完成后由设备清除该位)。从该设备输入100个字节数据,存入以BUFFER为首地址的缓冲区。如果启动该设备1秒后仍未完成一次输入,则视为超时错,显示出错信息后返回。分别用8086汇编语言和C语言编写完成上述功能的I/O程序。

汇编语言程序: DATA SEGMENT BUFFER DB 100 DUP(?) ERROR DB “OVER TIME !”, “$” DATA ENDS ;

CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV CX, 100 LEA BX, BUFFER ONE: XOR DX, DX ;DX用作响应计时器,初值0

MOV AL, 80H

OUT 72H, AL ;启动输入 W: IN AL, 71H INC DX ;记录延迟时间 TEST AL, 00100000B ;测试完成位 JNZ READ ;输入完成,转READ读取数据 CMP DX, 50000 ;假设循环50000次时间为1秒 JB W ;未超时,继续测试 JMP OVERTIME ;超过1秒,报告出错 READ: IN AL, 70H ;读入数据