微机原理的答案教材_第1页
微机原理的答案教材_第2页
微机原理的答案教材_第3页
微机原理的答案教材_第4页
微机原理的答案教材_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章 8086/8088 16 位微处理器习题解答 1试说明 8086/8088CPU 中有哪些寄存器?各有哪些用途? 答:寄存器组有( 1)数据寄存器,含 AX、 BX、CX、DX四个通用寄存器,用来暂时存放计算 过程中所遇到的操作数,结果和其它信息。 (2)指针及变址寄存器,含 SP、 BP、 SI、DI 四 个十六位寄存器, 它们可以像寄存器一样在运算过程中存放操作数只能以字为单位使用。 还 用来在段内寻址时提供偏移地址。 (3)段寄存器,含 CS、 DS、SS、ES,用来专门存放段地 址。( 4)控制寄存器,包括 IP 和 PSW两个 16 为寄存器。 IP 是指令指针寄存器,用来存

2、放 代码段中的偏移地址。PSW为程序状态字寄存器,由条件码标志和控制标志构成。条件码标志用来纪录程序运行结 果的状态信息。包括 OF、SF、ZF、CF、AF、PF。控制标志位有三个寄存器 DF、IF 、TF组成。 2是说明 8086/8088CPU 中标志位寄存器中各标志位的意义?答: OF溢出标志,在运算过程中,如操作数超出了机器能表示的范围则置1,否则置 0。SF符号标志,运算结果为负时置 1,否则置 0。ZF零标志,运算结果为 0置1,否则置 0 。 CF进位标志,记录运算是最高有效位产生的进位。 AF辅助进位标志,记录第三位的进位情况。PF 奇偶标志位,用来为机器中传送信息时可能产生的

3、出错情况提供检验条件,当结果操作 数中的 1 的个数为偶时置 1。DF方向标志位,在串处理指令中控制处理信息的方向。当DF=1 时,每次操作后变址寄存器减量,这样就使串处理从高地址向低地址方向处理。 IF 中断标志,当 IF=1 时,允许中断, 否则间断中断。 TF陷阱标志,用于单步操作方式,当 TF为 1时,每条指令执行完后产生陷 阱,由系统控制计算机。当 TF为 0 时, CPU正常工作不产生陷阱。 3哪些操作只能隐含使用某个段寄存器,而不能用其它段寄存器代替?哪些操作出隐含使 用某个段寄存器外,还可以使用其它段寄存器? 答:计算程序的地址隐含使用 CS,正在执行的程序隐含使用 SS, 而

4、数据的地址隐含使用 ES 和 DS。4 8086/8088 系列违纪在存储器中寻找存储单元时,逻辑地址由哪两个部分组成的? 答:由段地址和偏移地址两部分构成。5设 IBM PC微机内存中某个单元的物理地址是12345H,试完成下列不同的逻辑地址表示:( 1) 1234H:_H( 2) H:0345H答:(1)1234H:05H (2) 1200H:0345H 6假设某程序执行过程中, ( SS)=0950H,(SP)=64H, 试问该用户程序的堆栈底部物理地址是 多少? 答: (SS)*10H+(SP)=09564H 7设堆栈段寄存器 (SS)=0E4BH,程序中设堆栈长度为 200H 个字节

5、。试计算出堆栈底部字单 元物理地址,堆栈指针 SP 初始值(即堆栈中没有数据时)和 SP初始值指向的物理地址。 答:物理地址为: 3E4B0H, SP 的初始值为 200H,指向的物理地址为: 3E6B1H.。 8设某用户程序( SS) =0925H,SP=30H,(AX)=1234H, ( DX)=5678H,问堆栈的地址范围是多 少?如现有两条进展指令:PUSH AX PUSH DS 试问两指令执行后, (SP) =? 答:寻址范围: 09250H09280H, SP减 4 为 2CH。 98086CPU与 8088CPU 由哪些相同之处?又有哪些区别? 答:他们内结构基本相同,不同之处仅

6、在于 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。功能是负责执行所以的指令, 向总线接口部件( BIU)提供指令执行的结果数据和地址,并对通用寄

7、存器和标志寄存器进 行管理。总线接口部件( BIU)由以下部件组成: ( 1)四个段寄存器,代码段寄存器,数据段寄存器, 附加段寄存器,堆栈段寄存器。 (2)指令指针寄存器。 (3)地址加法器。 ( 4)指令领队列。 功能: 执行外部总线周期, 负责存储器与 I/O 端口传送数据。 也就是负责 CPU与存储器和外 设之间的信息交换。12 8086 系统中的物理地址是如何的得到的?假如CS=2000H, IP=2100H,其物理地址是多少?答: 8086 系统的物理地址是将段地址乘 10H,加上偏移地址。2000H*10H+2100H=22100H (物理地址)13 什么叫总线周期?一个总线周期

8、包括多少时钟周期,什么情况下要插入TW等待周期?插入多少个 TW取决于什么因素?答:CPU把总线接口部件 BIU 完成一次访问存储器或外设操作所需要的时间称为一个总 线周期,它包括了四个时钟周期。当访问存储器或外设时, 存储器或外设不能及时配合 CPU传输数据时, 存储器或外 设通过“ READY”信号在 T3 之前向 CPU发出一个“数据未准备好”信号, CPU会在 T3之前插 入一个或多个等待时间周期。当存储器或外设准备好数据,通过“READY”发“准备好”信号, CPU接受此信号后,会自动脱离 TW状态进入 T4状态。因此,插入多少个 TW由“ READY” 信号决定。14 什么是最大模

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

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

11、恒定的时钟信号( 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

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

13、令平均有 2.5 个机器周 期,则该机器的平均指令执行速度为多少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 位地址中只有 A0 A15 有效, I/O 地址的寻址空间为 16216B。25 指令队列的作用是什么? 答:指令队列存放内存中取下的将被执行的下一条或下几条指令,使 CP

14、U执行完一条指令就可立即执行下一条,提高 CPU的效率。26 8086CPU 可访问的存储空间为 1MB,实际上分为奇数存储体和偶数存储体两部分,对奇 数存储体的选择信号是什么, 对偶数存储体的选择信号是什么, 对每个存储体单元的选择信号是什么? 答:奇数存储体的选择信号为 BHE,偶数存储体的选择信号为 A0。对每个存储体内存储单元的选择信号是 READY。27 8086 有两种工作方式,即最小模式和最大模式,它由什么信号决定?最小模式的特点 是什么?最大模式的特点是什么?答: 8086的两种工作模式由 MN /MAX 信号决定。当接入 5V时,系统处于最小模式, 只有一个微处理器, 总线控

15、制逻辑部件被减到最小。当接地时,系统处于最大模式,实现多 处理器控制系统,主要应用于大中型系统。28 当 M /IO =0, RD =0, W R=1时, CPU完成的操作是什么? 答: CPU完成一个对 I/O 设备端口的读操作。29 8088 与 8086 在软件上是否完全兼容?答: 8086/8088 内部都采用 16 位字进行操作及存储器寻址。因此两者软件完全兼容。第三章 存储器技术习题解答1 半导体存储器从器件原理的角度可分为哪两种类型? 答:半导体存储器从器件原理角度分为ROM和 RAM两种。2 磁盘和磁带属于哪种类型的存储器? 答:磁盘和磁带同属于外存储器。3 半导体静态 RAM

16、和半导体动态 RAM分别靠什么原理存储信息?答:静态 RAM:用一个触发器电路作为 1 个 Bit 的基本存储单元, 每个触发器能置位存储 1, 或复位存储 0。动态 RAM:每 Bit 只需一个管子和一个电容,存放的信息是1 还是 0,决定于电容中是否储存电荷。4 为保证动态 RAM中的内容不消失,需要进行哪一步操作? 答:由于电容有漏放电现象, 为保证 RAM中的内容不消失, 必须另外设计一种电路, 定时(一 般为 2ms),使电容上泄放的电荷得到补充,即进行内存刷新。5 存储器片内的地址译码有哪两种方式? 答:存储芯片内的地址译码有全地址译码和独立译码两种。6 存储器是计算机系统的记忆设

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

18、存地址寄存器需 12 位。11 若 256KB的 SRAM具有 8 条数据线,则它具有多少条地址线 ? 答:具有 18 条地址线。12 计算机的内存可采用 ROM、 RAM、磁盘中的哪几种? EPROM指的又是什么? 主存和 CPU之间增加高速缓存的目的是什么?采用虚拟存储器的目的是什么? 答:可采用 ROM和 RAM。 EPROM指可编程并可擦除的 ROM,兼有 ROM和 RAM的功能。由于主 存储器的存 / 取时间比 CPU慢一个数量级,从而严重影响了微型机的速度,而RAM线路的读写时间可与 CPU的处理速度处于同一个数量级, 因此在主存储器和 CPU之间增加高速缓冲存 储器 Cache,

19、以提高机器的速度。虚拟存储器的容量比实际物理上主存储器的容量大,软件 可根据需要将所需的存储区域调入物理存储器,也可以提高处理速度。13 某以 8088 为 CPU的微型计算机内存 RAM区为 00000H3FFFFH,若采用 6264、 62256、2164 或 21256 各需要多少片芯片 ?答:采用 6264(8k*8bit )需要 32 片;采用 6225(6 32k*8bit )需要 8片;采用 2164 (64k*1bit) 需要 32 片;采用 21256 (256k*1bit) 需要 8 片。14 利 用全地址译码将 6264 芯片接在 8088 的系统总线上 ,其所占地址 范

20、围 为 BE000HBFFFF,H 试画连接图。解答:采用全地址译码连接图如下:8088系统BUSD0 .D7A0A1A125432123215 试利用 6264 芯片,在 8088 系 统 总 线 上 实 现 00000H03FFFH的内存区 域,试画连接电路图。 解答:采用全地址译码。987654+5V2227A0D0A1D1A2D2A3D3A4D4A5D5A6D6A7D7A8A9A10A11A12OE6264WECS2CS1241112131518图 3 14 电路图8088系统BUSD0D7A0A1A12MEMRMEMW232227262016 叙述 EPROM的编程过程,说明 EEP

21、ROM的编程过程。A19A18A17A16A15A14A13+5VA0D0A1D1A2D2A3D3A4D4A5D5A6D6A7D7A8A9A10A11A12OE6264WECS2CS11098765432524211112131516171819图 3 14 电路图Vcc 为+5v , Vpp加上 +21v 。而后,CE保持低电平, OE为高电平。当上答: PROM的编程有两种方式,即标准编程和灵巧编程两种方式。标准编程的过程为:使加上要编程的单元地址,数据线加上要写入的数据,使 述信号稳定后, 在 PGM端加上 50 5ms的负脉冲。 这样就将一个字节的数据写到了相应的地址单元中。 重复上述

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

23、 6116,现欲将它们接到 8088 系统中去,其地址范围为 40000H 到 40FFFH, 试画连接电路图。利用写入某数据并读出比较,若有错,则在DL 中写入 01H;若每个单元均对,则在 DL 写入 EEH,试编写此检测程序。解答:连接电路图见下一页。18 若用全地址译码将 EPROM 2764(128或 256) 接在首地址为 A0000H的内存区,试画出电路图。 解答:电路图如下:A 13A 14A 15MEMRAAA总线信19 第 15 题中,若 8088 的时钟 频率为 5MHz,6264 芯片的读写时 间均 200 ns ,试粗MEMR+5VAY0BY1CY274LS138Y3

24、Y4 E1Y5E2Y6E3Y7RESETA 0- A 129876543252421232282022271A0D0A1D1A2D2A3D3A4D4A5D5A6D6A7D7A8A9A10A11A12Vcc (+ 5V)GNCEOE2764PGMVPP151413455611101231112131516171819略估计该芯片能否直接使用。答: 8088 的时钟频率为 片直接使用,容易出错。5MHZ,则读写时间为8088系统BUSD 0- D 7A017 连接电路图如下:A10MEMWMEMRD 0- D 7A0A10D 0- D 70 7200ns ,与 6264 芯片的读写时间相同,若该芯

25、8654321232219图 318 电路图2120188765423MEMW2219MEMRA11A19A18A17A16A15A14A13A12A0D0A1D1A2D2A3D3A4D4A5D5A6D6A7D7A8A9A10WG 6116A0D0A1D1A2D2A3D3A4D4A5D5A6D6A7D7A8A9A10W6116E101113141516179AY0BY1CY2Y3Y4E1Y5E2Y6E3Y71514131211109774LS138图 317 电路图第四章 指令与寻址方式习题解答1试分别说明下列各指令中源操作数和目的操作数使用的寻址方式:()ANDAX,0FFH()ANDBL,

26、OFFH()MOVDS,AX()CMPSI,CX()MOVDS:0FFH , CL()SUBBPSI , AH()ADCAX,0ABHBX()OR DX,-35BXDI()PUSHDS()CMC目的操作数源操作数(1)寄存器直接寻址立即数寻址2)寄存器直接寻址直接寻址3)寄存器直接寻址寄存器直接寻址4)寄存器间接寻址寄存器直接寻址5)直接寻址寄存器直接寻址6)基址变址寻址寄存器直接寻址7)寄存器直接寻址寄存器相对寻址8)寄存器直接寻址基址变址相对寻址9)无寄存器直接寻址(10) 隐含寻址2试分别指出下列各指令语句的语法是否有错,如有错,指明是什么错误。()()()()()()()()()()M

27、OV BXBP , AX TEST BP , BL ADD SI , ABHAND DH, DL CMP CL, 1234H SHR BXDI , 3 NOT CX, AX LEA DS ,35SIINC CX , 1 PUSH 45DI答:( 1)应将 BP, BX其中之一该为 SI 或 DI (2)正确( 3) ABH改为 0ABH是字操作, CL改为 CX 移位数大于 1 时,应用 CL NOT指令只有一个操作数 LEA指令的源操作数应为一内存单元地址 此指令不用指出 1(4)(5)(6)(7)(8)(9)(10)45 改为 45H3下面两条指令执行后,标志寄存器中CF,AF,ZF, S

28、F和 OF分别是什么状态 ?MOVDL, 86ADD DL , 0AAH答: 0101 , 0110 + 1010 ,1010 = 1 , 0000,0000CF=1 AF=1 ZF=1 SF=1 OF=14在 8086/8088CPU 中可用于作地址指针的寄存器有哪些?答:有 BX, CX, DX, BP, SI ,DI (IP,SP,)5已知 (DS) 09lDH,(SS) 1E4AH,( AX) 1234H,(BX)=0024H,(CX)5678H,(BP) 0024H,(SI)=0012H,(DI)0032H,(09226H)00F6H,(09228H) 1E40H,(1E4F6H)

29、091DH。下列各指令或程序段分别执行后的结果如何?)MOVCL, 20HBXSI)MOVBPDI ,CX)LEABX,20HBXSIMOVAX, 2BX)LDSSI , BXDIMOV SI , BX)XCHGCX, 32HBXXCHG 20HBXSI , AX答(1) (CX)=56F6H;(2)(09226H)=5678H;(3)(AX)=1E40H;(4)(1E4F6H)=0024H;(5)(09226H)=1234H,(AX)=5678H.)。6已知 (SS) 09l 5H,(DS)0930H,(SI) 0A0H,(DI) 1C0H,(BX) 80H,(BP) 470H。 现有一指令

30、“ MOVA X, OPRD”,如源操作数的物理地址为 095C0H,试用四种不同寻址方式改 写此指令 ( 要求上述每个已知条件至少要使用一次答:( 1) MOV AX, BPAX,AX,BP+DI+80HDI+0100HSI+0220H02C0H( 2) MOV( 3) MOVAX,MOV AX( 4) MOV 7 试按下列要求分别编制程序段:把标志寄存器中符号位 SF置 1。寄存器 AL 中高低四位互换。由寄存器 AX,BX组成一个 32 位带符号数 (AX 中存放高十六位 ) ,试求这个数 的负数。)现有三个字节存储单元 A, B,C。在不使用 ADD和 ADC指令的情况下, 实现 (A

31、)+(B)=C 。)用一条指令把 CX中的整数转变为奇数 ( 如原来已是奇数, 则 CX中数据不变, 如原来是偶数,则 (CX)+1 形成奇数 ) 。答:(1)MOV AH, 80HSAHF(2 ) MOV BL, 0FHAND BL, ALSAL4SHR4XORAL, BL(3 ) MOV DX, 7FHSUBAX, DXMOVDX, 0FFHSUBDX, BXMOVBX, DX(4 ) MOV AH, FFHMOVBL, BSUBAH, BLMOVBH, ASUBBH, AHMOVC, BH(5 ) MOV AX, CXNOTAXTEST01HJNZNEXTHLTNEXT: INC CXH

32、LT8试给出下列各指令的机器目标代码:)MOVBL,12HSI)MOV12HSI , BL)SALDX,1)ADD0ABHBPDI ,1234H答: (1) 10001010,11011111=8ADF;(2) 10001000,01011100=885C;(3) 11010001,11100010=D1E2;(4) 10000001,10000001=8181.9执行下列指令后:STR1 DW ABSTR2 DB 16DUP(?)CNT EQU $-STR1 MOV CX,CNTMOV AX,STR1HLT寄存器 CL的值是多少?寄存器 AX 的值是多少?答:寄存器 CL 的值为 12H,寄

33、存器 AX的值为 4241H。10 JMP FAR PTR ABCD(ABCD是符号地址 )的转移方式是什么?答: JMP FAT PTR ABCD 的转移方式是段间直接转移 .11 MOV AX,ES:BXSI 的源操作数的物理地址是多少(用CS、DS、ES、SS、BX、SI 表示出即可)?答 :MOV AX,ES:BX SI 的源操作数的物理地址是 ES 10H+BX+SI. 12运算型指令的寻址和转移型指令的寻址,其不同点在什么地方? 答:运算型指令的寻址包括立即数寻址。寄存器寻址,直接寻址,寄存器间接寻址,寄存器 相对寻址和基址加变址寻址方式。这些寻址方式中, CS,IP 寄存器的内容

34、不会发生变化。 转移型指令的寻址方式包括段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址。 在后三种寻址方式中, CS,IP 寄存器的内容发生改变。13如果 TABLE为数据段中 0032 单元的符号名,其中存放的内容为1234H,当执行指令”MOV AX,TABLE”和” LEA AX,TABLE”后, (AX) 中的内容分别为多少?答:执行 MOV AX , TABLE 后( AX) =1234H 执行 LEA AX, TABLE 后 ( AX)=0032.14. 当指令” SUB AX,BX”执行后, CF=1,说明最高有效位发生了什么现象?对无符号 数来说,操作结果发生了什么现象

35、?答:执行指令 SUB AX,BX 后, CF=1,说明最高位发生了借位对无符号来说,操作结果发生 了溢出。15. 在 1000H单元中有一条二字节指令 JMP SHORT LAB,如果其中的偏移量分别为 30H、 6CH、0B8H,则转向地址 LAB的值分别为多少? 答:转向地址 LAB 的值分别为:100010H+2H+30H=10032H 100010H+2H+6CH=1006EH1000 10H+2H+B8H=100BAH 16下面两个语句的区别在什么地方:X1 EQU 1000H X2=1000H答:“ EQU”和“ =”都可以作为赋值语句,但二者的区别是EQU伪操作中的表达式是不许

36、重复定义的,而“ =”伪操作则许重复定义。17. 调用指令 CALL可进行哪四种调用? 答:调用指令 CALL可进行段内直接调用,段内间接调用。段间直接调用。段间间接调用。18. (AL)=9AH , (BL)=0BCH,当分别进行下列指令运算后,请写出标志位ZF、PF、 CF、SF的内容:( P 8050)(1)ADDAL,BL(2)SUBAL,BL(3)ANDAL,BL(4)ORAL,BL(5)XORAL,BL答:(1)ADD AL,BL1 0 0 1 1 0 1 0+)1 0 1 1 1 1 0 01,0 1 0 1 0 1 1 0ZF=0,PF=1 CF=1 SF=0(2) SUB A

37、L ,BL1 0 0 1 1 0 1 01 0 0 1 1 0 1 0)1 0 1 1 1 1 0 0 + )0 1 0 0 0 1 0 0 ZF=0 PF=1 CF=1 SF=1(3) AND AL, BL ZF=0 PF=0 CF=0 SF=01 0 0 1 1 0 1 0AND)1 0 1 1 1 1 0 01 0 0 1 1 0 0 0(4) OR AL,BL1 0 0 1 1 0 1 0 OR)1 0 1 1 1 1 0 0 ZF=0 PF=1 CF=0 SF=01 0 1 1 1 1 1 0(5) XOR AL, BL ZF=0 PF=0 CF=0 SF=01 0 0 1 1 0

38、1 0 XOR)1 0 1 1 1 1 0 00 0 1 0 0 1 1 019. 若(SP)=2800H,试用两种方法实现 (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 表示结果为

39、假。22. 堆栈存取操作是以字节为单位的试分析当堆栈存入数据和从堆栈取出数据时 SP 的变化? 答:当堆栈存入一个字时, (SP)SP 2从堆栈中取出一个字时( SP) SP+223. 试编写汇编程序段完成以下功能:将 1000 个字符的字符串从内存的 BUFFER1搬 移到内存的 BUFFER2中去。解答 LEA SI , BUFFER1LEA DI , BUFFER2MOV CX , 1000CLDREP MOVSb24. 试编写汇编程序段完成以下功能:将数据段中 100 个字的数据块 BLOCK1搬移到 同一个数据段的 BLOCK2中去。 解答: LEA SI , BLOCK1LEA D

40、I , BLOCK2MOV CX , 100CLDREP MOVSW25. 试编写汇编程序段完成以下功能:比较DEST和 SOURCE中的 500 个字节,找出第一个不相同的字节,如果找到,则将SOURCE中的这个数送 AL 中。解答: CLDLEA DI , DESTLEA SI , SOURCEMOV CX , 500REPE CMPBJCXZ NEXTDEC SIMOV AL , BYTE PTRSI NEXT: HLT26. 试编写汇编程序段完成以下功能:求最大值,若自BLOCK开始的内存缓冲区中,有 100 个带符号的数,希望找到其中最大的一个值,并将它放到MAX单元中。解答: MO

41、V BX, OFFSET BLOCKMOV AX, BXMOV CX, 100ADD BX ,2F0: CMP AX,BXJGE F1MOV AX, BXF1: ADD BX,2JCXZ NEXTJMP F0MOV MAX, AXNEXT: HLT27. 假定 (SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令 PUSH AX后,存放数据 21H的物理地址是多少?解答: 原栈顶 20100存放数据 21H 的物理地址是 200FFH第五章 汇编语言程序设计习题解答1 指出下列指令的错误:(1) MOV AH , BX(2) MOV BX ,SI(3) MOV AX ,

42、SIDI(4) MOV MYDATBXSI ,ES: AX(5) MOV BYTE PTRBX , 1000(6) MOV BX , OFFSET MYDATSI(7) MOV CS , AX 答:(1)MOV AH,BX AH 为八位, BX为 16 位( 2) MOV BX ,SI两个操作数不能都是存储单元( 3)MOV AX, SIDI一个操作数中不能用两个变址寄存器( 4) MOV MYDAT BXSI ,E8:AX ESES 后应为一个变址寄存器,表示偏移量( 5) MOV BYTE PTRBX,1000BYTE 说明时 BX 进行字节操作。 而 1000 为字( 6) MOV BX

43、,OFFSET MYDAT SIOFFSET 为取某个地址的偏移量,故后面不应用 SI ,而应是一个符号地址。 ( 7) MOV 是数据寻址,不应用程序段寄存器CS.2下面哪些指令是非法的 ?( 假设 OPl,OP2是已经用 DB定义的变量 )(1) CMP l5 , BX(2) CMP OPl , 25(3) CMP OPl , OP2(4) CMP AX , OPl答:(1) CMP 15,BX 非法,两个操作数不能一个为字,一个为字节( 2) CMP OP1, 25 正确( 3) CMP OP1, OP2 正确( 4)CMP AX, OP1 非法,两操作数不能一个为字,一个为字节 3假设

44、下列指令中的所有标识符均为类型属性为字的变量,请指出下列指令中哪些是非法 的?它们的错误是什么 ?(1)MOV BP , AL(2)MOV WORD_OPBX+4*3DI , SP(3)MOV WORD_OPl , WORD_OP2(4)MOV AX , WORD_OPlDX(5)MOV SAVE_WORD , DS(6)MOV SP , SS: DATA_WORDBXSI(7)MOV BXSI, 2(8)MOV AX , WORD_ OPl+WORD_OP2(9)MOV AX , WORD_ OPl-WORD_OP2+100(10)MOV WORD_ OPl,WORD_ OPl-WORD_O

45、P2 答:( 1) MOV BP, AL非法, BP为 16 位 AL 为八位( 2) MOV WORD_OPBX+4*3DI , SP 正确(3)MOV WORD_OP,1 WORD_OP2 非法,两个操作数不能都是变量(4)MOV AX , WORD_OP1DX 非法, DX 应改为 BX ,BP ,SI 或 DI ,则为寄存器相对寻址。(5)MOV SAVE_WOR,D DS 非法,未指明数据段地址 DS的偏移量(6)MOV SP, SS:DATA_WORDBXSI非法, SS与BX ,SI 不匹配, SS的偏移量用 SP(7)MOV BXSI , 2 正确(8)MOV AX, WORD

46、_OP1+WORD_O正P确2(9)MOV AX, WORD_OP1 WORD_OP2+10正0 确(10)MOV WORD_O,P1WORD_OP1WORD_OP2 非法4假设 VAR1和 VAR2为字变量, LAB 为标号,试指出下列指令的错误之处:(1)ADD VAR1 , VAR2(2)SUB AL , VAR1(3)JMP LABSI(4)JNZ VARl(5)JMP NEAR LAB 答:( 1) ADD VAR1, VAR2ADD 指令中,目的操作数必须是寄存器或存储单元。( 2)SUB AL, VAR1AL 为 8 位的,而 VAR为字变量 16 位( 3) JMP LAB S

47、I 格式不对, LAB处应为一偏移量,而不是标号。( 4) JNZ VAR1JNZ 为非零转移,应转移到某个程序段,故后面应为一个标号。( 5) JMP NEAR LAB段内直接转移,格式应为 JMP NEAR PTR LAB5画图说明下列语句所分配的存储空间及初始化的数据值。BYTE-VAR DB BYTE, 12,-12H,3DUP(0,?, 2DUP(1,2),?)WORD-VAR DW 5DUP(0,1,2),?,-5, BY, TE, 256H 解答:(1)BYTE-VAR( 2)WORD-VAR000001000200000001000200-FBFF594245545602425

48、95445OCF4H0-1212-0-1212-0-1212-BYTE12-12H6试列出各种方法,使汇编程序把5150H 存入一个存储器字中。解答:( 1) DW 5150H ;( 2)DB 50H ,51H;( 3)DB PQ 7请设置一个数据段 DATASG,其中定义以下字符变量或数据变量。FLD1B为字符串变量: personal computer ;FLD2B为十进制数字节变量: 32;FLD3B为十六进制数字节变量: 20;FLD4B为二进制数字节变量: 01011001 ;FLD5B为数字的 ASCII 字符字节变量: 32654;FLD6B为 10 个零的字节变量;FLD7B为

49、零件名( ASCII 码)及其数量(十进制数)的表格:PART1 20PART2 50PART3 14FLD1W为十六进制数字变量: FFF0;FLD2W为二进制数字变量: 01011001;FLD3W为( 7)中零件表的地址变量;FLD4W为包括 5 个十进制数的字变量: 5,6, 7,8,9;FLD5W为 5 个零的字变量;FLD6W为本段中字数据变量和字节数据变量之间的地址差。解答: DATASG SEGMENTFLD1B DB personal computer FLD2B DB 32DFLD3B DB 14HFLD4B DB 01011001BFLD5B DB 32654FLD6B

50、DB 10DUP (0)FLD7B DB PART1,20D,PART2,50D,PART3, 14DFLD1W DW 0FFFOHFLD2W DW 01011001BFLD3W DW FLD7BFLD4W DW 5,6,7,8, 9FLD5W DW 5DUP( 0)FLD6W DW FLD1W-FLD1BDATASG ENDS8假设程序中的数据定义如下:PARTNO DW?PNAME DB 16 DUP(?)COUNT DD?PLENTH EQU $-PARTNIO问 PLENTH的值为多少?它表示什么意义?解答: PLENTH代表着 PARTNO至 PLENTH的地址差,也即三段数据的字节

51、数PLENTH=2。29有符号定义语句如下:BUFF DB 1, 2, 3,123EBUFF DB 0L EQU EBUFF-BUFF 问 L 的值为多少? 解答: L=610假设程序中的数据定义如下:LNAME DB 30 DUP (?)ADDRESS DB 30 DUP(?)CITY DB 15 DUP (?)CODE-LIST DB 1, 7,8,3,2(1)用一条 MOVE指令将 LNAME的偏移地址放入 AX。(2)用一条指令将 CODE-LIST的头两个字节的内容放入 SI 。(3)写一条伪操作使 CODE-LENGT的H 值等于 CODE-LIST域的实际长度。 解答:(1)MOVE AX,0FFSET LNAME;(2)MOVE SI , 0701H;(3)DE-LENGTH EQU LENGTH CODE-LIST。11试写出一个完整的数据段 DATA_SE,G它把整数 5 赋与一个字节,并把整数 -1 ,0,2,5 和 4 放在 10 字数组 DATA_LIST的头 5 个单元中。然后写出完整的代码段, 其功能为:把 DATA- _LIST 中头 5 个数中的最大值和最小值分别存入MAX和 MIN 单元中。解答: DATA_SEG SEGMENTLENGTH DB 5DATA_LIST DW 1,0,2,5,4,5

温馨提示

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

最新文档

评论

0/150

提交评论