微型计算机原理应用第四版答案_第1页
微型计算机原理应用第四版答案_第2页
微型计算机原理应用第四版答案_第3页
微型计算机原理应用第四版答案_第4页
微型计算机原理应用第四版答案_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.第 1 章习题1.1 将下列二进制数转换为十进制数和十六进制。( 1) 1101( 2) =13=D ( H)( 2) 11010( 2) =26=1A ( H)( 3) 110100 (2)=52=34 (H)( 4) 10101001(2 )=169=A9 ( H)要点:从低位起,按每4 位将对应二进制转换成十六进制。而不是通过十进制转换。1.2 见上。1.3 简述 3 个门电路的基本元素在电路中对电平高低的作用。答:与、或、非。1.4 布尔代数有哪两个特点?答:( 1)值只有两个;(2)只有与、或、反3 种运算。1.5 布尔代数的“或运算”结果可用哪两句话来归纳?其“与运算”又可归纳成

2、哪两句话“答:( 1)“或运算”运算结果为有一真必为真,两者皆假才为假。(2)“与运算”有一假即为假,两者皆真才为真。1.6 什么叫原码、反码及补码?答:原码就是一个数的机器数。反码:将原码每位取反,即为反码。更准确的是:正数的反码就等于它的原码;负数的反码就是它的原码除符号位外,各位取反。补码:反码加1 就是补码。更准确的是:正数的补码就等于它的原码;负数的补码就是它的反码加1。例: X1= 100 1001X2= 100 1001则 :X1 原 = 0100 1001X1 反 = 0100 1001X1 补 = 0100 1001X2 原 = 1100 1001X2 反 = 1011 01

3、10.X2 补 = X2 反 +1= 1011 01111.7 为什么需要半加器和全加器,它们之间的主要区别是什么?答:( 1)因为加法的第一位没有进位,所以用半加器即可;而第二位起可能有进位,故需要考虑全加器;(2)两者的区别是半加器为双入双出,全加器为三入双出。1.8 用补码法写出下列减法的步骤:( 1) 1111( 2) -1010( 2)=? ( 2) =? ( 10)答:两个数相减其实就是第一个数与第二个数的补码相加。第一个数1111 为正数,其原码为1111第二个数为1010 ),其机器码(原码)为:1010,反码为0101,补码为:0110两者相加:1111+ 011010101

4、将最高位的进位1 删去,得结果为10101,即为 5( 10)这是按书上的简单做法。按最正规的方法做如下:若考虑两个数属于带符号数,第一个是正数,补码与原码都为01111;第二个数是负数,原码为11010,反码为10101,补码为 10101+1=10110第一个数与第二个数的补码相加,即为:01111+ 10110( 2) 1100( 2) -0011(2) =?( 2) =? ( 2)答:按上述所讲的正规方法做。第一个数的补码 =原码 =01100 ;第二个数的原码(即机器码)为 10011,其反码为 11100,其补码为 11101;两个数的补码相加,即为:01100+ 11101= 1

5、01001将最高位的进位1 删去,得结果为01001,即为 9( 10).1.9 做出 101011( 2) +011110( 2)的门电路图并求其相加的结果。答:相加结果为:101011+ 011110= 1001001得结果为1001001( 2)。(注:相加时不去掉最高位的进位)门电路图略去。1.10 做出第 1.9 题中两数相减的门电路图并求其相减的结果。答:若为101011-011110则第一个数为正数,其补码=原码 =0101011 ;第二个数为负数,其原码为1011110,反码为1100001,补码 =反码 +1=1100001+1=1100010两个数的补码相加为:010101

6、1+ 1100010= 1 0001101去掉最高位的进位1,得结果为0001101,即为 13( 10)。例 2: +0 反 = 00000000 -0 反 = 11111111即:数 0 的反码也不是唯一的。第 2 章习题2.2 触发器、寄存器及存储器之间有什么关系?请画出这几种器件的符号。答:触发器是存放一位二进制数字信号的基本单元。触发器是计算机的记忆装置的基本单元,也可以说是记忆细胞。触发器可以组成寄存器,寄存器又可以组成存储器。寄存器和存储器统称为计算机的记忆装置。(2) 其符号分别表示如下:.2.4 累加器有何用处?画出其符号。答:累加器作为ALU 运算过程的代数和的临时存储处。

7、2.5 三态输出电路有何意义?其符号如何画?答:三态输出电路使得一条信号传输线既能与一个触发器接通,也可以与其断开而与另外一个触发器接通,从而使得一条信号线可以传输多个触发器的信息。2.6 何谓 L 门及 E 门?它们在总线结构中有何用处?答:( 1) L 门:高电平时使数据装入、低电平时数据自锁其中的电路;E 门: E 门即三态门,当选通端E 门为高电平时,可将信息从A 端送到 B 端。(2) L 门专管对寄存器的装入数据的控制,而E 门志管由寄存器输出数据的控制。2.7 控制字是什么意义?试举个例子说明。.答:( 1)控制字CON 将各个寄存器的L 门和 E 门的按次序排成一列,并且为了避

8、免住处在公共总线中乱窜,规定在某一时钟节拍,只有一个寄存器的L 门为高电平,一个寄存器的 E 门为高电平,从而保证了E 门为高电平的寄存器的数据流入到L 门为高电平的寄存器中去。(2)略去,详见教材P31 的表 2-32.8 ROM 和 RAM 各有何特点与用处?答: ROM 是只读存储器,是用以存放固定程序的存储器,一旦程序放进去之后,就不能再改变。也不能再写入新的字节,而只能读出其中所存储的内容;RAM 是随机存储器(又称读 /写存储器),它与 ROM 的区别在于它不但能读出存放在其中各个存储单元的数据,而且能够随时写进新的数据,或者改变原有数据。2.9 为什么要建立“地址”这个概念?答:

9、因为一个存储器可以包含数以千计的存储单元,可以存储很多数据,为了便于存入和取出,需要对每个存储单元确定一个固定地址。2.11 译码器有何用处?答:译码器用来确定存储单元的地址。地址译码器常用于计算机中对存储单元地址的译码,即将一个地址代码转换成一个有效信号,从而选中对应的单元。2.12 存储地址寄存器(MAR )和存储数据寄存器(MDR )各有何用处?答: MAR 将所要寻找的存储单元的地址暂存下来,以备下一条指令之用。MDR 是将要写入RAM中去的数据暂存起来,以等待控制器发出指令再将数据写入RAM中去。P332, 4, 5, 6, 7, 8, 9,11, 12第 3 章习题3.1 略去3.

10、2 程序计数器PC 的内容是什么意义?答:程序计数器PC 存储的内容是指令的地址码。每次运行指令前,先复位到0,每取出执行一条指令, PC 加 1.3.3 指令寄存器IR 从 PROM 接收到指令字(8 位)后的运行过程如何?起什么作用?答:( 1)指令寄存器IR 从 PROM 接收到指令字后,就立即将其高4 位送到控制部件。.(2)控制部件经过分析后就发出控制指令,将IR 的低 4 位数送到存储地址寄存器MAR ,MAR 将此低 4 位数作为地址并用于访问PROM 。故第 1 次访问 PROM 的是其指令区,第2 次访问的是其数据区。3.4略3.5环形计数器有何用处?什么叫环形字?答:( 1

11、)环形计数器用来发出顺序控制信号(即用来发出环形字),从而产生机器节拍。(2)环形字是其 6 位输出端依次轮流为高电平,并且是在最位一位(左边第1 位)置1 后又回到右边第 1 位,从而形成环形置位。3.6 什么叫例行程序?什么叫机器周期、取指周期和执行周期?本章简化式计算机的机器周期包括几个时钟周期(机器节拍)?机器周期是否一定是固定不变的?答:( 1)例行程序:由厂家编好的执行每个程序(在本章中即为每条指令)所需要的机器节拍( 3 个,见 P49)(2)机器周期:执行一条指令的时间。(3)取指周期:取一条指令所需的3 个机器节拍。(4)执行周期:执行一条指令所需的机器节拍(一般也为3 个机

12、器节拍)(5)本章简化式计算机的机器周期包括6 个机器节拍。补充:机器节拍:即一个时钟周期(时钟一个高电平+一个低电平)( 6)不一定。只不过固定了在 6 个节拍完成一个机器周期的计算机被称为固定周期的计算机。3.7 控制部件包括哪些主要环节?各有何用处?答:( 1)控制部件包括环形计数器、指令译码器、控制矩阵和其他控制电路。( 2)环形计数器用来产生环形字,从而产生机器节拍;指令译码器: 将高四位组成的编码信息译成某一控制线为高电位。控制矩阵:用来产生控制字 CON ,即产生所有控制信号。其他控制电路包含时钟脉冲发生器、运行 / 停车触发器、 “启动”和“清除”按钮。其作用见 P54.3.8

13、 子程序计数器有何用处?答:也是用来作为一个程序计数器的。3.9-3.11略去3.12 指令寄存器IR 是如何将其指令字段和地址字段分送出去的?这两个字段的位数是否保.持不变?答:( 1)指令寄存器IR 将 8 位指令字的高4 位作为指令字段送到控制部件,而将低4 位做为地址字段通过总线送到存储地址寄存器MAR 中去。(2) 对,保持不变。这由制造厂家确定。第 4 章习题4.1 8086CPU 与 8088CPU 有哪些相同之处?又有哪些区别?答:两者的内部结构基本相同,内部都采用16 位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同,两种处理器都封装在相同的40 脚双列直插

14、组件(DIP )中。但它们的外部性能有区别。8086 是 16 位数据总线,而8088 是 8 位数据总线,在处理一个16 位数据字时, 8088 需要两步操作而8086 只需要一步。4.2 8086 CPU 从功能上分为几部分?各部分由什么组成?各部分的功能是什么?答: 8086CPU 从功能上分为总线接口部分BIU 和执行部件EU 两部分。其中总线接口部分的功能是负责与存储器、I/O 端口传送数据,即BIU 管理在存储器中存取程序和数据的实际处理过程。执行部件EU 的功能负责指令的执行。将指令译码并利用内部的寄存器和ALU 对数据进行所需的处理。BIU 由 4 个段寄存器( CS、 ES、

15、 DS、 SS)、 16 位指令指针寄存器 IP、 20 位的地址加法器和 6 字节的指令队列组成。EU 由 4 个通过寄存器( AX 、BX 、 CX 、 DX )、 4 个专用寄存器( SI、 DI 、 SP、 BP )、标志寄存器 FR、算术逻辑部件 ALU 组成。4.3 8086 CPU 有哪些寄存器组成?各有什么用途?标志寄存器的各标志位在什么情况下置位?答: 8086 CPU 由 4 个通用寄存器(AX 、 BX 、 CX 、DX )、 4 个专用寄存器(SI、 DI 、 SP、BP)、标志寄存器FR 组成,共 9 个寄存器。4 个通用寄存器既可作为 16 位寄存器用,也可作为 8

16、 位寄存器使用。其中 AX 寄存器也常称为累加器。其它寄存器的用途见教材。标志寄存器有6 个状态标志(SF、 ZF 、PF、 CF、 AF 、OF)和 3 个控制标志位(DF、 IF 、TF )。其具体置位见P75 的表 4-1.4.4 8086 系统中的物理地址是如何得到的?假如CS=2000H , IP=2100H 其物理地址应是多少?答: 8086 系统中的物理地址是通过BIU 中的 20 位地址加法器得到的。物理地址计算公式为CS 段地址 *16 (即二进制左移4 位,或者十六进制左移1 位) +IP 偏.移地址。按计算公式,本题中的物理地址为20000H+2100H=22100H 。

17、4.5 什么叫总线周期?8086CPU 的一个总线周期包括多少时钟周期,什么情况下要插入T W等待周期?插入多少个T W 取决于什么因素?答:总线周期是CPU 或其他总线控制设备访问一次存储器或I/O 端口所需的时间。在总线周期中需要利用总路线。补充:指令周期:指令周期是机器执行一条指令所需的时间。8086CPU 的一个标准总线周期包括4 个时钟周期。当4 个时钟周期不能完成所规定的操作时,可以插入一个或多个等待时钟周期T W 。插入多少个 T W 取决于所访问的存储器或者I/O 设备是否准备就绪,此信号由引脚READY发出。4.6 什么是最大模式?什么是最小模式?用什么方法将8086/808

18、8 置为最大模式和最小模式?答:所谓最小模式,就是在系统中只有8086/8088 一个微处理器。最大模式中,饮包含两个或多个微处理器,其中主处理器是8086/8088,其他处理器是协处理器(如数值运算协处理器8087,输入 /输出协处理器8089)。用硬件方法来决定 8086/8088 的工作模式,具体是通过引脚 MN / MX 控制信号引脚来决定,其接 +5 伏,则为最小模式,接地为最大模式。4.7 什么是地址锁存器?8086/8088 系统中为什么要用地址锁存器?锁存的是什么信息?答:( 1)地址锁存器就是一个寄存器,它根据控制信号的状态,将总线上的地址代码暂存起来,即用于“锁定”一个(系

19、列)数字状态的电路。简答:地址锁存器是用来锁存/保存地址的一个寄存器(即一个普通的时序电路),是触发器的原始形式。目的是某次传送数据并不能一次完成所以锁存地址以免CPU 重复的传送一个地址。原理: CPU 送地址到锁存器8282/8283 之后,内存在地址锁存器中找地址,而不是向CPU要地址。(2)因为 8060/8088 系统采用的是地址/数据分时复用总线,即用同一总线传输数据又传输地址,当微处理器与存储器或IO 交换信号时,首先由CPU 发出存储器地址,同时发出允许锁存 ALE 给锁存器,当锁存器接到该信号后将地址/数据总线上的地址锁存在总线上,随后才能传输数据。个人理解:因为在总线周期的

20、前半部分,CPU 总是送出地址信号和BHE (总线高允许)信号,为了通知地址已经准备好了,可以被所锁存,CPU 会送出高电平允许锁存信号ALE 。此时地址信号和 BHE 信号被锁存。由于有了锁存器对地址信号和BHE 信号的锁存, CPU在总线周期的后半部分,地址和数据都在总线上,确保了CPU 对锁存器和 I/O 接口的读 /写.操作。(3)锁存的是复用总线上的地址信息。4.8 8086/8088 系统中的8286 是什么器件?起什么作用?答:( 1) 8286 是总线驱动器(又称总线收发器,双向数据缓冲器)。(2)在一个系统所含的外设接口较多时,它用来增加数据总线的驱动能力。4.9 8086/

21、8088 系统中用时钟发生器8284A 产生哪些信号?答: 8284A 产生恒定的时钟信号、准备信号(READY )及复位信号(RESET )。4.10 8086 最基本的操作是什么?答:是总线操作4.11 8086/8088 系统中引入了哪些中断?是如何引入的?答: 8086 共有 256 种类型的中断。从产生中断的方法,可以将其分为硬件中断和软件中断两大类,硬件中断中的非屏蔽中断是通过CPU 的 NMI引脚进入的,可屏蔽中断是通过CPU 的 INTR 引脚进入的,并且只有当中断允许标志IF 为 1 时,非屏蔽中断才能进入。软件中断是CPU 根据软件中的某条指令或者软件对标志寄存器中某个标志

22、的设置而产生的。4.12 什么是可屏蔽中断?什么是非屏蔽中断?可屏蔽中断是指受中断标志IF 屏蔽的中断,由INTR 引脚进入。非屏蔽中断是不受中断标志IF 屏蔽的中断,由NMI 引脚进入。4.13 什么是中断向量?中断向量表指的是什么?中断向量表放在什么地方?答:( 1)中断向量是中断处理子程序的入口地址,每个中断类型对应一个中断向量。(2)中断向量表是指在8086/8088 微机系统的内存中,专门留出的0 段的 000003FH 区域,用于存放所有的256 个中断向量。(3)中断向量表放在0 段的 000003FH 区域。4.14 假如中断类型为8,它的中断服务入口地址是多少?答:中断类型8

23、*4=32 ,即十六进制20H,所以其中断服务入口地址为20H.第 5 章习题5.1 分别指出下列指令中的源操作数和目的操作数的寻址方式:(1) MOV SI, 200;源操作数为立即数寻址(2) MOV CX, DATASI;源操作数为(3) ADD AX, BXDI;源操作数为基址加变址的寄存器间接寻址.(4) AND AX, BX源操作数为寄存器寻址( 5) MOV SI, AX;源操作数为寄存器寻址( 6) PUSHF ; 为寄存器寻址对于目的操作数,前4 小题均为寄存器寻址, ( 5)题为寄存器间接寻址。5.2 试述指令MOV AX, 2010H和 MOV AX, DS:2010H的

24、区别中。答:前者为将十六进制数2010H 送到寄存器AX 中去;后者为将数据段DS 中偏移地址为2010H 、 2011H 两单元中的内容送到AX 中去。5.3 写出以下指令中内存操作数的所在地址。( 1) MOV AL, BX+5答:源操作数的地址为BX+5 ,默认段寄存器为数据段寄存器DS,又因 BX 为基址寄存器,所以寻址方式为数据段相对基址寻址;( 2) MOV BP+5, AX答:目的操作数的地址为BP+5 ,默认段寄存器为堆栈段寄存器SS,又因BP 为基址寄存器,所以寻址方式为堆栈段相对基址寻址;(3) INC BYTE PTR SI+3答:此句意思为将SI+3 所指的存储单元的内

25、容加1; PTR 的意义是定义其后的内容变量的新类型为字节属性,具体用法见第7 章 P159.内存操作数的地址为SI+3 ,属于相对变址寻址;( 4) MOV DL, ES: BX+DI答:源操作数为附加段基址加变址的寻址方式;( 5) MOV BX, BX+SI+2答:源操作数的内存地址为BX+SI+2 ,属于数据段相对基址加变址寻址。5.4 判断下列指令书写是否正确:( 1) MOV AL, BX答:不对,一个8 位,一个16 位;( 2) MOV AL,CL答:正确( 3) INC BX答:正确( 4) MOV 5, AL答:不对,目的操作数不能是立即数。( 5) MOV BX, SI答

26、:不对,两个存储单元之间不能直接传送数据;( 6) MOV BL, F5H.答:正确( 7) MOV DX, 2000H答:正确( 8) POP CS答:不对,段寄存器CS 和立即数都不能作目的操作数( 9) PUSH CS答:正确。注:本部分可以用DEBUG 中的 -a 指令进行调试以确认指令是否正确5.5 设堆栈指针SP 的初值为 2000H , AX=3000H , BX=5000H ,试问:( 1)执行指令 PUSH AX 后 SP=?答:执行 PUSH 指令时,栈顶指针SP 自动减 2,所以 SP=2000H-2= 1FFE H ;( 2)再执行 PUSH BX 及 POP AX 后

27、 SP=? AX=? BX=?答:执行 PUSH BX 后 SP=1FFE H- 2 ;再执行 POP AX 后 SP=(1FEE H-2 )+2=1FFE H ;此时 AX 中的内容为原 BX 中的内容,故 AX=5000H ;而 BX 中的内容没有改动,即还是 5000H.5.6 要想完成把 2000H 送 1000H 中,用指令:MOV 1000H, 2000H是否正确 ?如果不正确,应用什么方法?答:不正确,因为两个存储单元之间不能直接传送数据。可以改为:MOV AX, 2000HMOV 1000H, AX5.7 假如想从 100 中减去 AL 中的内容,用 SUB 100, AL 是

28、否正确?如果不正确,应用什么方法?答:不正确,因为立即数不能做为目的操作数。可以改为:MOV BL, 5AH; 100 的 16 进制数表达式为5AHSUB BL, AL5.8 用两种方法写出从88H 端口读入信息的指令。再用两种方法写出从42H 口输出 100H 的指令。答:法一: IN AL, 88H;法二: MOV DL, 88HIN AL, DL(2) 法一: MOV AX, 0100HOUT 42H, AX;将 AX 中的内容输出到42H、 43H 两端口中,其中00H 送 42H 端口中,.01H 送到 43H 端口中法二: MOV AX,0100HMOV DX, 42HOUT D

29、X, AX5.9 假如 AL=20H ,BL=10H ,当执行 CMP AL , BL 后,问:( 1)若 AL 、 BL 中内容是两个无符号数,比较结果如何?影响哪几个标志位?答:对无符号数,执行 CMP 后影响 CF、 ZF 位。第一个数AL 为:0002 0000第二个数BL 为:0001 00000001 0000故执行后标志为分别为ZF=0 ; CF=0;(2)若 AL 、 BL 中内容是两个有符号数,结果又如何?影响哪几个标志位?答:对有符号数,执行CMP 指令后影响ZF 和 OF 标志位,不影响CF 位。执行后标志位分别为ZF=0 ; OF=0第 6 章习题6.1 读下面程序段,

30、请问:在什么情况下,本段程序的执行结果是AH 0?BEGIN:INAL,5FHTESTAL,80HJZBRCHlMOVAH, 0JMPSTOPBRCHl:MOVAH , 0FFHSTOP :HLT解答: AL 中的最高位为1 时。6.2 读程序:START:INAL, 20HMOV BL, ALINAL, 30HMOV CL, ALMOV AX, 0ADLOP:ADDAL, BLADC AH, 0DECCLJNZADLOPHLT.请问 : (1)本程序实现什么功能?(2) 结果在哪里 ?解答:完成 20H*30H, 结果在 AX中。6.3请编一程序段完成AX*10 的任务(要求不准用乘法指令做

31、)答: MOV BX,AXMOV CL 2SHL AX, CL;此句实现了AX=AX*4ADD AX,BX;此句使得AX=5AXSHL AX ,1;此句实现了5AX*2=10AX法二: MOV BX,AXMOV CL, 4SHL AX,CLSHL BX,1ADD AX,BX6.4 编程序使:(1)AX寄存器低4 位清零。(2)BX寄存器低4 位置“ 1”。(3)CX寄存器低4 位变反。(4) 用 TEST指令测试 DL 寄存器位 3、位 6 是否同时为 0,若是,将 0 送 DL;否则 l 送DH。解答: (1) AND AX ,0FFF0H(2) OR BX ,000FH(3) XOR CX

32、 ,000FH 或者 NOT CX(但这样 CX的高 4 位也会变反)(4) TEST DL ,48HJZ LOOPMOV DH,1HLTLOOP :MOV DL ,0HLT6.5 编一程序段,完成符号函数(-128 x 127) :1(x0)y=0(x=0)-1(x0)假设 x 的值存放在DATAl 中, y 的值存放在DATA2中。解答: START :MOV AL ,DATA1AND AL,ALJGEBIGRMOVAL,81H;即将 -1 给 ALMOVDATA2 , ALHLTBIGR:JE EQUL;结果为0,转 EQULMOV AL,1MOV DATA2,ALHLTEQUL:MOV

33、 AL, OMOVDATA2,ALHLT.6.6 设 AX寄存器中有一个 16 位二进制数,编一程序,统计 AX 中“ l ”的个数,统计结果送 CX中。解答:START : MOVCX ,0; CX清零也可用XOR CX, CX实现LOOP1:CLC;CF清零SUB AX,0;此句也可用CMP AX,O替代JZ STPSAL AX,1;此句也可用SHL AX,1 替代JNC NODINC CXNOD:JMP LOOP1STP:HLT6 7编一子程序利用XLAT指令把十六进制数转换成ASCII 码。假设ASCII 码存放在以DAT1为首地址的数据区中,对应的16 进制数放在以DAT2为首地址的

34、数据区中,转换结果送以 DAT3为首地址的数据区中。解答: SUBPROC PROCSUBPROC :PUSH BXPUSH SIPUSH DIPUSH CXPUSHALPUSH DSSTART:MOV BX,DATA1 ;将首地址DAT1送到 BX中,作为表的首地址MOV SI ,DAT2MOV DI DAT3MOV CX ,16NEST:LODSB;读字节串,从地址为SI 的 RAM读 16 进制数到AX/ALXLAT;用换码指令XLAT将 AX/AL 中的 16 进制数转换成;对应的ASCII 码STOSB;写字节串,从AX/AL 写到 RAM,即将转换成的ASCII 码送;到目标地址D

35、I 处LOOP NEST; CX! =0,就转向NEST, SI 与 DI 都会自动增1POP DSPOP ALPOP CXPOP DIPOP SIPOP BXRETSUBPROC ENDP本题重点:( 1)所有的串操作指令,如LODSB,STOSB 等都用寄存器SI 对源操作数进行间接寻址;都用寄存器DI 为目的操作数进行间接寻址。(2)在每次循环后,地址指针SI 和 DI 都会受到修改;( 3) XLAT 指令的用法,见教材 P118,用 BX 给定首地址,用 AL/AX 给定偏移地址,再用 XLAT 指令转换。第 7 章习题.7.2 假设学生某门课程的成绩放在数据区中,请编一程序,统计该

36、成绩中小于60 分的人数,6090 分的人数,大于90 分的人数,并显示在屏幕上。答:分析:假设学生成绩放在以DATA1 为首地址的数据区中。DA TASEG SEGMENTDATA1 DB 100 DUP (?)STRING1 DB The student number of grade is bigger than 90STRING2 DB The student number of grade is between 60 and 90STRING3 DB The student number of grade is less than 90DATASEG ENDSSS1 SEGEMENT

37、 STACKDW 30 DUP(?)SS1 ENDSCODE SEGMENTASSUMECS: CODE, DS:DA TASEG, SS:SS1START:MOV AX, DATASEGMOV DS, AXMOVSI, OFFSET DATA1MOV CL, 100(D);将学生人数100 赋给 CLXOR BX, BXXOR AX, AXXOR DX, DXA1 :MOV AX, SICMP AX, 90(D)JA L1CMP AX, 60(D)JAE L2INC CH;用 CH 保存小于60 的人数JUMP A2L1:INC BH;用 BH 保存大于90 的人数JUMP A2L1:INC

38、 BL;用 BL 保存 60 到 90 的人数JUMP A2A2:INC SILOOP A1; - 在屏幕上输出各类人数MOV DX, OFFSET STRING1.MOV AH, 9INT 21HMOV DL, CHMOV AH, 2INT21H; - 输出 60-90 的学生人数MOV DX, OFFSET STRING2MOV AH, 9MOV DL, BLMOV AH, 2INT 21H;- 输出小于60 的学生人数MOV DX, OFFSET STRING3MOV AH, 9MOV DL, BHMOV AH, 2INT 21H;- 程序完成,返回操作系统,结束MOV AH, 4CHI

39、NT 21HCODE ENDSEND START第八章习题8.1 编一初始化程序,使8255A 的 PC5 端输出一个负跳变。如果要求PC5 端输出一个负脉冲,则初始化程序又是什么情况?答:( 1)设置PC5 为负跳变(从1 到 0),即设置PC5 引脚为0 值,其控制字应设置为:0000 1010(即 0AH )。故其初始化程序为:MOV DX, 8255控制端口地址MOV AL,0AHOUT DX, AL(2)负脉冲为(从0 到 -1),故其控制字为:0000 1011(即 0BH )故其初始化程序为:MOV DX, 8255控制端口地址MOV AL,0BHOUT DX, AL8.2 设 8251A 的控制和状态端口地址为52H,数据输入 /输出口地址为50H(输出端口未用) ,.输入 50 个字符,将字符放在BUFFERR 所指的内存缓冲区中。请写出这段程序。答:分析:( 1)工作方式选择本题没有讲清用同步或异步,故可自选,在此选择异步传送,波特率为16,偶校验,停止位为 2 位; 8 个数据位。从而确定工作方式选择字为:11111110,即为 0FEH;(2)操作命令控制字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论