微型计算机原理及应用问题详解_第1页
微型计算机原理及应用问题详解_第2页
微型计算机原理及应用问题详解_第3页
微型计算机原理及应用问题详解_第4页
微型计算机原理及应用问题详解_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、实用标准文档大全微型计算机原理及应用课程辅导材料(习题解答)马义德张在峰徐光柱袁敏 李柏年编兰州大学信息科学与工程学院目录第一章微型计算机发展概述. .实用标准文档大全.1第二章8086/808816位微处理器.2第三章存储器技术. .6第四章指令与寻址方式. .1 0 第五章汇编语言程序设计. .17 第六章输入输出处理方法. .41 第七章微型计算机综合应用与发展. .41第一章 微型计算机的发展概述习题解答1 从第一代计算机第四代计算机体系结构都是相同的,都是由运算器、控制器、存储器以及输入输出组成的、这种体系结构称为什么体系结构?答:冯 诺依曼体系结构。2 一个完整的计算机系统通常包括

2、系统软件和应用软件、硬件系统和软件系统、计算机及实用标准文档大全其外部设备、系统硬件和系统软件这四种组合中的哪一种?答:硬件系统和软件系统。3 通常我们所说的32 位机,指的是这种计算机cpu是什么样的?答:总线的数据宽度为32 位。4 若某台微型计算机的型号是486/25 ,则其中 25 的含义是什么?答: 25 的含义是运算速度是25mb/s。5 操作系统是计算机发展到第几代出现的?答:操作系统是计算机发展到第三代期间出现的。6 决定微机性能的主要是cpu 、总线、 i/o 接口电路的处理速度、价格、 耗电量还是质量?答: cpu 、总线和i/o 接口电路的处理速度。7 现代计算机之所以能

3、自动地连续进行数据处理,主要是它有什么功能?答:它有程序计数器和指令寄存器。8 微机的主要性能指标有哪些?答:主要有cpu的处理速度,总线的数据宽度,内存数据宽度,带外设的能力等。9 有些高级语言程序在计算机中执行时,采用的是解释方式。源程序由哪一种程序边翻译边执行?答:解释程序。10在计算机中为什么要使用局部总线?什么是pci 总线?它和agp总线有什么区别?答:局部总线是在isa 总线和 cpu总线之间增加了一级总线,这样可将一些高速外设从isa总线上卸下来,而通过局部总线直接挂到cpu总线上,使之与高速的cpu相匹配。pci 总线时钟为33mhz ,总线数据宽度为32 位,并可扩展为64

4、 位,具有高速的数据通道,是一种局部总线。agp总线的时钟为66mhz ,传输速率也比pci 快,为 264 mb/s 。目前, agp总线时钟发展到 4x66mhz 。第二章 8086/8088 16位微处理器习题解答1 试说明 8086/8088cpu 中有哪些寄存器?各有哪些用途?答:寄存器组有(1)数据寄存器,含ax 、bx 、cx 、dx四个通用寄存器,用来暂时存放计算过程中所遇到的操作数,结果和其它信息。(2)指针及变址寄存器,含sp 、bp、si、di 四个十六位寄存器, 它们可以像寄存器一样在运算过程中存放操作数只能以字为单位使用。还用来在段内寻址时提供偏移地址。(3)段寄存器

5、,含cs 、 ds 、ss 、es ,用来专门存放段地址。 (4)控制寄存器,包括ip 和 psw 两个 16 为寄存器。 ip 是指令指针寄存器,用来存放代码段中的偏移地址。psw 为程序状态字寄存器,由条件码标志和控制标志构成。条件码标志用来纪录程序运行结果的状态信息。包括of 、sf 、zf、cf、af、pf 。控制标志位有三个寄存器df、if 、tf组成。2 是说明 8086/8088cpu 中标志位寄存器中各标志位的意义?答: of溢出标志,在运算过程中,如操作数超出了机器能表示的范围则置1,否则置 0。sf符号标志,运算结果为负时置1,否则置0。zf零标志,运算结果为0 置 1,否

6、则置0 。cf进位标志,记录运算是最高有效位产生的进位。af辅助进位标志,记录第三位的进位情况。pf 奇偶标志位,用来为机器中传送信息时可能产生的出错情况提供检验条件,当结果操作数中的 1 的个数为偶时置1。df方向标志位,在串处理指令中控制处理信息的方向。当df=1时,每次操作后变址寄存器实用标准文档大全减量,这样就使串处理从高地址向低地址方向处理。if 中断标志,当if=1 时,允许中断,否则间断中断。tf 陷阱标志,用于单步操作方式,当tf为 1 时,每条指令执行完后产生陷阱,由系统控制计算机。当tf为 0 时, cpu正常工作不产生陷阱。3哪些操作只能隐含使用某个段寄存器,而不能用其它

7、段寄存器代替?哪些操作出隐含使用某个段寄存器外,还可以使用其它段寄存器?答:计算程序的地址隐含使用cs ,正在执行的程序隐含使用ss,而数据的地址隐含使用es和 ds 。48086/8088 系列违纪在存储器中寻找存储单元时,逻辑地址由哪两个部分组成的?答:由段地址和偏移地址两部分构成。5设 ibm pc微机内存中某个单元的物理地址是12345h,试完成下列不同的逻辑地址表示:( 1)1234h:_h ( 2)_h:0345h 答: (1)1234h:05h (2) 1200h:0345h 6假设某程序执行过程中, (ss )=0950h,(sp)=64h, 试问该用户程序的堆栈底部物理地址是

8、多少?答: (ss)*10h+(sp)=09564h 7设堆栈段寄存器(ss)=0e4bh,程序中设堆栈长度为200h 个字节。试计算出堆栈底部字单元物理地址,堆栈指针sp初始值(即堆栈中没有数据时)和sp初始值指向的物理地址。答:物理地址为:3e4b0h, sp的初始值为200h,指向的物理地址为:3e6b1h.。8设某用户程序(ss )=0925h,sp=30h,(ax)=1234h, (dx )=5678h,问堆栈的地址范围是多少?如现有两条进展指令:push ax push ds 试问两指令执行后, (sp ) =? 答:寻址范围:09250h09280h ,sp减 4 为 2ch 。

9、98086cpu与 8088cpu由哪些相同之处?又有哪些区别?答:他们内结构基本相同,不同之处仅在于8088 有 8 条外部数据总线,因此为准16 位。8088 有 16 条外部数据总线,两个cpu的软件完全兼容,程序的编制也完全相同。10 8086cpu从功能上分为几部分?各部分由什么组成?各部分的功能是什么?答: 8086cpu从功能上分外两大部分,一是执行部件(eu ) ,二是总线接口部件(biu) 。执行部件是由以下四部分组成:(1)4 个通用寄存器ax ,bx ,cx ,dx。 (2)4 个专用寄存器bp ,sp,xi,di。 ( 3)标志寄存器fr 。 (4)算术逻辑部件alu

10、。功能是负责执行所以的指令,向总线接口部件(biu)提供指令执行的结果数据和地址,并对通用寄存器和标志寄存器进行管理。总线接口部件(biu)由以下部件组成: (1)四个段寄存器,代码段寄存器,数据段寄存器,附加段寄存器,堆栈段寄存器。(2)指令指针寄存器。 (3)地址加法器。 ( 4)指令领队列。功能: 执行外部总线周期,负责存储器与i/o 端口传送数据。 也就是负责cpu与存储器和外设之间的信息交换。12 8086 系统中的物理地址是如何的得到的?假如cs=2000h ,ip=2100h,其物理地址是多少?答: 8086 系统的物理地址是将段地址乘10h,加上偏移地址。 2000h*10h+

11、2100h=22100h (物理地址)13 什么叫总线周期?一个总线周期包括多少时钟周期,什么情况下要插入tw等待周期?插入多少个tw取决于什么因素?答:cpu把总线接口部件biu 完成一次访问存储器或外设操作所需要的时间称为一个总线周期,它包括了四个时钟周期。当访问存储器或外设时,存储器或外设不能及时配合cpu传输数据时, 存储器或外设通过“ ready ”信号在t3之前向 cpu发出一个“数据未准备好”信号,cpu会在 t3之前插入一个或多个等待时间周期。当存储器或外设准备好数据,通过“ready ”发“准备好”信号, cpu接受此信号后,会自动脱离tw状态进入t4状态。因此,插入多少个t

12、w由“ ready ”信号决定。实用标准文档大全14 什么是最大模式?什么是最小模式?用什么方法将8086/8088置于最大模式和最小模式?答:最小模式, 即系统中只有一个微处理器,所有的总线控制信号都直接由8086/8088 ,因此,系统总线控制电路被减到最小。最大模式,即系统里包括两个或多个微处理器,主处理器就是8086/8088 ,其它均为协助主处理器工作的协处理器。它主要用于中等规模或大型的8086/8088 系统中。将 8086/8088 的第 33 脚接地时,系统处于最大模式,接5v 时,为最小模式15 什么是地址锁存器?8086/8088 系统中为什么要用地址锁存器?锁存的是什么

13、信息?答:地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。8086/8088 数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。当微处理器与存储器交换信号时,首先由cpu发出存储器地址,同时发出允许锁存信号ale给锁存器,当锁存器接到该信号后将地址/ 数据总线上的地址锁存在总线上,随后才能传输数据。16 8086/8088系统中的8286 是什么器件?起什么作用?答: 8286 为总线驱动器(收发器,双向数据缓冲器),当一个系统中所含外设接口较多时,用来增强数据总线的驱动能力。17 8086/8088系统用的时钟发生器产生哪些信号?答:时钟发生器8

14、284a产生恒定的时钟信号(clk ) ,复位信号( reset ) ,准备就绪信号(ready ) 。18 8086/8088的执行部件eu由多少个通用寄存器,多少个专用寄存器,几个标志寄存器和什么组成?答:执行部件由以下几部分组成:1、四个通用寄存器 ax bx cx dx;2、四个专用寄存器, 即基数指针寄存器bp ,堆栈指针寄存器sp, 源变址寄存器si,目的变址寄存器di;3 一个标志寄存器fr ;4 算术逻辑部件alu 。19 8086/8088的指令队列长度分别为多少个字节?答: 8086 的指针队列为6 个字节, 8088 的指针队列有4 个字节。20 8086与 8088 的

15、 16 位寄存器中,有多少个寄存器可拆分为8 位寄存器使用。它们分别是什么?它们又被统称为什么?答:在 8086 与 8088 的 16 位寄存器中,有四个寄存器可拆分为八位寄存器使用,它们分别是 ax ,bx , cx ,dx 。统称为通用寄存器。21pu从主存取出一条指令并执行该指令的时间称() ,它通常用若干个()来表示,而后者又包括若干个() 。指令周期机器周期时钟周期答: 1 23 22 计算机时钟脉冲的频率称为什么?,其倒数又称为什么?答:计算机的时钟脉冲频率称为时钟频率,即主频。其倒数为时钟周期。22计算机主频为8mhz ,每个机器周期平均含两个时钟周期,每条指令平均有2.5 个

16、机器周期,则该机器的平均指令执行速度为多少mips?答:该机器执行一条指令所用时间为:1/8*10-6*2*2.5=5/8*10-6t; 平均指令执行速度为:1/ (5/8)=1.6mips。24 8086/8088的存储器可以寻址1mb的空间, 在对 i/o 进行读写操作时,20 位地址中只有哪些位是有效的?这样,i/o 地址的寻址空间为多大?答:在对i/o 进行读写操作时,20 位地址中只有a0a15有效, i/o 地址的寻址空间为216b。25 指令队列的作用是什么?答:指令队列存放内存中取下的将被执行的下一条或下几条指令,使 cpu执行完一条指令就可立即执行下一条,提高cpu的效率。2

17、6 8086cpu 可访问的存储空间为1mb ,实际上分为奇数存储体和偶数存储体两部分,对奇数存储体的选择信号是什么,对偶数存储体的选择信号是什么,对每个存储体单元的选择信号是什么?实用标准文档大全答:奇数存储体的选择信号为bhe ,偶数存储体的选择信号为a0。对每个存储体内存储单元的选择信号是ready 。27 8086有两种工作方式,即最小模式和最大模式,它由什么信号决定?最小模式的特点是什么?最大模式的特点是什么?答: 8086 的两种工作模式由maxmn /信号决定。当接入5v 时,系统处于最小模式,只有一个微处理器,总线控制逻辑部件被减到最小。当接地时,系统处于最大模式,实现多处理器

18、控制系统,主要应用于大中型系统。28 当iom /=0, rd =0,w r=1 时, cpu完成的操作是什么?答: cpu完成一个对i/o 设备端口的读操作。29 8088与 8086 在软件上是否完全兼容?答: 8086/8088 内部都采用16 位字进行操作及存储器寻址。因此两者软件完全兼容。第三章存储器技术习题解答1 半导体存储器从器件原理的角度可分为哪两种类型?答:半导体存储器从器件原理角度分为rom 和 ram 两种。2 磁盘和磁带属于哪种类型的存储器?答:磁盘和磁带同属于外存储器。3 半导体静态ram 和半导体动态ram 分别靠什么原理存储信息?答:静态 ram :用一个触发器电

19、路作为1 个 bit的基本存储单元,每个触发器能置位存储1,或复位存储0。动态 ram :每 bit只需一个管子和一个电容,存放的信息是1 还是 0,决定于电容中是否储存电荷。4 为保证动态ram 中的内容不消失,需要进行哪一步操作?答:由于电容有漏放电现象,为保证 ram 中的内容不消失, 必须另外设计一种电路,定时(一般为 2ms) ,使电容上泄放的电荷得到补充,即进行内存刷新。5 存储器片内的地址译码有哪两种方式?实用标准文档大全答:存储芯片内的地址译码有全地址译码和独立译码两种。6 存储器是计算机系统的记忆设备,它主要用来存储哪些东西?答:存储器用来存储地址、数据和程序。7 存储字长和

20、存取周期分别指什么?答:存储字长是指存放在一个存储单元中的二进制代码个数。存取周期是指存储器进行连续读写操作所允许的最短时间间隔。8 和外存相比,内存的特点有哪些?答:和外存相比,内存的特点是容量小、速度快、成本高。9 某计算机主存容量为2048kb ,这里的2048kb表示多少个字节?答: 2048kb表示 2048*1024 个 byte ,即 2(11)*2(10)=2( 21)个。10 某计算机的主存为3kb,则内存地址寄存器需多少位就足够了?答:主存为3kb,则地址线有12 条,所以内存地址寄存器需12 位。11 若 256kb的 sram 具有 8 条数据线,则它具有多少条地址线?

21、 答:具有18 条地址线。12 计算机的内存可采用rom 、ram 、磁盘中的哪几种?eprom 指的又是什么?主存和 cpu之间增加高速缓存的目的是什么?采用虚拟存储器的目的是什么?答:可采用rom 和 ram 。eprom 指可编程并可擦除的rom ,兼有 rom 和 ram 的功能。由于主存储器的存 / 取时间比 cpu慢一个数量级,从而严重影响了微型机的速度,而ram 线路的读写时间可与cpu的处理速度处于同一个数量级,因此在主存储器和cpu之间增加高速缓冲存储器 cache,以提高机器的速度。虚拟存储器的容量比实际物理上主存储器的容量大,软件可根据需要将所需的存储区域调入物理存储器,

22、也可以提高处理速度。13 某以 8088 为 cpu的微型计算机内存ram 区为 00000h3ffffh ,若采用6264、62256、2164 或 21256 各需要多少片芯片? 答: 采用 6264 (8k*8bit) 需要 32 片; 采用 62256 (32k*8bit) 需要 8 片; 采用 2164 (64k*1bit) 需要 32 片;采用21256 (256k*1bit)需要 8 片。14 利 用 全 地 址 译 码 将6264 芯 片 接 在8088 的 系 统 总 线 上 , 其 所 占 地 址 范 围 为be000hbffffh,试画连接图。解答:采用全地址译码连接图如

23、下:15 试利用 6264 芯片,在8088系 统 总 线 上 实 现00000h03fffh 的 内 存 区域,试画连接电路图。解答:采用全地址译码。a010a19a28a37a46a55a64a73a825a924a1021a1123a122cs120cs226we27oe22d011d112d213d315d416d517d618d7196264d0d7a0a1a12+5vmemrmemwa19a18a17a16a15a14a138088系统bus.图 314 电路图a010a19a28a37a46a55a64a73a825a924a1021a1123a122cs120cs226we27

24、oe22d011d112d213d315d416d517d618d7196264d0d7a0a1a12+5vmemrmemwa19a18a17a16a15a14a138088系统bus.图 314 电路图实用标准文档大全16 叙述 eprom 的编程过程,说明eeprom 的编程过程。答: prom的编程有两种方式,即标准编程和灵巧编程两种方式。标准编程的过程为:使 vcc为+5v ,vpp 加上 +21v 。而后,加上要编程的单元地址,数据线加上要写入的数据,使ce保持低电平, oe为高电平。当上述信号稳定后,在pgm 端加上 505ms 的负脉冲。这样就将一个字节的数据写到了相应的地址单元

25、中。重复上述过程, 即可将要写入的数据逐一写入相应的存储单元中。 灵巧编程方式要比标准方式快5 倍左右。当加上 vcc= 5v, vpp=21v 后,对一个写入地址,用1ms编程脉冲进行编程,接着进行校验,如不成功,再加1 ms 编程脉冲。最多可进行15 次,若 15 次仍不能将数据正确写入,则认为芯片本身已损坏。若某一单元用 x次 1 编程脉冲已正确写入,校验到这种情况后,立即对该单元加入4 倍 x 的编程覆盖脉冲,则认为该单元编程已完成。重复上述过程,将所有要写入的单元编程。将数据写入eeprom 有两种方式,即字节方式和自动页写入。在对eeprom 编程时,可以在线操作。17 有 2 片

26、 6116,现欲将它们接到8088 系统中去,其地址范围为40000h到 40fffh ,试画连接电路图。利用写入某数据并读出比较,若有错,则在dl中写入01h;若每个单元均对,则在dl写入 eeh ,试编写此检测程序。解答:连接电路图见下一页。18 若用全地址译码将eprom 2764(128或 256)接在首地址为a0000h的内存区,试画出电路图。解答:电路图如下:19 第 15 题中,若8088 的时钟频率为 5mhz , 6264 芯片的读写时间均 200 ns ,试粗略估计该芯片能否直接使用。答: 8088 的时钟频率为5mhz ,则读写时间为200ns,与 6264 芯片的读写时

27、间相同,若该芯a1b2c3e14e25e36y015y114y213y312y411y510y69y7774ls138a010a19a28a37a46a55a64a73a825a924a1021a1123a122ce20oe22pgm27vpp1d011d112d213d315d416d517d618d7192764+5vreseta19a18a17a16a13a14a15memrd -d0 7 a -a0 12总线信号memrgn28vcc (+ 5v)图 318电路图实用标准文档大全片直接使用,容易出错。17 连接电路图如下:第四章 指令与寻址方式习题解答1试分别说明下列各指令中源操作数和

28、目的操作数使用的寻址方式:()and ax ,0ffh ()and bl,offh ()mov ds ,ax ()cmp si ,cx ()mov ds :0ffh ,cl ()sub bpsi, ah ()adc ax ,0abhbx ()or dx ,-35bxdi a08a17a26a35a44a53a62a71a823a922a1019e18g20w21d09d110d211d313d414d515d616d7176116a08a17a26a35a44a53a62a71a823a922a1019e18g20w21d09d110d211d313d414d515d616d7176116a1

29、b2c3e14e25e36y015y114y213y312y411y510y69y7774ls138d -d0 7d -d0 7a0a10memwmemra0memwmemra10a11a12a13a19a18a17a16a15a148088系统bus.图 317 电路图实用标准文档大全()push ds () cmc 答:目的操作数源操作数(1)寄存器直接寻址立即数寻址( 2)寄存器直接寻址直接寻址( 3)寄存器直接寻址寄存器直接寻址( 4)寄存器间接寻址寄存器直接寻址( 5)直接寻址寄存器直接寻址( 6)基址变址寻址寄存器直接寻址( 7)寄存器直接寻址寄存器相对寻址( 8)寄存器直接寻址基

30、址变址相对寻址( 9)无寄存器直接寻址(10) 隐含寻址2试分别指出下列各指令语句的语法是否有错,如有错,指明是什么错误。()mov bxbp ,ax ()test bp ,bl ()add si ,abh ()and dh,dl ()cmp cl,1234h ()shr bxdi,3 ()not cx,ax ()lea ds,35si ()inc cx ,1 () push 45di 答: (1)应将 bp,bx其中之一该为si 或 di ( 2)正确( 3)abh改为 0abh ( 4)( 5)是字操作,cl改为 cx ( 6)移位数大于1 时,应用cl ( 7)not指令只有一个操作数(

31、 8)lea指令的源操作数应为一内存单元地址( 9)此指令不用指出1 ( 10)45 改为 45h 3下面两条指令执行后,标志寄存器中cf,af ,zf, sf和 of分别是什么状态? mov dl ,86 add dl ,0aah 答: 0101 , 0110 + 1010,1010 = 1,0000,0000 cf=1 af=1 zf=1 sf=1 of=1 4在 8086/8088cpu 中可用于作地址指针的寄存器有哪些? 答:有 bx ,cx , dx ,bp ,si,di (ip, sp , )5已知 (ds) 09ldh,(ss) 1e4ah , ( ax ) 1234h, ( b

32、x )=0024h, (cx)5678h, (bp )0024h, (si)=0012h, (di ) 0032h, (09226h) 00f6h , (09228h) 1e40h , (1e4f6h )091dh 。下列各指令或程序段分别执行后的结果如何? ()mov cl,20hbxsi ()mov bpdi,cx ()lea bx,20hbxsi mov ax ,2bx ()lds si,bxdi mov si , bx ()xchg cx ,32hbx 实用标准文档大全xchg 20hbxsi,ax 答(1) (cx)=56f6h; (2) (09226h)=5678h; (3) (a

33、x)=1e40h; (4) (1e4f6h)=0024h; (5) (09226h)=1234h,(ax)=5678h. 6已知 (ss) 09l 5h,(ds)0930h,(si) 0a0h ,(di) 1c0h ,(bx) 80h,(bp) 470h。现有一指令“ mov ax , oprd ” ,如源操作数的物理地址为095c0h ,试用四种不同寻址方式改写此指令 (要求上述每个已知条件至少要使用一次) 。答: (1)mov ax ,bp ( 2)mov ax , bp+di+80h ( 3)mov ax , di+0100h mov ax, si+0220h ( 4)mov ax ,

34、02c0h 7 试按下列要求分别编制程序段:()把标志寄存器中符号位sf置 1 。()寄存器 al中高低四位互换。()由寄存器ax,bx组成一个 32 位带符号数 (ax 中存放高十六位) ,试求这个数的负数。()现有三个字节存储单元a,b,c。在不使用add和 adc指令的情况下,实现 (a)+(b)=c 。()用一条指令把cx中的整数转变为奇数( 如原来已是奇数, 则 cx中数据不变,如原来是偶数,则(cx)+1 形成奇数 ) 。答: (1)mov ah, 80h sahf (2 ) mov bl, 0fh and bl, al sal 4 shr 4 xor al, bl (3 ) mo

35、v dx, 7fh sub ax, dx mov dx, 0ffh sub dx, bx mov bx, dx (4 ) mov ah, ffh mov bl, b sub ah, bl mov bh, a sub bh, ah mov c, bh (5 ) mov ax, cx not ax test 01h jnz next hlt next: inc cx hlt 8试给出下列各指令的机器目标代码:()mov bl,12hsi ()mov 12hsi ,bl 实用标准文档大全()sal dx ,1 ()add 0abhbpdi ,1234h 答: (1) 10001010,1101111

36、1=8adf; (2) 10001000,01011100=885c; (3) 11010001,11100010=d1e2; (4) 10000001,10000001=8181. 9执行下列指令后: str1 dw ab str2 db 16dup(?) cnt equ $-str1 mov cx,cnt mov ax,str1 hlt 寄存器 cl的值是多少?寄存器ax的值是多少?答:寄存器cl的值为 12h,寄存器ax的值为 4241h。10 jmp far ptr abcd(abcd 是符号地址 ) 的转移方式是什么?答: jmp fat ptr abcd 的转移方式是段间直接转移.

37、 11 mov ax,es:bxsi的源操作数的物理地址是多少(用cs 、ds 、es 、ss 、 bx 、si 表示出即可)?答 :mov ax,es:bx si的源操作数的物理地址是es 10h+bx+si. 12运算型指令的寻址和转移型指令的寻址,其不同点在什么地方?答:运算型指令的寻址包括立即数寻址。寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址和基址加变址寻址方式。这些寻址方式中,cs,ip寄存器的内容不会发生变化。转移型指令的寻址方式包括段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址。在后三种寻址方式中,cs,ip 寄存器的内容发生改变。13如果table为数据段中0

38、032 单元的符号名,其中存放的内容为1234h,当执行指令”mov ax,table ”和” lea ax,table”后, (ax) 中的内容分别为多少?答:执行mov ax , table后( ax )=1234h 执行 lea ax, table 后(ax )=0032. 14. 当指令” sub ax,bx ”执行后, cf=1 ,说明最高有效位发生了什么现象?对无符号数来说,操作结果发生了什么现象?答:执行指令sub ax,bx 后, cf=1,说明最高位发生了借位对无符号来说,操作结果发生了溢出。15. 在 1000h单元中有一条二字节指令jmp short lab ,如果其中的

39、偏移量分别为30h、6ch 、0b8h ,则转向地址lab的值分别为多少?答:转向地址lab的值分别为:100010h+2h+30h=10032h 100010h+2h+6ch=1006eh 100010h+2h+b8h=100bah 16下面两个语句的区别在什么地方:x1 equ 1000h x2=1000h 答: “equ ”和“ =”都可以作为赋值语句,但二者的区别是equ伪操作中的表达式是不许重复定义的,而“=”伪操作则许重复定义。17. 调用指令call可进行哪四种调用?答:调用指令call可进行段内直接调用,段内间接调用。段间直接调用。段间间接调用。18.(al)=9ah ,(bl

40、)=0bch,当分别进行下列指令运算后,请写出标志位zf、pf、cf、sf的内容: ( p8050) (1)add al,bl (2)sub al,bl (3)and al,bl 实用标准文档大全(4)or al,bl (5)xor al,bl 答: (1)add al , bl 1 0 0 1 1 0 1 0 +)1 0 1 1 1 1 0 0 1,0 1 0 1 0 1 1 0 zf=0,pf=1 cf=1 sf=0 (2)sub al,bl 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 ) 1 0 1 1 1 1 0 0 + )0 1 0 0 0 1 0 0 1 1 0

41、 1 1 1 1 0 zf=0 pf=1 cf=1 sf=1 (3)and al,bl 1 0 0 1 1 0 1 0 and )1 0 1 1 1 1 0 0 zf=0 pf=0 cf=0 sf=0 1 0 0 1 1 0 0 0 (4)or al ,bl 1 0 0 1 1 0 1 0 or)1 0 1 1 1 1 0 0 zf=0 pf=1 cf=0 sf=0 1 0 1 1 1 1 1 0 (5)xor al,bl 1 0 0 1 1 0 1 0 xor )1 0 1 1 1 1 0 0 zf=0 pf=0 cf=0 sf=0 0 0 1 0 0 1 1 0 19. 若(sp)=280

42、0h,试用两种方法实现(sp)=27feh答:方法一:执行一次push 指令 push cx 方法二:执行一次pushf 指令20. 试简述 les reg,src 所完成的操作?答:les reg,src 是将 src和 src+1中的偏移量送到reg 寄存器, 而将 src+2和 src+3中的段基址送es段寄存器。21. 关系操作符eq 、ne 、 lt、gt 、le、ge计算的结果为逻辑值,试问0ffffh代表假, 0 代表真是否正确?答: 0ffffh代表真。 0 表示结果为假。22. 堆栈存取操作是以字节为单位的试分析当堆栈存入数据和从堆栈取出数据时sp 的变化?答:当堆栈存入一个

43、字时,(sp )sp 2 从堆栈中取出一个字时(sp ) sp+2 23. 试编写汇编程序段完成以下功能:将1000 个字符的字符串从内存的buffer1 搬移到内存的buffer2 中去。解答 lea si ,buffer1 lea di,buffer2 mov cx,1000 cld rep movsb 24. 试编写汇编程序段完成以下功能:将数据段中100 个字的数据块block1 搬移到同一个数据段的block2 中去。解答: lea si,block1 实用标准文档大全 lea di,block2 mov cx,100 cld rep movsw 25. 试编写汇编程序段完成以下功能

44、:比较dest 和 source 中的 500 个字节,找出第一个不相同的字节,如果找到,则将source 中的这个数送al中。解答: cld lea di,dest lea si,source mov cx,500 repe cmpb jcxz next dec si mov al,byte ptrsi next :hlt 26. 试编写汇编程序段完成以下功能:求最大值,若自block 开始的内存缓冲区中,有 100 个带符号的数,希望找到其中最大的一个值,并将它放到max 单元中。解答: mov bx ,offset block mov ax ,bx mov cx ,100 add bx,

45、2 f0: cmp ax,bx jge f1 mov ax ,bx f1: add bx,2 jcxz next jmp f0 mov max ,ax next :hlt 27. 假定 (ss)=2000h,(sp)=0100h,(ax)=2107h,执行指令push ax后,存放数据21h的物理地址是多少?解答: 07h 21h 0) y= 0 (x=0) -1 (x0) 假设 x 的值存放在datal中, y 的值存放在data2中。解答: start :mov al ,data1 and al,al jge bigr mov al,0ffh mov data2.al hlt bigr:j

46、e equl mov al,1 mov data2,al hlt equl:mov data2,al hlt 24 设 ax寄存器中有一个16 位二进制数,编一程序,统计ax中“ l ”的个数,统计结果送 cx中。解答: start :mov cx ,0 loop: sub ax,0 jz stp sal ax,1 jnc nod inc cx nod:jmp loop stp:hlt 25编一子程序利用xlat指令把十六进制数转换成ascii 码。假设ascii 码存放在以 dat1 为首地址的数据区中,对应的16 进制数放在以dat2为首地址的数据区中,转换结果送以dat3为首地址的数据区

47、中。解答: main :push bx push si push di push cx push al push ds start:mov bx,data1 mov si ,data2 mov di data3 mov cx ,16 nest:lodsb xlat data1 stosb loop nest 实用标准文档大全 pop ds pop al pop cx pop di pop si pop bx ret 26.( 略) 27试分三种情况说明:当 num 字节单元中数据是什么情况时,temp 字节单元分别是多少? num db xx temp db ? mov al,num test

48、 al,99h jne res and al,99h jmp end0 res: js ne inc al jmp end0 ne : dec al end0 : mov temp,al 答: num 字节单元中的数据是一个八位2 进制数。当其第1、4、5、8 位均为 0 时,将此数装入 temp 单元,若不满足此条件,则又分为两种情况,其最高位为1 时(负数),将此数减1 装入 temp 单元;其最高位为0 时(正数),将此数加1 装入 temp 单元。28试编制一程序, 把 char1 中各小写字母分别转换为对应的大写字母,并存放在 char2各字节单元中: char1 db capita

49、lize char2 db $-char1 dup(?) 解答: mov cx ,0ah mov si ,0 mov ax , 1ah loop1: add ax ,char1si mov char2si, ax inc si loop loop1 29试编制一程序,把da_byl字节单元中数据分解成三个八进制数,其高位八进制数存放在 da-by2字节单元中,最低位存放在da_ by2+2字节单元中。 da_by1 db 6bh da_by2 db 3 dup(0) 解答: mov al ,da-by1+1 shr al ,2 mov da-by2 ,al mov al ,da-by1 and

50、 al ,07h ; (0,111) mov da-by2+2,al 30试编制一程序,找出da数据区中带符号的最大数和最小数。解答: mov cx , length mov bx ,0000h 实用标准文档大全mov dx ,0000h mov si ,0000h loop1: mov ax , addresssi cmp ax ,80h jge w1 cmp ax ,bx jg w2 inc si loop loop1 hlt w1: cmp ax ,dx jge w3 jmp loop1 w3: mov dx ,ax jmp loop1 w2: mov bx ,ax jmp loop1

51、31 试编制一程序,统计出某数组中相邻两数间符号变化的次数。解答: mov cx ,length mov si ,0 mov ax ,addresssi and ax ,80h inc si mov bx ,addresssi and bx ,80h sub bx ,ax neg bx cmp bx ,80h jg w1 loop loop1 hlt w1 inc dx jmp loop1 hlt 32设某数据段已有n个学生的某科成绩( 百分制 ) ,并按学号的次序存放在以stud为首址各字单元的低字节中。现在要求按成绩的高低记入名次,并把名次填入成绩所在字单元的高字节中,各字单元的信息格式为

52、: 15 8 7 0 名次成绩成绩相同者,名次相同。试编制一程序实现上述要求( 不要排序 ) 。解答: start: mov bx , offset stud mov dx ,offset stud ; bx ,dx中放置成绩表的偏移地址 mov cx , n1 ;cx中放置的是要比较的次数 mov si , 0 ;名次放在si 中 loop1 : mov al,dx loop2 : mov bx , bx+2 ;取下一个同学的成绩 cmp al , bx ja next ;如果比下一个同学成绩高则到next即使名次加一实用标准文档大全 dec cx ;否则计数值减一 jne loop2 ;计

53、数不为零再循环取下一个同学成绩 mov dx+1 ,si hlt next: add si , 1 ;名次加一 dec cx jne loop2 mov dx+1,si ;如果计数为零比较完毕,最后将名次放到与成绩相连的单元中去 mov dx , dx+2 ;取下一个成绩去和其他n1 个数比较 loop loop1 hlt end start 33试编制程序,分别对num 中各数统计出有多少个20,余下有多少个5,再余下有多少个 2,再余下有多少个1。统计的各数分别存放在num20 , num5 ,num2 ,num1 的对应位置中,程序要求用主程序子程序形式编制,而且用两种参量传递方法分别编

54、制主程序和子程序。数据段如下: data segment num dw 0133h,0d5fh ,1234h count equ ($-num )/type num num20 db count dup(0) num5 db count dup (0) num2 db count dup (0) num1 db count dup (0) data ends 解答: dada segment num dw 0133h , 0d5fh,1234h count equ ($-num )/type num num20 db count dup (0) num5 db count dup(0) num

55、2 db count dup(0) num1 db count dup(0) cmpnum db 20,5,2,1 data ends code segent assume ds:data assume cs:code main proc far start: mov ax,data mov ds ,ax mov dx ,offset num20 mov cx ,count mov bx ,offset cmpnum mov si ,0 mov di , 0 call cmpdata cmpdata proc near push ax push dx 实用标准文档大全loop: mov dx

56、, di loop1: mov ax, si cmp ax ,dx je next ine si loop loop1 jmp again next: add bxsi ,1 inc si loop loop1 again: mov cx ,4 add di , count loop loop hlt push dx push ax cmpdadt endp main endp code ends end start 34 已知两个正整数be1(114) 和 be2(014) , 但是, bel+be215。 试编制一程序, 把 da_word字单元的内容从第be1位开始, 自左至右的be2个

57、位清零, 其余各位保持不变。处理的数据放在 resu 单元中。解答: mov bl ,be1 mov cx ,be2 mov dx ,0 loop: mov ax ,1 sal ax , bl add dx,ax dec bx dec cx jnz loop ;此循环的目的是保证dx中的 16 位数的 de1位到其后 be2个位全部为一not dx ;将 dx中的数取反,保证be1位到 be2位个数全为零,其他为1 mov bx, offset da-word and bx , dx 35编写一条宏指令clrb ,完成用空格符将一字符区中的字符取代的工作。字符区首地址及其长度为变元。解答: c

58、lrb macro n , cblock mov cx , n ;长度为n mov al , ;把空格送到al中lea di, cblock ;di 中放字符区首地址rep stosb ;重复操作直到cx=0 endm 36某工厂计算周工资的方法是每小时的工资率rate 乘以工作时间hour ,另外每工作满十小时加奖金3 元,工资总数存放在wag 中,请将月工资的计算编写成一条宏指令wages,并展开宏调用: wages r1 ,42 解答:宏定义:wages macro rate,hour mov al ,hour 实用标准文档大全mul rate mov bx ,ax mov ax ,ho

59、ur div 10 mul 3 add bx ,ax mov wag,bx endm 宏调用:wages r1 ,42 宏展开:mov al ,42 mul r1 mov bx ,ax mov ax ,42 div 10 mul 3 add bx ,ax mov wag,bx 37给定宏定义如下: dif macro ax, y mov ax, x sub ax, y endm absdif macro v1, v2,v3 local cont push ax dif v1,v2 cmp ax,0 jge cont neg ax cont : mov v3, ax pop ax endm 试展

60、开以下调用,并判定调用是否有效。 (1)absdif pl,p2, distance (2)absdif bx,si ,xd1 ,cx (3)absdif bxs1,xbxs1 ,240h (4)absdif ax,ax , ax 解答:( 1)宏展开:+ push p1 + mov p1 , x + sub p1 ,p2 + cmp p1,0 + jge ? 0000 + neg p1 +? 0000: mov distance ,p1 + pop p1 调用有效(2)宏展开: + push bx 实用标准文档大全 + mov bx, x + sub bx, si + cmp bx, 0 + jge ? 0000 + n

温馨提示

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

评论

0/150

提交评论