1、习题 3.1 什么是总线?总线是如何分类的? 答: 总线,是一组能为多个功能部件服务的公共信息传送线路,是计算机各部件之间的传送数据、地址和控制信息的公共通路,它能分时地发送与接收各部件的信息。按照总线系统的层次结构,可以把总线分为片内总线、系统总线、局部总线和外 设 总线。 3.2 举例说明有哪些常见的系统总线与外设总线。 答:常见的 系统总线 有 : ISA 总线 、 PCI 总线 、 PCI Express 总线。 常见的外设总线有: RS-232 串行总线 、 IEEE1394 串行总线 、 USB 串行总线。 3.3 ISA 总线的主要 特点是什么? 答: ISA 总线的主要特点是:
2、 ( 1) 总线支持力强,支持 64KB 的 I/O 地址空间、 24 位存储器地址空间、8/16 位数据存取、 15 级硬件中断、 7 个 DMA 通道等。 ( 2) 16 位 ISA 总线是一种多主控( Multi Master)总线,可通过系统总线扩充槽中的 MASTER 的信号线实现。除 CPU 外, DMA 控制器、刷新控制器和带处理器的智能接口卡都可以成为 ISA 总线的主控设备。 ( 3) 支持 8 种类型的总线周期,分别为 8/16 位的存储器读周期、 8/16 位的存储器写周期、 8/16 位的 I/O 读周期、 8/16 位的 I/O 写周期、中断请求和中断响应周期、 DM
3、A 周期、存储器刷新周期和总线仲裁周期。 3.4 PCI 总线的主要特点是什么? 答: PCI 总线的特点概述如下: (1) 线性突发传输: PCI 支持突发的数据传输模式,满足了新型处理器高速缓冲存储器( Cache)与内存之间的读写速度要求。线性突发传输能够更有效地运用总线的带宽去传输数据,以减少不必要的寻址操作。 (2) 多总线主控: PCI 总线不同于 ISA 总线,其地址总线和数据总线是分时复用的。这样减少了接插件的管脚数,便于实现突发数据的传输 。数据传输时,一个PCI 设备作为主控设备,而另一个 PCI 设备作为从设备。总线上所有时序的产生与控制,都是由主控设备发起的。 (3)
4、支持总线主控方式和同步总线操作:挂接在 PCI 总线上的设备有 “主控 ”和 “从控 ”两类。 PCI 总线允许多处理器系统中的任何一个处理器或其他有总线主控能力的设备成为总线主控设备。 PCI 允许微处理器和总线主控制器同时操作。 PCI总线是一种同步总线,除了中断等少数几个信号外,其他信号与总线时钟的上升沿同步。 3.5 IEEE1394 总线的主要特点是什么? 答: IEEE1394 总线的主要特 点是: (1) 优越的实时性能 IEEE1394 具有两种数据传输模式:同步( Synchronous)传输与非同步( Asynchronous)传输。其中同步传输模式会确保某一连线的频宽,加
5、上 IEEE1394高速的传输速度,能保证图像和声音不会出现时断时续的现象。 (2) 连接方便,支持热插拔、即插即用功能 IEEE1394采用设备自动配置技术,允许热插拔( Hot Plug In)和即插即用( Plug (SP)= 1FFEH-2=1FFCH; ( 2)再执行 PUSH AX 及 POP BX 后 (SP)=1FFCH, (AX)=3000H, (BX)=3000H 5.6 答:把 2000H送 1000H中,用指令 MOV 1000H, 2000H不正确,应改为: MOV AX,2000H MOV 1000H,AX 5.7 答:想从 200 中减去 AL 中的内容,用 SU
6、B 200, AL 不正确,应改为: MOV BL,200 SUB BL,AL 5.8 端口号为 20H 的 8 位数据为正数时(最高位为 0) 5.9 ( 1)说明程序的功能。 乘以 10 ( 2)若从 82H 读入的数据为 05H,执行程序段后 (AX)=32H 5.10 64K 5.11 (1)双字减法的程序段是: MOV AX, 2A79H ;被减数的低位字送 AX SUB AX, 345FH ;低位字相减,结果送 AX MOV BX, 7B1DH ;被减数的高位字送 BX SBB BX, 53E2H ;高位字相减处并减去低位字相减产生的借位,结果送 BX (2) 将 AX 中间 8
7、位, BX 低四位, DX 高四位拼成一个新字的程序段是: AND DX,0F000H ;将 DX 的低 12 位清零,高 4 位不变 AND AX,0FF0H ;将 AX 的低 4 位清零,高 4 位清零,中间 8 位不变 AND BX,0FH ;将 BX 的高 12 位清零,低 4 位不变 ADD AX,BX ADD AX,DX ;按要求组成一个新字,结果放在 AX 中 6.1 ( 1)分配 14 个字节 ( 2)分配 30 个字节 6.2 使用等号 =伪指令,可以对同一个常量 X2 重复定义,后一条覆盖前一条;若用 EQU 则禁止对 X1 重复定义。 6.3 PLENTH 的值为 38,
8、 $的功能为返回汇编器地址计数器的当前值,故表示前 3 个变量定义语句分配的存储空间的大小。 6.4 A. MOV BX,OFFSET ARRAY MOV AX,BX+8 ;正确 B. MOV AX,ARRAY ;错误之处在于类型不匹配。 C. MOV BX,2 MOV SI,3 MOV AX,ARRAYBXSI ;正确 D. MOV BX,2*2 MOV SI,3 MOV AX,OFFSET ARRAYBXSI ;正确 6.5 AX 寄存器中的内容为 3000H。 6.6 ( 1) DATASEG SEGMENT ;定义数据段 NUM DW 5 DATALIST DW -1,0,2,5,4,
9、5DUP(?) DATASEG ENDS ( 2) FMAX PROC NEAR ;找最大值过程 FMAX PUSH AX PUSH SI ;入栈保护寄存器 MOV AX,DATALIST MOV SI,0 MOV CX,5 GO_ON: DEC CX JNZ RECMP MOV DATALIST5,AX ;最大值存入指定位置 JMP EXT RECMP: CMP AX,DATALISTSI+1 JAE GO_ON MOV AX,DATASI JMP GO_ON EXT:POP SI POP AX ;出栈恢复寄存器 RET ;从过程返回 FMAX ENDP FSUM PROC NEAR 找 5
10、 个数的和过程 FSUM PUSH AX PUSH SI MOV AX,0 MOV SI,0 MOV CX,5 GO_ON: ADD AX, DATALISTSI INC SI DEC CX JNZ GO_ON MOV DATALIST7,AX POP AX POP SI RET FSUM ENDP 6.7 MOV CX,4 AGAIN:SHR DX,1 RCR AX,1 DEC CX JNZ AGAIN RET 6.8 设计一个过程,分别统计内存单元 TEMP 处开始的连续 100H 个字节单元中正数、负数和零的个数,最后在屏幕上显示输出结果。 DATASEG SEGMENT ;定义数据段
11、TEMP DB DPLUS DW ? ;设正数负数零的个数变量 DMINUS DW ? DZERO DW ? DATASEG ENDS PROC1 PROC NEAR PUSH AX PUSH BX PUSH CX PUSH SI LEA SI,TEMP MOV CX,DPLUS-TEMP+1 CLD GO_ON: DEC CX JZ OUTPUT LODSB TEST AL,80h ;检测符号位,判断是正是负 JZ PLUS INC DMINUS JMP GO_ON PLUS:CMP AL,0 JZ ZERO INC DPLUS JMP GO_ON ZERO: INC DZERO JMP GO_ON OUTPUT: MOV BX,DPLUS CALL DISP MOV BX,DMINUS CALL DISP MOV BX,DZERO