微型计算机原理课后答案.doc

上传人:文初 文档编号:2063316 上传时间:2019-04-11 格式:DOC 页数:13 大小:161KB
下载 相关 举报
微型计算机原理课后答案.doc_第1页
第1页 / 共13页
微型计算机原理课后答案.doc_第2页
第2页 / 共13页
微型计算机原理课后答案.doc_第3页
第3页 / 共13页
微型计算机原理课后答案.doc_第4页
第4页 / 共13页
微型计算机原理课后答案.doc_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、微机原理第一章1计算机按其使用的逻辑元件的不同被分为哪几代?微型计算机是哪一代计算机的分支?答:电子管计算机、晶体管计算机、集成电路计算机和大规模、超大规模集成电路计算机。微型计算机属于第四代计算机的分支。2. 简述冯诺依曼计算机体系结构的基本思想。答:冯诺伊曼基本设计思想为: 以二进制形式表示指令和数据。 程序和数据事先存放在存储器中,计算机在工作时能够高速地从存储器中取出指令并加以执行。 由运算器、控制器、存储器、输入和输出设备等五大部件组成计算机系统。3微型计算机系统由哪几部分组成:答: 微机系统分硬件和软件,硬件包括 CPU、存储器、输入输出设备和输入输出借口,软件包括软件系统和应用软

2、件。6何谓总线?有哪几类?作用如何?答:总线是计算机中各功能部件间传送信息的公共通道。根据所传送的信息的内容与作用不同,总线可分为三类:地址总线、数据总线、控制总线。这三类总线作用为计算机各功能部件间传送地址、数据、控制信息的。8存储器读写操作的不同点?答: 读操作:由 CPU 发出的读命令控制。写操作:由 CPU 发出的写命令控制。 读操作:把数据从内存中读出来,放到 DB 上。写操作:把上的内容,写入到存储器中。第二章 计算机中的数值和编码1、 将十进制数转换为二进制和十六进制(1) 129.751000 0001.11B 81.CH (2) 218.8125 1101 1010.1101

3、BDA.DH(3) 15.6251111.101BF.AH (4) 47.15625 10 1111.0010 1B2F.28 H2、 将下列二进制数转换为十进制和十六进制(1) 111010 B=58 =3A H (2) 1011 1100.111B= 188.875= BC.E H(3) 0.1101 1B=0.84375 =0.D8H (4) 11110.01 B=30.25 =1E.4H3、完成下列二进制数的加减法运算(1) 1001.11100.011110.00 (2) 1101010110.100101100001.001101110101.0110(3) 00111101101

4、1101111111000 (4) 01011101.0110101101.1011101111.10114、完成下列十六进制数的加减法运算(1) 745CH56DFH D14B H (2) ABF.8HEF6.AH9C28.E H (3) 12AB.F73CD.051678 .FC H (4) 6F01HEFD8H7F29 H5、计算下列表达式的值(1) 128.812510110101.1011B 1F.2H101010101.1010B (2) 287.6810101010.11H 8E.EH103.CEH (3) 18.91010.1101B 12.6H1011.100136.5256

5、、选取字长 n 为 8 位和 16 位两种情况,求下列十进制数的补码。 (1) X33 的补码: 1101 1111, 1111111111011111(2) Y33 的补码: 0010 0001, 0000 0000 0010 0001(3) Z128 的补码:1000 0000, 1111 1111 1000 0000(4) N127 的补码: 0111 1111, 0000 0000 0111 1111(5) A65 的补码: 1011 1111, 1111 1111 1011 1111(6) B65 的补码: 0100 0001, 0000 0000 0100 0001(7) C96

6、的补码: 1010 0000, 1111 1111 1010 0000(8) D96 的补码: 0110 0000, 0000 0000 0110 00007、写出下列用补码表示的二进制数的真值(1) X补 1000 0000 0000 0000 H X1000 0000 0000 0000 H32768 (2) Y补 0000 0001 0000 0001 H Y0000 0001 0000 0001 H257 (3) Z补 1111 1110 1010 0101 H Z0000 0001 0101 1011 H347 (4) A补 0000 0010 0101 0111 H A0000 0

7、010 0101 0111 H5998、设机器字长为 8 位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果是否溢出。(1) 438 43补 00101011B ,8 补 00001000B 43补 8 补 00101011B 00001000B 00110011B33H00101011B 00001000B 00110011B C S0,C D0,OFC SC D000 无溢出(1) 438 33H (无溢出) (2) 527 D3 H (无溢出) (3) 6090 96 H (溢出) (4) 728 40 H (无溢出)(5) 33(37) 0BA H (无溢出) (6) 90

8、( 70) 60 H (溢出) (7) 9(7) FE H (无溢出) (8) 6090 E2 H (无溢出)9、 设有变量 x11101111B,y11001001B,z01110010B ,v01011010B,试计算x+y? ,x +z? ,y+z ?,z+v?,请问: 若为无符号数,计算结果是否正确? 若为带符号补码数,计算结果是否溢出?x+y = 11101111B11001001B10111000B1B8 H1110 1111 B 1100 1001B1011 1000B 若为无符号数 若为带符号补码数 CF=1 不正确 CF=1,DF1 OF0 不溢出x+y = 0B8 H x+

9、z = 61 H y+z = 3B H z+v = 0CC H 不正确 不正确 不正确 正确 不溢出 不溢出 不溢出 溢出12. 试计算下列二进制数为无符号数、原码、反码、补码、8421BCD 码时分别代表的数值大小。若为非8421BCD 数时请指出。(1)10001000B无符号数:27+23= 136原码: - 000 1000 = - 8反码: - 111 0111 = - 119补码: - 111 1000 = - 1208421BCD 码: 88(2)00101001B无符号数:25+23+ 20 = 41原码: 41反码: 41补码: 418421BCD 码: 29(3)11001

10、001B无符号数:27+26+ 23+20 = 201原码: - 100 1001 = - 73反码: - 011 0110 = - 54补码: - 011 0111 = - 558421BCD 码: 非 8421BCD 码(4)10010011B无符号数:27+24+ 21+20 = 147原码: - 001 0011 = - 19反码: - 110 1100 = - 108补码: - 110 1101 = - 1098421BCD 码: 93第三章 80X86 微处理器1简述 80868088CPU 中 BIU 和 EU 的作用,并说明其并行工作过程。答: (1) BIU 的作用:计算 2

11、0 位的物理地址,并负责完成 CPU 与存储器或 I/O 端口之间的数据传送。(2) EU 的作用:执行指令,并为 BIU 提供所需的有效地址。(3) 并行工作过程:当 EU 从指令队列中取出指令执行时,BIU 将从内存中取出指令补充到指令队列中。这样就实现了取指和执行指令的并行工作。280868088CPU 内部有哪些寄存器?其主要作用是什么?答:80868088CPU 内部共有 14 个寄存器,可分为 4 类:数据寄存器 4 个,地址寄存器 4 个,段寄存器 4个和控制寄存器 2 个。其主要作用是:(1) 数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。AX,BX,CX,DX(

12、2) 地址寄存器:一般用来存放段内的偏移地址。SP,BP,SI,DI(3) 段寄存器:用于存放段地址. CS,DS,ES,SS(4) 控制寄存器 ,FLAGS,IP 具体寄存器略。280868088CPU 内部有哪些寄存器?其主要作用是什么?答:80868088CPU 内部共有 14 个寄存器,可分为 4 类:数据寄存器 4 个,地址寄存器 4 个,段寄存器 4 个和控制寄存器 2 个。其主要作用是:(1) 数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。AX(Accumulator)称为累加器。用该寄存器存放运算结果可使指令简化,提高指令的执行速度。此外,所有的 IO 指令都使用

13、该寄存器与外设端口交换信息。 BX(Base)称为基址寄存器。用来存放操作数在内存中数据段内的偏移地址, CX(Counter)称为计数器。在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。 DX(Data)称为数据寄存器。在寄存器间接寻址的 IO 指令中存放 IO 端口地址;在做双字长乘除法运算时,DX 与 AX 一起存放一个双字长操作数,其中 DX 存放高 16 位数。(2) 地址寄存器:一般用来存放段内的偏移地址。SP(Stack Pointer)称为堆栈指针寄存器。在使用堆栈操作指令(PUSH 或 POP)对堆栈进行操作时,每执行一次进栈或出栈操作,

14、系统会自动将 SP 的内容减 2 或加 2,以使其始终指向栈顶。BP(Base Pointer)称为基址寄存器。作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。SI(Source Index)称为源变址寄存器。SI 存放源串在数据段内的偏移地址。DI(Destination Index)称为目的变址寄存器。DI 存放目的串在附加数据段内的偏移地址。(3) 段寄存器:用于存放段地址CS(Code Segment)称为代码段寄存器,用来存储程序当前使用的代码段的段地址。 CS 的内容左移 4位再加上指令指针寄存器 IP 的内容就是下一条要读取的指令在存储器

15、中的物理地址。DS(Data Segment)称为数据段寄存器,用来存放程序当前使用的数据段的段地址。 DS 的内容左移 4位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的物理地址。SS(Stack Segment)称为堆栈段寄存器,用来存放程序当前所使用的堆栈段的段地址。堆栈是存储器中开辟的按“先进后出”原则组织的一个特殊存储区,主要用于调用子程序或执行中断服务程序时保护断点和现场。ES(Extra Segment)称为附加数据段寄存器,用来存放程序当前使用的附加数据段的段地址。附加数据段用来存放字符串操作时的目的字符串。(4) 控制寄存器IP(Instmcdon

16、 Pointer)称为指令指针寄存器,用来存放下一条要读取的指令在代码段内的偏移地址。用户程序不能直接访问 IP。FLAGS 称为标志寄存器,它是一个 16 位的寄存器,但只用了其中 9 位,这 9 位包括( 个状态标志位和3 个控制标志位。它用来反映算术运算和逻辑运算结果的一些特征,或用来控制 CPU 的某种操作。380868088CPU 中有哪些寄存器可用来指示操作数在存储器中某段内的偏移地址?答:可用来指示段内偏移地址的寄存器共有 6 个:IP 、SP 、BP、BX、SI、DI480868088CPU 中标志寄存器 FLAGS 有哪些标志位?它们的含义和作用如何?答:标志寄存器中的标志共

17、有 9 个,分为两类:状态标志 6 个和控制标志 3 个。其作用是:(1) 状态标志:用来反映算术和逻辑运算结果的一些特征。CF,AF,PF,ZF,SF,ZF(2) 控制标志位:用来控制 CPU 的操作,由程序设置或清除。DF,IF,TF. 具体寄存器位介绍略。480868088CPU 中标志寄存器 FLAGS 有哪些标志位?它们的含义和作用如何?答:标志寄存器中的标志共有 9 个,分为两类:状态标志 6 个和控制标志 3 个。其作用是:(1) 状态标志:用来反映算术和逻辑运算结果的一些特征。CF(Carry Flag)进位标志位。当进行加减运算时,若最高位发生进位或借位,则 CF 为 1,否

18、则为0。该标志位通常用于判断无符号数运算结果是否超出了计算机所能表示的无符号数的范围。PF(Parity Flag)奇偶标志位。当指令执行结果的低 8 位中含有偶数个 1 时,PF 为 1,否则为 0。AF(Auxiliary Flag)辅助进位标志位。当执行一条加法或减法运算指令时,若结果的低字节的低 4 位向高 4 位有进位或借位,则 AF 为 1,否则为 0。ZF(Zero Flag)零标志位。若当前的运算结果为 0,则 ZF 为 1,否则为 00SF(Sign Flag)符号标志位。当运算结果的最高位为 1 时,SF=1 ,否则为 00OF(Overflow Flag)溢出标志位。当运

19、算结果超出了带符号数所能表示的数值范围,即溢出时,OF=1,否则为 0。该标志位通常用来判断带符号数运算结果是否溢出 o(2) 控制标志位:用来控制 CPU 的操作,由程序设置或清除。它们是:TF(TrapFlag)跟踪(陷阱) 标志位。它是为测试程序的方便而设置的。若将 TF 置1,80868088CPU 处于单步工作方式,否则,将正常执行程序。IP(Interrupt Flag)中断允许标志位。它是用来控制可屏蔽中断的控制标志位。若用 STI 指令将 IF 置1,表示允许 CPU 接受外部从 INTR 引脚上发来的可屏蔽中断请求信号;若用 CLI 指令将 IP 清 0,则禁止 CPU 接受

20、可屏蔽中断请求信号。IF 的状态对非屏蔽中断及内部中断没有影响。DF(DirectionFlag)方向标志位。若用 STD 将 DF 置 1,串操作按减地址方式进行,也就是说,从高地址开始,每操作一次地址自动递减;若用 CLD 将 DF 清 0,则串操作按增地址方式进行,即每操作一次地址自动递增。580868088CPU 的地址总线有多少位?其寻址范围是多少?答:8086/8088 地址总线有 20 根,寻址范围 1MB6什么叫指令队列?80868088CPU 中指令队列有什么作用?其长度分别是多少?答: (1) 指令队列:采用“先进先出”原则,按顺序存放预执行指令的缓冲器称为指令队列。(2)

21、 指令队列的作用:存放 EU 将要执行的指令,使 CPU 的取指和执行指令能并行工作。(3) 指令队列的长度:8086 为 6 个字节,8088 为 4 个字节。7Intel8086 与 8088 有何区别?答:8086 与 8088 的区别有三处:(1) 外部数据总线位数不同(即地址数据分时复用引脚条数不同) ;8086 为 16 位:AD 15AD 0 。8088 为 8 位:AD 7AD 0 。(2) 内部指令队列缓冲器长度不同;8086 有 6 个字节。当指令队列出现 2 个空字节时,BIU 将取指补充。8086 有 4 个字节。当指令队列出现 1 个空字节时,BIU 将取指补充。(3

22、) 外部某些控制总线定义不同。 8086 的 28 号引脚定义为 MIO(S 2),8088 定义为 IOM(S 2) 8086 的 34 号引脚定义为 BHES 7,8088 定义为 SS0(HIGH)8简述 8086 CPU 使用地址锁存信号 ALE 将地址 A15A 0 与数据 D15D 0 分开的工作原理。答:在任何一个总线周期的 T1 状态,ALE 均为高电平,以表示当前地址数据复用线上的输出的是地址信息,在 ALE 由高变低的下降沿时把地址装入地址锁存器,而在 T2、T3 和 T4 状态,ALE 均为低电平,以表示当前地址数据复用线上的输出的是数据信息,此时通过数据收发器进行传送。

23、9什么是逻辑地址?什么是物理地址?若已知逻辑地址为 BA00:A800,试求物理地址。答: 逻辑地址:由段地址和偏移地址表示的存储单元地址称为逻辑地址。物理地址: CPU 对存储器进行访问时实际所使用的 20 位地址称为物理地址。若 逻辑地址为 BA00H:A800H则 物理地址 BA00H10HA800HC4800H10简述堆栈指针寄存器 SP 的功能及堆栈的操作过程。答: (1) SP 的功能:指示进栈和出栈操作时的偏移地址。(2) 堆栈的操作过程:进栈时,先将 SP2,再将数据压入堆栈(即先移后入) ;出栈时,先将数据弹出堆栈,再将 SP+2(即先出后移) 。第四章 80X86 指令系统

24、1、 指出源操作数的寻址方式 MOV BX,2000H ;立即数寻址 MOV BX,2000H ;直接寻址 MOV BX, SI ;寄存器间接寻址 MOV BX,SI2000H ;寄存器相对寻址 MOV BXSI,AL ;寄存器寻址 ADD AX,BXDI80 ;基址变址相对寻址 MUL BL ;寄存器寻址 JMP BX ;段内间接寻址 IN AL,DX ;端口间接寻址 INC WORD PTR BP+10H ;寄存器相对寻址 MOV CL,LENGTH VAR ;立即数寻址 MOV BL,OFFSET VAR1 ;立即数寻址2、 指出下列指令是否正确 (1) MOV DS,0100H ;错误

25、。源操作数是立即数时,目的操作数不能时段寄存器(2) MOV BP,AL ;错误。操作数类型不一致(3) XCHG AH,AL ;正确。(4) OUT 310H,AL ;错误。端口直接寻址的范围应在 0FFH 之间(5) MOV BX,BX ;正确。(6) MOV ES:BXDI ,AX ;正确。(7) MOV AX,SIDI ;错误。存储器寻址中有效地址不能由两个变址寄存器组成(8) MOV SS:BX+SI+100H,BX ;正确。(9) AND AX,BL ;错误。操作数类型不一致(10) MOV DX,DS:BP ;正确。(11) ADD SI,20H ;错误。用 PTR 说明类型(1

26、2) MOV 30H,AL ;错误。目的操作数不能为立即数(13) PUSH 2000H ;错误。堆栈指令的操作数不能是立即数(14) MOV SI,2000H ;错误。两个操作数不能同时为存储器操作数(15) MOV SI,AL ;错误。操作数类型不一致(16) ADD 2000H,20H ;错误。用 PTR 说明类型(17) MOV CS,AX ;错误。目的操作数不能为代码段寄存器(18) INC DI ;错误。需用 PTR 说明类型(19) OUT BX,AL ;错误。端口间接寻址的寄存器只能是 DX 寄存器(20) SHL BX,3 ;错误。移位次数大于 1 时应该用 CL 寄存器(2

27、1) XCHG CX,DS ;错误。交换指令中不能出现段寄存器(22) POP AL ;错误。堆栈指令的操作数只能是字操作数(即 16 位操作数) 3、 写出存储器操作数物理地址的计算表达式(1) MOV AL,DI ;(DS)10H(DI)(2) MOV AX,BX+SI ;(DS)10H(BX)(SI)(3) MOV 5BX+DI,AL ;(DS)10H(BX)(DI)5(4) ADD AL,ES:BX ;(ES)10H (BX) (5) SUB AX,1000H ;(DS)10H1000H(6) ADC AX,BX+DI+2000H ;(DS)10H(BX)(DI)2000H(7) MO

28、V CX,BP+SI ;(SS)10H(BP)(SI)(8) INC BYTE PTR DI ;(DS)10H(DI)4、 若(DS)3000H,(BX)2000H ,(SI) 0100H,(ES) 4000H,计算下列存储器操作数的物理地址。(1) (DS)10H(BX) 3000H 10H2000H32000H (2) (DS)10H(BX) (SI)1000H3000H10H2000H 0100H1000H33100 H (3) (DS)10H(BX) (SI)3000H10H2000H 0100H32100 H (4) (ES)10H(BX)4000H10H 2000H 42000 H

29、5、若(CS)E000H,说明代码段可寻址物理存储空间的范围。 最小物理地址为:(CS)10H0000H E0000H最大物理地址为:(CS)10HFFFFHEFFFFH 代码段可寻址物理存储空间的范围是:E0000HEFFFFH5. 若(CS)=E000H,说明代码段可寻址物理存储空间的范围。代码段物理地址为:(CS):(IP)所以可寻址物理地址范围为:(CS)10H+(IP),其中 IP 的为 16 位寄存器,取值范围为:0000H0FFFFH 所以有寻址范围为: 0E0000H0EFFFFH6、设(SP)2000H ,(AX)3000H , (BX)5000H,执行下列程序段后,(SP)

30、?,(AX)?, (BX)?PUSH AXPUSH BXPOP AX(SP)1FFEH,(AX)5000H, (BX)5000H7、试比较 SUB AL,09H 与 CMP AL,09H 这两条指令的异同。若(AL)=08H,分别执行上述两条指令后,(AL)=?,CF=? ,OF=0,ZF=? (1) 相同点:两条指令都能完成(AL)09H 的功能,并且都影响六个状态标志位;不同点:SUB 指令将运算结果回送到 AL 寄存器中,而 CMP 指令不回送。(2) SUB AL,09H;(AL)=FFH,CF=1,OF=0 ,ZF=0CMP AL,09H;(AL)=08H,CF=1,OF=0,ZF=

31、08、分别执行下列指令,试求 AL 的内容及各状态标志位的状态。(1) MOV AL,19H ;ADD AL,61H ;(AL)=7AH OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0(2) MOV AL,19H ;SUB AL,61H ;(AL)=B8H OF=0 SF=1 ZF=0 AF=0 PF=1 CF=1(3) MOV AL,5DH ;ADD AL,0C6H ;(AL)=23H OF=0 SF=0 ZF=0 AF=1 PF=0 CF=1(4) MOV AL,7EH ;SUB AL,95H ;(AL)=E9H OF=1 SF=1 ZF=0 AF=0 PF=0 CF=19、用

32、最少的指令,实现下述要求的功能。(1) AH 的高 4 位清零。 AND AH,0FH(2) AL 的高 4 位去反。 XOR AH, 0F0H (3) AL 的高 4 位移到低 4 位,高 4 位清 0。 MOV CL,4 SHR AL,CL(4) AL 的低 4 位移到高 4 位,低 4 位清 0。 MOV CL,4SHL AL,CL10、设(BX) 6D16H ,(AX) 1100H,写出下列三条指令执行后,AX 和 BX 寄存器中的内容。MOV CL,06HROL AX,CLSHR BX,CL (AX)=4004 H (BX)=01B4 H11、设初值(AX)0119H,执行下列程序段

33、后, (AX)?MOV CH,AHADD AL,AHDAAXCHG AL,CHADC AL,34HDAAMOV AH,ALMOV AL,CH (AX)=3520 H12、指出下列程序段的功能。(1) MOV CX,10CLDLEA SI,FirstLEA DI,SecondREP MOVSB 将 First 串中前 10 个字符传送至 Second 中(2) CLDLEA DI,0404HMOV CX,0080HXOR AX,AXREP STOSW 将起始地址为 0404 H 开始的 80 H 个单元置成 013、 设(BX)6F30H ,(BP)0200H,(SI) 0046H ,(SS)2

34、F00H,(2F246H) 4154H,试求执行 XCHG BX,BPSI 后, (BX)?,(2F246H)? (BX) 4154H (2F246H)6F30H14、设(BX) 0400H,(DI)003CH,执行 LEA BX,BXDI0F62H后,(BX) ?(BX) 139E H15、设(DS)C000H,(C0010H)0180H,(C0012H)2000H,执行 LDS SI,10H 后,(SI)?, (DS)?(SI) 0180 H,(DS)2000 H16、已知(DS)091DH,(SS)1E4AH,(AX) 1234H ,(BX) 0024H,(CX)5678H ,(BP)0

35、024H,(SI)0012H,(DI)0032H,(09226H)00F6H,(09228H)1E40H,试求单独执行下列指令后的结果。(1) MOV CL,20HBXSI ;(CL)0F6 H (2) MOV BPDI,CX ;(1E4F6 H)5678 H(3) LEA BX,20HBXSI ;(BX)=0056 H MOV AX,2BX ;(AX)=1E40 H(4) LDS SI,BPDI ;MOV SI,BX ;(SI)=0024 H (5) XCHG CX,32HBX ; XCHG 20HBXSI,AX ;(AX)5678 H ,(09226H)1234 H17、若 CPU 中各寄

36、存器及 RAM 参数如图所示,试求独立执行如下指令后, CPU 及 RAM 相应寄存器及存储单元的内容是多少?CPU RAM 执行前 执行后CS 3000H FFFFH CX 20506H 06H 不变DS 2050H 0004H BX 20507H 00H 不变SS 50A0H 1000H SP 20508H 87H 不变ES 0FFFH 17C6H DX 20509H 15H 不变IP 0000H 8094H AX 2050AH 37H 94HDI 000AH 1403H BP 2050BH C5H 不变SI 0008H 1 CF 2050CH 2FH 不变(1)MOV DX,BX+2 ;

37、(DX)=0006H, (BX )=0004H(2)PUSH CX ;(SP)=0FFEH(3)MOV CX,BX ;(CX)=0004H, (BX)=0004H(4)TEST AX,01 ;(AX)=8094H, (CF)=0(5)MOV AL,SI ;(AL)=87H(6)ADC AL,DI ;(AL)=0CCH, (CF)=0DAA ;(AL)=32H(7)INC SI ;(SI)=0009H(8)DEC DI ;(DI)=0009H(9)MOV DI,AL ;(DI) )=94H(10)XCHG AX,DX ;(AX)=17C6H, (DX)=8094H(11)XOR AH,BL ;(

38、AH)=84H, (BL )=04H(12)JMP DX ;(IP)=17C6H18、(DS)2000H,(BX)1256H ,(SI) 528FH,偏移量20A1H,(232F7H) 3280H,(264E5H)2450H,试求执行下述指令后的结果。(1) JMP BX ;(IP)1256 H (2) JMP TABLEBX ;(IP)3280 H (3) JMP BXSI ;(IP)2450 H19、设(IP) 3D8FH,(CS)4050H ,(SP)0F17H,当执行 CALL 2000H:0094H 后,试指出(IP)、(CS)、(SP)、(SP)、(SP) 1) 、(SP)2)和(

39、SP)3)的内容。CALL 指令是 5 字节指令,下一条指令地址为 4050H:3D94H所以执行后(IP) 0094H,(CS)2000H、(SP) 0F13H(SP)94H,(SP)1)00H ,(SP)2)00H,(SP) 3)20H20. 设(IP)=3D8FH,(CS)=4050H,(SP)=0F17CH,当执行:CALL 2000:0094H 后,试指出(IP)、(CS)、(SP)、(SP)、(SP)+1)、(SP)+2)和(SP)+3)的内容。(IP) = 0094H(CS)= 2000H(SP)= 0F178H 压 4 个字节进栈,- 4H(SP)= 8FH(SP)+1)= 3

40、DH (SP)+2)= 50H (SP)+3)= 40H第五章 汇编语言程序设计1.画图说明下列语句所分配的存储空间及初始化情况。(1)42H 59H 54H 45H 00H EEH 00H 07H 01H 02H 01H 02H 07H 00H 07H 01H 02H 01H 02H 07H 00H 07H 01H 02H 01H 02H 07H(2)00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 07

41、H 00H FBH FFH 59H 42H 45H 54H 02H 56H2.(PLENTH)=22H;它表示数据与的长度 3.(L)=06H2.PLENTH 的值为 0022,它表示当前已分配单元空间;3.L 的值为 6;4. 假设程序中的数据定义如下:LNAME DB 1,2,3,123ADDRESS DB 30 DUP(?)CTTY DB 15 DUP(?)CODE_LIST DB 1,7,8,3,2(1)用一条 MOV 指令将 LNAME 的偏移地址放入 BX(2)用一条指令将 CODE_LIST 的头两个字节的内容放入 SI(3)写一条伪指令定义符使 CODE_LENGTH 的值等于

42、 CODE_LIST 域的实际长度。答案(1)MOV BX, OFFSET LNAME(2)MOV SI,WORD PTR CODE_LIST(3)CODE_LENGTH EQU $ - CODE_LIST5. 对于下面的数据定义,试说明三条 MOV 指令的执行结果。TABLEA DW 10 DUP(?)TABLEB DB 10 DUP(?)TABLEC DB 123MOV AX,LENGTH TABLEA ;(AX)= 10MOV BL,LENGTH TABLEB ;(BL)= 10MOV CL,LENGTH TABLEC ;(CL)= 16.(1).(AX)=1 (2).(AX)=2 (3

43、).(CX)=20 (4).(DX)=40 (5).(CX)=17.是说明下列指令中那些需要加上 PR 伪指令定义符。(1).不需要(2)不需要(3)SUB BX,WORD BYTE 2(或其他形式)(4).MOV CL,BYTE PTR WVAL8编一宏定义 BXCHG,将一字节高 4 位和低 4 位交换。BXCHG MARCO OPR MOV AL ,OPR MOV CL,04HROL AH,CLROR AL,CLOR AH , ALMOV OPR,AHENDM9.已知宏定义,展开宏调用:OPP BH,BL,CH,CL+MOV AX,BX+XCHG AL,CL+MOV AX,BL+XCHG

44、 AL,CH+MOV BL,AL10.将寄存器中的 16 位数分成四组,每组四位,分别存放在 AL,BL,CL 和 DL 中。MOV CH,04HMOV CL,ALMOV DL,ALSHR CL,CHAND DL,AHMOV AL,AHMOV BL,AHSHR AL,CHAND BL,0FH或MOV AX, 4A82HMOV DL,AHAND DL,0F0HMOV CL,4SHR DL,CLPUSH AXAND AH,0FHMOV BH,AHAND AL,0F0HMOV BL,ALMOV CL,4SHR BL, CLMOV CL,BHPOP AXAND AL,0FH11. data segme

45、ntstring1 db I am a student.string2 db I am a student .yes db match,0dh,0ah,$no db no match,0dh,0ah,$data endscode segment assume cs:code,ds:data,es:datastart: push ds sub ax,axpush axmov ax,datamov ds,axmov es,axlea si,string1lea di,string2mov cx,string2-string1cldrepe cmpsbjnz dispnomov ah,9lea dx

46、,yesint 21hjmp exitdispno: mov ah,9lea dx,noint 21hexit: MOV AH,4CHINT 21Hcode ends11.试编写一程序,要求比较两个字符串 STRING1 和 STRING2 所含字符是否相同,若相同则显示 MATCH,若不相同则显示 NOMATCH.解:DATA SEGMENTSTRING1 DB ABCDESTRING2 DB ABCDEFMESG1 DB MATCH$MESG2 DB MATCH$DATA ENDS STACK SEGMENTBUF DB 100DUP(?)STACK ENDS CODE SEGMENT MAIN PROC FARSTART:PUSH DSMOV AX,0PUSH AXPUSH ESMOV AX,DATAMOV DS,AXMOV AL,STRING1MOV

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。