70
第 第 1 第第第第第第第第第第第第 第第第第第第第第第第 第第第第第第 、?? 第第第第第第 第第 第第第 第第第第 第第第第第 第第第第 第 第第第第第 第 :体,,;, 第第第第第第第第第 第第第 第第第第第 第第第第第 :、、。 第第第第第第第第 8 第第 第第第第 第第第第第 第第第第第第第第第第第 一,,。 第第第第第第 第第第第第第第第第第第第第 第第第第 第第第第第第第 一,一。

第一章 习 题

  • Upload
    miron

  • View
    40

  • Download
    4

Embed Size (px)

DESCRIPTION

第一章 习 题. 1 、微型计算机的特点是什么?主要性能指标有哪些?字节和字长有什么区别? 特点:体积小,重量轻,耗电少;可靠性高,结构灵活 ;价格低廉;应用面广。 主要性能指标:字长、运算速度、内存容量。 字节和字长的区别:每 8 位为一个字节,固定不变,它是存储器的基本单位。 字长是计算机一次可并行处理的数据的位数,可以是一个或多个字节。. 2 、微型计算机是由哪几部分组成的?简述各部分的作用。 微型计算机由硬件和软件组成,硬件主要包括 中央处理器( CPU )、存储器、输入接口电路、输出接口电路、总线。 软件主要包括系统软件和应用软件。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第一章 习    题

第一章 习 题

1 、微型计算机的特点是什么?主要性能指标有哪些?字节和字长有什么区别?

特点:体积小,重量轻,耗电少;可靠性高,结构灵活 ;价格低廉;应用面广。

主要性能指标:字长、运算速度、内存容量。字节和字长的区别:每 8 位为一个字节,固定不变,

它是存储器的基本单位。 字长是计算机一次可并行处理的数据的位数,可

以是一个或多个字节。

Page 2: 第一章 习    题

2 、微型计算机是由哪几部分组成的?简述各部分的作用。

微型计算机由硬件和软件组成,硬件主要包括中央处理器( CPU )、存储器、输入接口电路、输出接口电路、总线。

软件主要包括系统软件和应用软件。 作用略。

Page 3: 第一章 习    题

3 、微处理器、微型计算机、微型计算机系统之间有什联系和区别。

微处理器即 CPU 是计算机的核心部件,其利用集成技术将运算器、控制器集成在一片芯片上。主要功能如下: 对指令译码并执行规定动作;能与存储器及外设交换数据;可响应其它部件的中断请求;提供系统所需的定时和控制。

微型计算机是在 CPU 的基础上配置存储器、 I/O 接口电路、系统总线。

微型计算机系统是以微机为主体,配置系统软件和外设。

Page 4: 第一章 习    题

4 、微型计算机内部、外部的结构特点是什么?总线结构的优点是什么?

微型计算机内部为单总线结构,外部为三总线结构即 AB 、 DB 、 CB

有了总线结构以后,系统中各功能部件的相互关系变为各个部件面向总线的单一关系,一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能很方便得到扩展。

Page 5: 第一章 习    题

5 、完成下列数制之间的转换( 48 ) D= ( 30 ) H= ( 00110000 ) B

( 6DB ) H= ( 1755 ) D= ( 11011011011 ) B

( 10101101 ) B= ( AD ) H= ( 173 ) D

( 98 ) D= ( 10011000 ) BCD= ( 1100010 ) B

( 010110010010 ) BCD= (  592  ) D

=( 1001010000 ) B

Page 6: 第一章 习    题

6 、完成下列码制之间的转换  [X] 原=BDH    [X] 补、 [X] 反、X真值= ?  [X] 反=3CH    [X] 补、 [X] 原、X真值= ?  [X] 补=8AH    [X] 反、 [X] 原、X真值= ?

[X] 原=BDH [X] 补=C3H [X] 反=C2H X真值= -61

[X] 反=3CH [X] 补=3CH [X] 原=3CH X真值= 60

[X] 补 =8AH [X] 反 =89H [X] 原 =F6H X真值 = -118

Page 7: 第一章 习    题

7 、已知   X=72   Y=35  求 X+Y=?   X-Y=?    Y-X=?[X] 原= [X] 补= 01001000 [-X] 补=10111000

[Y] 原= [Y] 补= 00100011 [-Y] 补=11011101

[X+Y] 补= [X] 补+ [Y] 补=01101011 = [X+Y] 原

X+Y =107

[X-Y] 补= [X] 补+ [-Y] 补=00100101 = [X-Y] 原

X-Y =37

[Y-X] 补= [Y] 补+ [-X] 补=11011011

[Y-X] 原= 10100101 Y-X =-37

Page 8: 第一章 习    题

第二章习题

1 、 CPU 常用的工作方式有哪几种? 8086CPU采用哪种工作方式?

CPU 常用的工作方式有串行方式和并行方式, 8086CPU 采用并行工作方式。

2 、 8086CPU 有哪几部分组成?各组成部分的主要功能是什么?

8086CPU 有执行部件 EU 和总线接口部件 BIU 组成。EU 的主要功能是( 1 )从指令队列中取出指令。 ( 2 )对指令进行译码,发出相应的控制信号。( 3 )向 BIU 发出请求。( 4 )执行指令包括进行算术、逻辑运算,并计算操作数的偏移量。

Page 9: 第一章 习    题

总线接口部件的功能是:( 1 )合成 20 位的地址,完成与外界之间的数据传送。

( 2 )预取指令送到指令队列。( 3 ) 发出外部总线控制信号。3 、状态标志和控制标志又何不同?程序中是怎样利用这两类标志的? 8086 的状态标志和控制标志分别有哪些?

状态标志反映运算结果的状态,其可能对后面的程序有影响 ; 控制标志是人为设定,其对 CPU的运行起控制作用。

状态标志有 ZF 、 CF 、 OF 、 PF 、 SF 、 AF 控制标志有 TF 、 IF 、 DF

Page 10: 第一章 习    题

4 、从引脚信号上看 8086 和 8088 有什么不同?①8088 内部( CPU 内)有 16 位数据线,而对外只有 8 位

数据线,因此数据地址复用线与 8086 不同。 8086 : AD0—AD15

8088 : AD0—AD7 A8—A15

② 第 28 号引脚规定相反。 8086 :最小模式下为 M/IO 8088 :最小模式下为 M/IO (与 8085 兼容)③ 第 34 号引脚不同 8086 : BHE/S

8088 :在最大模式中,为高电平; 8088 没有高 8 数据,输出 SS0信号,此与其它信号

组合表明当前的动作。

Page 11: 第一章 习    题

5 、什么是最小模式和最大模式?它们在使用上有什么不同。

最小模式:系统只有一个 8086CPU ,所有的控制信号都直接由 8086CPU 产生,总线控制逻辑电路最少。

最大模式:系统包括两个或多个 CPU (一个为主 CPU ,其他为协 CPU ),此时 8086CPU 需要外加总线控制器,以便产生较多的控制信号进行互相联系和协调工作。

Page 12: 第一章 习    题

6 、 段寄存器 CS=1200H , IP=FF00H ,此时指令的物理地址为多少?指向这一物理地址的 CS值和 IP 值是唯一的吗?

物理地址为 21F00H,CS 和 IP 值不唯一。7 、已知物理地址为 61320H ,若 CS=5F00H ,求偏移地址。若 CS=5200H ,求偏移地址。该单元为何有不同的偏移地址?

IP 分别为 2320H 和 F320H

同一个物理地址是由段基值和偏移地址合成,当段基值不同时偏移地址必然不同。

Page 13: 第一章 习    题

8 、若 CS=2200H ,问物理地址为 222AFH 的存储单元是否在此代码段中?

此时 IP=02AFH<FFFFH,故在此代码段中。9 、 DS=1100H , SI=ABCDH 求数据所在的物理地址。

DS=2345H , SI=D0CFH 求数据所在的物理地址。

物理地址 =11000H+ABCDH=1BBCDH

物理地址 =23450H+D0CFH=3051FH

Page 14: 第一章 习    题

10 、 A=C236H B=758AH 求 A+B 、 A-B 后各状态标志的值。( CF 、 SF 、 ZF 、 AF 、 OF 、 PF )

1100001000110110

+ 0111010110001010

10011011111000000

CF=1 SF=0 ZF=0 AF=1 OF=0 PF=1

1100001000110110

- 0111010110001010

0100110010101100

CF=0 SF=0 ZF=0 AF=1 OF=1 PF=1

Page 15: 第一章 习    题

11 、 SP 是 堆栈指针寄存器,其内容是栈顶地址的偏移量。

12 、 ALE 信号在 T1 时刻有效,有效状态是高电平

其作用是作地址寄存器的选通信号13 、 8086CPU 的引脚 RD 为低电平, M/IO 为高 电平时,表示读存储器14 、 8086CPU 执行 I/O端口写操作时, WR=0

M/IO=0 RD= 1 DT/R= 1 DEN=0

Page 16: 第一章 习    题

15 、若 8086CPU 工作于最小模式,试指出当 CPU完成将 AH 的内容送到物理地址为 91001H 的存储单元操作时,以下哪些信号应为低电平: M/IO 、WR 、 RD 、 BHE/S7 、 DT/R 。若 CPU 完成的是将物理地址 91000H 单元的内容送到 AL 中,则上述哪些 信号应为低电平。

当 CPU 完成将 AH 的内容送到物理地址为 91001H的存储单元时 WR=0 BHE=0

当 CPU 完成的是将物理地址 91000H 单元的内容送到 AL 中时 RD=0 DT/R=0

Page 17: 第一章 习    题

16 、什么是引脚的分时复用?请说出 8086/8088CPU 有哪些引脚是分时复用引脚?其要解决的问题是什么?

用同一组引脚表示不同的信号即在不同的时刻表示不同的信号; 8086 中 AD0_AD15 、 A16/S3_A19/S6 。 要解决地址信号的锁存问题。

17 、什么是指令周期?什么是总线周期?什么是时钟周期?它们之间的关系如何?

指令周期:执行一条指令所需要的时间。 总线周期(机器周期): CPU通过总线与存储器或 I/O

接口进行一次数据传输所需的时间。 时钟周期( T 状态): CPU 处理动作的最小单位是主频

的倒数 一个指令周期包含 1 个或多个总线周期,一个总线周期包含 4 个或更多机器周期。

Page 18: 第一章 习    题

第 3 章:习题

1.8086 常用的寻址方式有哪些 ? 哪几种寻址方式的指令执行速度快 ?

立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址(又包括多种方式)。

立即数寻址和寄存器寻址速度快。2. 如在指令中不具体指明段寄存器 ,那么段地址如何确定 ? 由隐含关系确定: ① [BX] 隐含于 DS 段② [BP] 隐含于 SS 段③ [SI] 、 [DI] 单独使用隐含于 DS 段

④ 基址寄存器和变址寄存器同时出现,以基址寄存器隐含关系为准。⑤ [SP] 隐含于 SS 段⑥ [SI] 、 [DI] 用于串操作时, [SI]隐含于 DS 段, [DI]隐含于 ES 段。

Page 19: 第一章 习    题

3.假设 DS=3000H,BX=0870H,SI=010CH,d=45h 以 MOV 指令为例,写出各种寻址方式下的指令形式,并求出数据的有效地址和物理地址。

① 直接寻址 指令形式: MOV AX , [0045H]

EA= 0045H 物理地址 =30000H+0045H=30045H② 基址寻址 指令形式: MOV AX , [BX] EA= 0870H 物理地址 =30000H+0870H=30870H③ 变址寻址 指令形式: MOV AX , [SI] EA= 010CH 物理地址 =30000H+010CH=3010CH

Page 20: 第一章 习    题

④ 相对基址寻址 MOV AX , [BX+0045H] EA= 0870H+0045H=08B0H 物理地址 =30000H+08B0H=308B0H⑤ 相对变址寻址 MOV AX , [SI+0045H] EA= 010CH+0045H=0151H 物理地址 =30000H+0151H=30151H ⑥基址变址寻址 MOV AX , [BX+SI] EA= 0870H+010CH=097CH 物理地址 =30000H+097CH=3097CH ⑦相对基址变址寻址 MOV AX , [BX+SI+0045H] EA= 0870H+010CH+0045H=09C1H 物理地址 =30000H+09C1H=309C1H

Page 21: 第一章 习    题

4. 请指出下列指令中源操作数的寻址方式 ⑴ MOV SI , 120 ; 立即数寻址 ⑵ MOV BP , [BX] ;寄存器间接寻址(基址寻址)

⑶ MOV AX , CX ;寄存器寻址 ⑷ POP BX ;栈区寻址(出栈操作) ⑸ AND DL , [BX+SI+30H] ;寄存器间接寻址(相对基址变址寻址)

⑹ XCHG AL , BUF ;直接寻址

Page 22: 第一章 习    题

5. 请指出如下程序段中每条逻辑指令执行后标志 ZF 、SF 和 PF 的状态

MOV AL , 0AH ; AL=0AH ZF 、 SF 、 PF 不变

AND AL , 0FH ; AL=0AH 0 、 0 、 1

OR AL , 4BH ; AL=4BH 0 、 0 、 1

XOR AL , AL ; AL=0H 1 、 0 、 1

Page 23: 第一章 习    题

6.判断指令的对错 ,说明错误指令出错原因 ⑴ MOV [SP] , BX 错,不能用 SP 间接寻址 ⑵ MOV CX , BX 对 ⑶ JMP BX 对 ⑷ XCHG [SI] , WED 错,不能在两个内存单元直接交换 ⑸ SHL AX , CX 错,移位次数必须在 CL 中

⑹ XCHG ES : [BX] , AL 对 ⑺ LEA AX , [BX+SI] 对 ⑻ IN BL , DX 错,输入指令只能用累加寄存器 ⑼ PUSH CS 对

⑽ MOV DH , 345H 错,数据类型不符。

Page 24: 第一章 习    题

7. 利用三种方法实现内存 DS 段 2000H 和 2100H 的两个字单元的内容互换。

1 、 MOV AX, [2000H]

MOV BX,[2100H]

MOV [2000H],BX

MOV [2100H],AX

2 、 XCHG AX, [2000H]

XCHG AX, [2100H]

XCHG AX, [2000H]

3 、 PUSH [2000H]

PUSH [2100H]

POP [2000H]

POP [2100H]

Page 25: 第一章 习    题

8. 已知 (SP)=2800H,(AX)=0010H,(BX)=0FA0H,

(CX)=1002H 。求执行下列程序段后 SP 、 AX 、BX 、 CX 的内容

PUSH AX

PUSH BX

PUSH CX

POP BX

POP AX

执行后 SP=27FEH AX=0FA0H

BX=1002H CX=1002H

Page 26: 第一章 习    题

9. 分析程序执行后 AX=?CF=?AF=? MOV AX, 2608H MOV BL, 95H ADD AL, BL 执行后 AX=2703H AAA CF=AF=110. 分析程序执行后 AX=?CF=? MOV AX, 1E54H STC MOV DX, 95H XOR DH, 0FFH 执行后 AX=IEBFH SBB AX, DX CF=1

Page 27: 第一章 习    题

11. MOV AL , 67H ; AL= 67H NEG AL ; AL= 99H OR AL , 0A0H ; AL= B9H AND AL , 0F5H ; AL= B1H XOR AL , 0FH ; AL= BEH12. MOV AX, 3267H ROL AX, 1 ADC AL, AH MOV [3200H],AX执行上述指令后 AX=6432H [3200H]=32H [3201H]=64H

Page 28: 第一章 习    题

13. 已知 DS=1000H ,将下面程序段执行后的结果填入相应的寄存器和内存单元。

MOV CL , 04H

MOV AX , 0ABCDH

SHR AX , CL

MOV SI , 2000H

MOV [SI] , AX

则 CL= 04H AX= 0ABCH

SI= 2000H [12001H]= 0AH

Page 29: 第一章 习    题

14. 设 DS 段 2100H 单元的内容是 32H MOV BX,2100H MOV AL,[BX] MOV AH,0 MOV SP, 3210H XCHG AX,BX PUSH AX PUSH BX POP CX执行程序段后 AX=2100H BX=0032H CX=0032H SP=320EH

Page 30: 第一章 习    题

15. MOV AX, 0478H

MOV BX, 2346H

SUB AL,BL

ADC BH,AH

执行指令后 AX= 0432H BX=2746H

16. 已知 DS 段 3200H开始的内存中顺序存放着十六进制基数 (0~F) 的 ASC 码

MOV BX , 3200H

MOV AL , 06H

MOV CL , 03H

Page 31: 第一章 习    题

ADD AL , CL

MOV CL,AL

XLAT

XCHG CL,AL

MOV CL , AL

INC AL

INC AL

XLAT

HLT

执行指令后 AL=42H CL= 09H BX=3200H

Page 32: 第一章 习    题

17. MOV AX, 4737H MOV BX, 2856H SUB BH, AH ADC AL, BL DAA 执行上述程序后 AX= 4794H BX=E156H 18. 已知程序段如下 : CMP AX, CX JNC K1 JNO K2 JMP K3

Page 33: 第一章 习    题

假设有以下三组 AX 、 CX 值,那么在程序执行后,分别转向哪里?⑴ ( AX ) =E301H ( CX ) =8F50H

CF=0 转 K1

⑵ ( AX ) =8F50H ( CX ) = E301H

CF=1,OF=0 转 K2

⑶ ( AX ) =147BH ( CX ) =80DCH

CF=1, OF=1 转 K3

Page 34: 第一章 习    题

第四章习题

1 、下面程序段的功能是将内存单元 DAT1 起始的 20 个 8 位二进制数,按正、负分别存放,正数存于 BUF1开始的单元,负数存于 BUF2开始的单元,仔细阅读程序,改正其中的错误。

CLD STOSW MOV SI , DAT1 JMP GOND MOV DI , BUF1 MIUS : XCHG BX , SI MOV BX , BUF2 STOSBLOP1 : LODSB XCHG BX , DI MOV CX , 20 GOND : LOOP LOP1 TEST AL , 80 HLT JZ MIUS

Page 35: 第一章 习    题

2 、下面程序段的功能是将 SI=2000H 为起始的 6个单元的组合 BCD 码累加,其结果仍在 SI 为指针的内存中,仔细阅读程序,改正其中的错误。

MOV SI , 2000H MOV SI , AL

MOV CX , 6 INC SI

XOR AL , AL LOOP LOP1

LOP1 : ADD AL , [SI ] MOV [SI] , AH

AAA HLT

ADD AH , 0

Page 36: 第一章 习    题

3 、下面程序段的功能是将 SI=1000H 为起始的 2个单元的 ASCⅡ 码(个位数地址较低)转换为 1个组合型 BCD 码,仔细阅读程序,改正其中的错误。

MOV SI , 1000H AND BL , 0FH

MOV AL , [SI ] OR AL , BL

AND AL , 0F INC SI

SHL AL , 4 MOV [SI] , BL

INC SI HLT

MOV BL , SI

Page 37: 第一章 习    题

4 、下面程序段的功能是在 SI=2400H 为起始的 10个单元的无符号数中,找出最小数存于 DI 为地址指针的内存中,仔细阅读程序,改正其中的错误。

MOV SI , 2400H INC SI

MOV CL , 10 LOP2 : LOOP LOP1

MOV AL , SI MOV [SI] , AL

LOP1 : CMP AL , [SI+1] HLT

JNC LOP2

MOV AL , [SI+1]

Page 38: 第一章 习    题

5 、下面程序的功能是将内存单元中连续存放的 6个有符号 8 位二进制数中的最大数找出,并存于MAX 单元,仔细阅读程序,改正其中的错误。

DATA SEGMENT

ABCD DB 06H,57H,89H,0A7H,0F7H,0E8H,95H

MAX DB 1 DUP(?)

DATA END

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX, DATA

Page 39: 第一章 习    题

MOV DS, AX

MOV SI, OFFSET ABCD

MOV CL, SI

MOV CH, 0

MOV AL, [SI+1]

P1: INC SI

CMP AL, SI+1

JC P2

MOV AL, [SI]

P2: JMP P1

Page 40: 第一章 习    题

MOV [SI+1],CL

HLT

CODE ENDS

END START

Page 41: 第一章 习    题

6 、从 3#端口输入 1 个数与预定值相比,将差的绝对值从 4#端口输出,编写完成此功能的程序段。

DATA SEGMENT

A DB 50H ;设预定值 DATA ENDS

Page 42: 第一章 习    题

CODE SEGMENT ASSUME CS : CODE , DS : DATA GO : MOV AX , DATA MOV DS , AX MOV BL , A IN AL , 03H CMP AL , BL JG LB1 XCHG AL,BL LB1 : SUB AL , BL OUT 04H , AL CODE ENDS END GO

Page 43: 第一章 习    题

7 、试编写一汇编程序,将 AX 中各位取反。然后统计出 AX

中 0 的个数,将结果保存到 CL 中。DATA SEGMENT

NUM DW 2350H ; DATA ENDS

CODE SEGMENT

ASSUME CS : CODE , DS : DATA

GO : MOV AX , DATA

MOV DS , AX

MOV AX ,NUM

NOT AX

XOR DL,DL

MOV CX,16

Page 44: 第一章 习    题

P1: SHR AX, 1

JNZ P2

INC DL

P2: LOOP P1

MOV CL, DL

CODE ENDS

END GO

Page 45: 第一章 习    题

8 、试编写一汇编程序,要求把一个长度不大于 200 的字节数组,分别存为正数组、负数组,并统计两个数组的个数,分别存于正、负数组的第一个字节,原数组以“ $” 结束。

DATA SEGMENT

DA1 DB 25H, BDH, 7FH,94H,65H,…,A5H, ‘$’

DA2 DB 201 DUP(?) ; 正数 DA3 DB 201 DUP(?) ; 负数 DATA ENDS

Page 46: 第一章 习    题

CODE SEGMENT ASSUME CS:CODE, DS: DATASTART: MOV AX , DATA MOV DS, AX MOV ES, AX LEA SI, DA1 LEA DI, DA2 INC DI LEA BX, DA3 INC BX XOR DX, DXGO1: LODS B CMP AL, ‘$’ JZ JS1

Page 47: 第一章 习    题

TEST AL,80H

JNZ NEG1

STOSB

INC DL

JMP GO1

NEG1: XCHG BX, DI

STOSB

INC DH

XCHG BX,DI

JMP GO1

Page 48: 第一章 习    题

JS1: LEA DI, DA2

MOV [DI], DL

LEA BX, DA3

MOV [BX], DH

HLT

CODE ENDS

END START

Page 49: 第一章 习    题

9 、求出内存单元 BUF 为起始的 20 个 16 位无符号数的累加和和平均值,分别存放于其后的内存单元中。

DATA SEGMENT

NUM DW 2E50H ,C134H,……A76BH

SUM DW ?,?

AVE DW ?

DATA END

CODE SEGMENT

ASSUME CS:CODE, DS : DATA

Page 50: 第一章 习    题

BEGIN: MOV AX,DATA

MOV DS,AX

LEA BX, NUM;

LEA DI, SUM;

LEA SI, AVE

MOV CX, 20;

XOR AX, AX;

XOR DX, DX

LP1: ADD AX, [BX] ;

JNC M1 ;

INC DX ;

Page 51: 第一章 习    题

M1: INC BX ;

LOOP LP1 ;

MOV [DI], AX

MOV [DI+2] ,DX

MOV BX, 20 ;

DIV BX ;

MOV [SI], AX

CODE ENDS

END BEGIN

Page 52: 第一章 习    题

10 、内存单元 X 中有一个 8 位有符号数,按下式计算 Y 值,并将 Y 值存于其后的单元。

Y=

DATA SEGMENT

X DB 9FH

Y DW ?

DATA ENDS

4X+150 X<150

X2-3X+60 X>150

Page 53: 第一章 习    题

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX , DATA

MOV DS , AX

MOV AL , X

CBW

CMP AX , 150

JNL LOP1

MOV BX , AX

IMUL BX

Page 54: 第一章 习    题

MOV CX , BX

SHL BX , 1

ADD BX , CX

SUB AX , BX

ADD AX , 60

JMP LOP2

LOP1 : MOV CL , 2

SHL AX , CL

ADD AX , 150

Page 55: 第一章 习    题

LOP2 : MOV Y , AX

HLT

CODE ENDS

END START

Page 56: 第一章 习    题

11 、将内存 TABLE 为起始的 20 个字节数按从小到大的顺序排列。

DATA SEGMENT

TABLE DB 12H,84H,53H,76H, 7AH,...,

COUNT EQU LENGTH TABLE

DATA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS:DATA ,SS:STACK

START: MOV AX, DATA

MOV DS, AX

MOV BX, OFFSET TABLE

Page 57: 第一章 习    题

MOV DX, COUNT-1S1: MOV CX, DX MOV SI, BX MOV AL, [SI] S2: CMP AL, [SI+1] JL LP1 XCHG AL, [SI+1] MOV [SI], ALLP1: INC SI LOOP S2 DEC DX JNZ S1

Page 58: 第一章 习    题

HLT

CODE ENDS

END START

Page 59: 第一章 习    题

第五章

练习:1 、存储器的分类?各类存储器的特点?适用的场合?

2 、存储器的扩展(串并联、地址译码)3 、高速缓存的原理和作用?4 、存储器体系为什么采用分级结构,主要用于解决存储器中存在的哪些问题?

Page 60: 第一章 习    题

1 、存储器的分类?各类存储器的特点?适用的场合?

主存储器

只读存储器 ( ROM)

随机存储器( RAM)

静态 RAM( SRAM)动态 RAM( DRAM) 非易失 RAM( NVRAM)掩膜式 ROM

一次性可编程 ROM( PROM) 紫外线擦除可编程 ROM( EPROM)电擦除可编程 ROM( EEPROM)

快擦型存储器

辅助存储器磁盘磁带光盘

缓冲存储器

存储器

Page 61: 第一章 习    题

3 、高速缓存的原理和作用? 高速缓存的原理是基于程序访问的局部性。其作用是解决主存速度和 CPU速度不匹配问题。4 、存储器体系为什么采用分级结构,主要用于解决存储器

中存在的哪些问题? 存储器体系采用分级结构,主要有高速缓存、主

存、辅存三级组成,主要是想取得较快的存取速度和满足大容量的要求,同时价格较低,即有最好的性价比。

主存、辅存结构解决主存容量不足的问题,且使存储系统价格较低。

高速缓存使主存速度提高,和 CPU速度基本匹配。

Page 62: 第一章 习    题

第六章

练习:1 、 CPU 与外设之间要传送的信息有哪些?2 、外设端口的编址方式有哪些?各有何特点?3 、 CPU 与外设之间传送信息的方式有哪些?各有特点?

4 、画出利用 74LS244 、 74LS273扩展少量功能键和 LED显示的连接图,地址分别是 64H 、 65H 。

Page 63: 第一章 习    题

1 、 CPU 与外设之间要传送的信息有哪些?有数据信息:包括数字量、模拟量 、开关量。 状态信息:是外设通过接口往 CPU传送的状态 如:“准备好” (、“忙”( BUSY)信号。 控制信息:是 CPU 通过接口传送给外设的 如:外设的启动信号、停止信号等。2 、外设端口的编址方式有哪些?各有何特点?

统一编址方式优点:不需要专门的 I/O指令; I/O数据存取与存储器数据存取一样灵活。缺点: I/O 端口要占去部分存储器地址空间;程序不易阅读

Page 64: 第一章 习    题

独立编址方式优点: I/O端口的地址空间独立;控制和地址译码电路相对简单;专门的 I/O 指令使程序清晰易读

缺点: I/O 指令没有存储器指令丰富。3 、 CPU 与外设之间传送信息的方式有哪些?各有特点? 有程序方式(包括无条件传送和条件传送)、中断传送方

式和 DMA方式无条件传送:慢速外设需与 CPU 保持同步查询传送: 简单实用,效率较低中断传送:外设主动,可与 CPU并行工作,但每次传送需要大量额外时间开销 DMA传送: DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送。

Page 65: 第一章 习    题

第七章

1 、 A 口方式 2 要求 PC4 和 PC6 均需置位。B 口方式 1 要求使 PC2 置位 , 写出初始化程序。

2 、利用 8255 芯片 A 口扩展键, B 口扩展指示灯的例题。

3 、在甲乙两台微机之间并行传送 1K 字节数据。甲机发送, 乙机接收。甲机一侧的8255A 采用 1 方式工作,乙机一侧的 8255A 采用 0 方式工作。两机的 CPU 与接口之间都采用查询方式交换数据。

Page 66: 第一章 习    题

1 、 A 口方式 2 要求 PC4 和 PC6 均需置位。 B 口方式 1要求使 PC2 置位 ,

MOV AL , 0C4H ; 11000100B

OUT CTRL_PORT , AL   ;设置工作方式

MOV AL , 09H ; 00001001B

OUT CTRL_PORT , AL   ; PC4 置位

MOV AL , ODH

OUT CTRL_PORT , AL   ; 00001101BPC6 置位

MOV AL , 05H ; 00000101B

OUT CTRL_PORT , AL   ; PC2 置位;

Page 67: 第一章 习    题

. 思考题:甲机发送程序段:

MOV DX , 203H ; 8255A 命令口MOV AL , 10100000B ;初始化工作方式字OUT DX , AL MOV AL , 00001101B ;置发送中断允许 INTEA=1OUT DX , AL ; PC6=1

MOV SI , OFFSET BUFS ;设置发送数据区的指针MOV CX , 3FFH ;发送字节数MOV DX , 200H ;向 A 口写第一个数,产生第一 个 OBF* 信号MOV AL , [SI] ;送给乙方,以便获取乙方的 ACK信号OUT DX , AL

Page 68: 第一章 习    题

INC SI ;内存地址加 1 DEC CX ;传送字节数减 1L : MOV DX , 202H ; 8255A 状态口 IN AL , DX ;查发送断请求 INTRA=1 ? AND AL , 08H ; PC3=1 ? JZ L ;若无中断请求,则等待; ;若有中断请求,则向 A

口写数 MOV DX , 200H ; 8255APA 口地址 MOV AL , [SI] ;从内存取数 OUT DX , AL ;通过 A 口向乙机发送第二个数据 INC SI ;内存地址加 1

Page 69: 第一章 习    题

DEC CX ;字节数减 1

JNZ L ;字节未完,继续 MOV AH , 4CH ;已完,退出 INT 21H ;返回 BUFS DB 1024 个数据

Page 70: 第一章 习    题

第八、第九章

8253 和 8259A 的综合举例例题。