汇编语言程序设计第二版

合集下载

《汇编语言程序设计》教案及答案(第二版)

《汇编语言程序设计》教案及答案(第二版)

《汇编语言程序设计》教案附:习题参考答案《IBM-PC汇编语言程序设计》(第2版)沈美明、温冬婵编著教案编写时间:20XX年8月18日前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。

它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。

3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。

(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。

(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。

(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。

(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。

(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。

(7).第九章说明BIOS和DOS系统功能调用的使用方法。

(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。

附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,20XX年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 (5)1.1进位计数制与不同基数的数之间的转换 (5)1.2二进制数和十六进制数的运算 (6)1.3计算机中数和字符的表示 (7)1.4几种基本的逻辑运算 (7)第 2 章80X86计算机组织 (8)2.180X86微处理器 (8)2.2基于微处理器的计算机系统构成 (8)2.3中央处理机 (9)2.4存储器 (10)2.5外部设备 (11)第 3 章80X86的指令系统和寻址方式 (12)3.180X86的寻址方式 (12)3.2程序占有的空间和执行时间 (14)3.380X86的指令系统 (14)第 4 章汇编语言程序格式 (31)4.1汇编程序功能 (31)4.2伪操作 (31)4.3汇编语言程序格式 (35)4.4汇编语言程序的上机过程 (38)第 5 章循环与分支程序设计 (40)5.1循环程序设计 (40)5.2分支程序设计 (41)5.3如何在实模式下发挥80386及其后继机型的优势 (41)第 6 章子程序结构 (43)6.1子程序的设计方法 (43)6.2子程序的嵌套 (44)6.3子程序举例 (44)第7 章高级汇编语言技术 (46)7.1宏汇编 (46)7.2重复汇编 (47)7.3条件汇编 (48)第8 章输入/输出程序设计 (49)8.1I/O设备的数据传送方式 (49)8.2程序直接控制I/O方式 (50)8.3中断传送方式 (50)第9 章BIOS和DOS中断 (53)9.1键盘I/O (53)9.2显示器I/O (55)9.3打印机I/O (56)9.4串行通信口I/O (57)第10 章图形与发声系统的程序设计 (58)10.1显示方式 (58)10.2视频显示存储器 (58)10.3EGA/VGA图形程序设计 (59)10.4通用发声程序 (60)10.5乐曲程序 (61)第11 章磁盘文件存取技术 (62)11.1磁盘的记录方式 (62)11.2文件代号式磁盘存取 (63)11.3字符设备的文件代号式I/O (64)11.4BIOS磁盘存取功能 (65)附录:《IBM—PC汇编语言程序设计》习题参考答案 (66)第一章.习题 (66)第二章.习题 (67)第三章.习题 (68)第四章.习题 (81)第五章.习题 (86)第六章.习题 (104)第七章.习题 (117)第八章.习题 (124)第九章.习题 (129)第十章.习题 (132)第十一章.习题 (143)第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。

汇编语言程序设计(第二版)课后习题答案

汇编语言程序设计(第二版)课后习题答案

汇编语言程序设计(第二版)课后习题答案第二章1.解答:有256个2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元E51E3C2A3.解答:30022H字节单元内容:ABH30024H字节单元内容:EFH30021H字单元内容:AB34H30022H字单元内容:CDABH4.解答:这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址5.解答:CS+IP第一个字的物理地址为:0AAA40H6.解答:条件标志OF,SF,ZF,CF,的值依次为:0,0,0,07.下列操作可使用那些寄存器?(1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH,AL等(2)循环计数CX(3)乘法和除法DX,AX,AH,AL(4)保存段地址CS,DS,ES,SS(5)表示运算结果为O FLAGS(6)将要执行的指令地址IP(7)将要从堆栈取出数据的地址BP,SP,SS8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP9.一一对应;5--A4--B2--C3--D12--E9--F11--G10--H13--I8--J7--K6---L1--M15--N14--O第三章1.(1)立即寻址没有(2)直接寻址7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址637DH(5)使用BX的寄存器相对寻址0D5B4H(6)基址变址寻址8E18H(7)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。

(1)ADD DX,BX(2)ADD AL,[BX][SI](3)ADD[BX][0B2H],CX(4)MOV AX,2A59H ADD[0524H],AX(5)ADD AL,0B5H3.(1)寄存器间接寻址MOV BX,OFFSET[BLOCK][0AH]MOV DX,[BX](2)寄存器相对寻址MOV SI,OAHMOV DX,[BLOCK][SI](3)基址变址寻址MOV BX,BLOCKMOV SI,OAHMOV DX,[BX][SI]4.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(2 1200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。

IBM-PC汇编语言程序设计(第二版)课后习题标准答案(清华大学出版社)解析

IBM-PC汇编语言程序设计(第二版)课后习题标准答案(清华大学出版社)解析

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)解析————————————————————————————————作者:————————————————————————————————日期:IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)第二章1.解答:有256个2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元E51E3C2A3.解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH30021H字单元内容: AB34H 30022H字单元内容: CDABH4.解答: 这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址5.解答: CS+IP 第一个字的物理地址为: 0AAA40H6.解答: 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,07.下列操作可使用那些寄存器?(1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH ,AL等(2)循环计数 CX(3)乘法和除法DX,AX,AH,AL(4)保存段地址CS ,DS,ES,SS(5)表示运算结果为O FLAGS(6)将要执行的指令地址IP(7) 将要从堆栈取出数据的地址BP,SP,SS8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP9.一一对应;5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--N 14--O第三章1.(1)立即寻址没有(2)直接寻址7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址 637DH(5)使用BX的寄存器相对寻址0D5B4H(6)基址变址寻址8E18H(7)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。

汇编语言程序设计(第二版)第2章

汇编语言程序设计(第二版)第2章

通过内部总线送来,运算结果一方面通过内部总线送到某个
寄存器或者送往片外,另一方面运算结果的特征还送往标志 寄存器。
第2章 微型计算机的内部结构
具体地说,8086/8088的运算器可以完成以下操作:
(1) 加减法。两个字节型数据相加减,或者两个字型数据 相加减,计算结果的类型与操作数类型相同。
(2) 乘法。两个字节型数据相乘,得到字型的乘积;或者 两个字型数据相乘,得到双字型的乘积。
第2章 微型计算机的内部结构
2.内部控制系统 这是CPU中控制器的一部分。计算机的任何动作都是在一 定的信号控制之下完成的,CPU内部控制系统就担负着产生有 关运算器、通用寄存器组、标志寄存器等内部部件的控制信号
的任务,并且还要保证这些信号保持足够长的有效时间,以及
安排信号在时间上的先后关系。内部控制系统总是根据当前指 令去产生相应的控制信号。
第2章 微型计算机的内部结构
2.控制标志位
(1) TF——单步中断允许标志,又称跟踪标志。表示系统 当前是否允许单步中断。 (2) IF——外中断屏蔽标志。表示系统当前是否允许可屏 蔽外中断。
(3) DF——方向标志。表示串操作按增量方向还是按减量 方向进行。
这三个标志位与8086/8088的运行状态密切相关,TF和IF 涉及中断系统,将在第8章中介绍,DF影响串操作指令的执行 方式,将在第7章中加以说明。
第2章 微型计算机的内部结构
2.2.2 通用寄存器组 寄存器是CPU内部临时存放数据的部件,它的存取速度比
内存更快,可以把数据通过内部总线送往运算器进行运算,或
者接收来自运算器的结果。充分利用CPU的内部寄存器可以加 快程序的执行速度。8086/8088有8个16位的字型通用寄存器, 各个寄存器都有自己特定的功能,特定的指令可以使用这些功 能,而不执行特定指令时,这些寄存器都可以用来临时存放数

汇编语言程序设计第二版

汇编语言程序设计第二版

汇编语言程序设计第二版汇编语言是一种低级编程语言,它使用助记符来表示机器指令,允许程序员直接控制硬件。

汇编语言程序设计第二版是针对那些希望深入理解计算机系统底层工作机制的程序员和计算机科学学生编写的教材。

本书在第一版的基础上进行了更新和扩充,以适应现代计算机体系结构和编程实践的发展。

第一章:汇编语言基础本章介绍了汇编语言的基本概念,包括指令集、寄存器、内存寻址方式以及指令的格式和操作。

通过实例代码,读者可以初步了解如何使用汇编语言编写简单的程序。

第二章:数据表示和运算数据在计算机中的表示是程序设计的基础。

本章详细讨论了不同数据类型(如整数、浮点数和字符)在汇编语言中的表示方法,以及基本的算术和逻辑运算。

第三章:程序控制结构程序控制结构是程序设计中的重要组成部分。

本章讲解了条件语句、循环、跳转等控制结构在汇编语言中的实现方式,并通过实际例子展示了如何使用这些结构来编写更复杂的程序。

第四章:子程序和参数传递子程序是程序设计中常用的模块化技术。

本章介绍了如何在汇编语言中定义和调用子程序,以及参数传递的机制。

此外,还讨论了堆栈的使用和调用约定。

第五章:输入输出和中断处理现代计算机系统通常需要与外部设备交互。

本章讲解了汇编语言中实现输入输出的方法,包括直接内存访问(DMA)和中断驱动的I/O。

同时,介绍了中断服务程序的编写。

第六章:高级汇编技术随着计算机技术的发展,汇编语言也引入了一些高级技术,如宏定义、条件汇编和模块化编程。

本章对这些高级技术进行了深入的探讨,并提供了相应的编程实例。

第七章:系统级编程系统级编程涉及到操作系统的底层接口。

本章介绍了如何在汇编语言中实现系统调用,以及如何处理进程和线程的创建和管理。

第八章:性能优化性能是程序设计中的一个重要考虑因素。

本章讨论了汇编语言程序的性能优化技巧,包括指令选择、循环展开和流水线优化等。

第九章:安全性和可维护性随着软件安全和可维护性的重要性日益增加,本章讨论了在汇编语言编程中如何实现代码的安全性和可维护性,包括错误处理、异常处理和代码审查。

汇编语言程序设计第2版

汇编语言程序设计第2版

汇编语言程序设计第2版汇编语言是一种低级编程语言,它允许程序员直接使用计算机的指令集来编写程序。

这种语言与机器语言密切相关,但更易于人类理解和编写。

汇编语言程序设计是计算机科学和工程领域的基础课程之一,对于理解计算机硬件和软件的工作原理至关重要。

汇编语言的基本概念汇编语言程序设计的核心是指令集,这是一组预定义的指令,用于控制计算机的硬件。

每个指令对应一个或多个机器语言操作码。

程序员使用助记符(mnemonics)来编写指令,这些助记符是指令的简短文本表示。

汇编语言的组成部分汇编语言程序由以下几部分组成:1. 指令(Instructions):执行特定操作的命令。

2. 数据定义(Data Definitions):定义程序中使用的数据。

3. 常量(Constants):程序中使用的固定数值。

4. 变量(Variables):程序中可变的存储位置。

5. 伪操作(Pseudo-operations):用于控制汇编过程的指令,如标签定义、常量定义等。

汇编语言程序的编写流程编写汇编语言程序通常遵循以下步骤:1. 需求分析:确定程序需要完成的任务。

2. 设计算法:设计解决问题的方法或算法。

3. 编写代码:使用汇编语言编写程序代码。

4. 汇编:将汇编语言代码转换为机器语言。

5. 调试:检查并修复程序中的错误。

6. 测试:验证程序是否按预期工作。

汇编语言与高级语言的比较与高级编程语言(如C、Java或Python)相比,汇编语言具有以下特点:- 接近硬件:汇编语言直接操作硬件,提供了对硬件的精细控制。

- 执行效率高:由于直接与硬件交互,汇编语言程序通常执行速度更快。

- 可移植性差:汇编语言程序通常与特定的硬件架构紧密相关,难以移植到其他平台。

- 可读性差:汇编语言代码通常难以阅读和理解,特别是对于非专业人士。

汇编语言的应用领域尽管汇编语言在现代软件开发中使用较少,但它在以下领域仍然非常重要:1. 系统编程:操作系统和驱动程序的开发。

汇编语言程序设计(第二版) 沈美明 温冬婵 编著

汇编语言程序设计(第二版) 沈美明 温冬婵 编著

汇编语言程序设计(第二版)(清华大学IBM-PC 汇编语言程序设计(第二版)沈美明温冬婵编著)第二章1、答:直接由指令指定的I/O端口数为256个。

2、答:3、答:字节单元:(30022H)= AB H,(30024H)= EF H字单元:(30021H)= AB34 H,(30022H)= CDAB H。

4、答:3017:000A的存储单元的物理地址是3017AH,3015:002A的存储单元的物理地址是3017AH,3010:007A的存储单元的物理地址是3017AH。

5、答:该程序的第一个字的物理地址是0AAA40H。

6、答:条件标志OF、SF、ZF、CF的值依次分别为0、0、0、0。

7、答:(1)AX、BX、CX、DX、AH、AL、BH、BL、CH、CL、DH、DL、SP、BP、DI、SI(注意:学生尽量不要用SP参与加减运算)(2)CX(3)DX、AX、AH、AL(4)CS、DS、ES、SS(5)FLAGS(6)IP(7)SS、SP、BP8、答:可以用来指示存储器地址的寄存器有BX、SP、BP、DI、SI、IP、CS、DS、ES、SS。

9、答:唯一正确的是D。

第三章2、答:(1)ADD DX, BX(2)ADD AL, [BX][SI](3)ADD [BX+0B2H], CX(4)ADD [0524H], 2A59H(5)ADD AL, 0B5H3、答:(1)MOV BX, OFFSET BLOCK + 0AHMOV DX, [BX](2)MOV BX, 0AHMOV DX, BLOCK[BX](3)MOV BX, OFFSET BLOCKMOV SI, 0AHMOV DX, [BX][SI]4、答:(1)1200H(2)0100H(3)4C2AH(4)3412H(5)4C2AH(6)7856H(7)65B7H6、答:MOV BX, 2000HLES DI, [BX]MOV AX, ES : [DI]7、答:(1)064DH(2)0691H(3)05ECH9、答:(1)MOV AX, [ BX+0CH ]MOV ZERO, AX(2)MOV AX, ARRAY[BX]MOV ZERO, AX10、答:(1)(AX)= 1234H(2)(AX)= 0032H11、答:(AX)= 1E00H12、答:LEA BX, CSTRINGMOV DL, [BX]MOV DH, [BX+6]13、答:14、答:LES BX, [2000]MOV AX, ES:[BX]16、答:(1)74D4H SF=0 ZF=0 CF=0 OF=0 (2)A5C1H SF=1 ZF=0 CF=0 OF=1 (3)3240H SF=0 ZF=0 CF=1 OF=0 (4)0000H SF=0 ZF=1 CF=1 OF=0(1)0C754H SF=1 ZF=0 CF=1 OF=0 (2)12B0H SF=0 ZF=0 CF=0 OF=0 (3)45B0H SF=0 ZF=0 CF=0 OF=1 (4)9F24H SF=1 ZF=0 CF=0 OF=021、答:(1)MOV AX, ZSUB AX, XADD AX, WMOV Z, AX(2)MOV BX, XADD BX, 6MOV CX, RADD CX, 9MOV AX, WSUB AX, BXSUB AX, CXMOV Z, AX(3)MOV AX, WIMUL XMOV BX, YADD BX, 6IDIV BXMOV Z, AXMOV R, DX22、答:NEG DXNEG AXSBB DX, 016、答:MOV AX, AMOV DX, A+2TEST DX, 8000HJZ STORE ; 为正NEG DXNEG AXSBB DX, 0STORE : MOV B, AXMOV B+2, DX17、答:(1)MOV AL, SSUB AL, 6DASADD AL, VDAAMOV U, ALMOV AL, ZSUB AL, UDASMOV U, ALMOV AL, XADD AL, WDAASUB AL, UDASMOV U, AL23、答:(1)(BX)= 9AH(2)(BX)= 61H(3)(BX)= 0FBH(4)(BX)= 1CH(5)(BX)= 0(6)(BX)= 0E3H26、答:把(DX)(AX)中的双字左移四位(乘以16)。

汇编语言程序设计(第二版)课后题答案

汇编语言程序设计(第二版)课后题答案

4.1、判断下列标识符的合法性。

1)、code 合法2)、Data 合法3)、ABCDH 合法4)、1abcH 不5)、eax 不6)、01 合法7)、A?@ 合法8)、www@zsu 合法9)、***********.cn不10)、AX$DX 合法11)、_BX 合法12)、CX 不4.2、按下面要求写出相应的数据定义语句(未指定变量名的,可任意指定或省缺)。

1)、定义一个字节区域,第一个字节的值为20,其后跟20个初值为0的连续字节;DB 20,20 DUP(0)2)、定义一个以0为结束符的字符串,其初值为:The course is easy;DB “The course is easy”,03)、定义一个以'$'为结束符的字符串,该串中含有换行符和回车符;DB 0D,0A,”$”4)、定义100个字,其初值为0;DW 100 DUP(0)5)、从一个偶地址开始定义一个字变量word;EVENWORD DW ?6)、先定义一个字符串String,其偏移量指定为10,其初值为"ABCDEF",然后再定义3个字类型的数组Data,要求String和Data的偏移量相同;ORG 10STRING DB "ABCDEF"ORG 10DATA DW 3 DUP(?)7)、定义一个字符串String,其初值为"12345678",再定义4个字类型的数组Data,要求String和Data共享同一片内存单元;STRING DB "12345678"ORG $-8DATA DW 4 DUP (?)4.3、把下列C语言的变量定义语句改写成与之等价的汇编语言语句。

1)、char ch1, ch2[3], ch3[]="Are you ready?", ch4='Q';CH1 DB ?CH2 DB 3 DUP (?)CH3 DB "Are you ready?",0CH4 DB “Q”2)、int w1, w2[5], w3=0x1234, w4[]={90, 89, 432, 344};W1 DW ?W2 DW 5 DUP (?)W3 DW 1234HW4 DW 90,89,432,3443)、long int d1=1234, d2, d3[10], d4[]={1, 2, 3, 4, 5, 6};D1 DD 1234D2 DD ?D3 DD 10 DUP(?)D3 DD 1,2,3,4,5,64.4、假设4.3题中三组变量在内存中是连续存放的,且变量ch1的偏移量是20H,试求出其它每个变量的偏移量。

IBMPC汇编语言程序设计第二版答案

IBMPC汇编语言程序设计第二版答案

IBMPC汇编语言程序设计第二版答案在IBMPC汇编语言程序设计第二版中,你将学习到关于汇编语言的基本概念和技巧,以及如何在IBMPC上进行程序设计。

本文将为你提供该教材的答案,以帮助你更好地理解和掌握相关知识。

第一章:引言本章主要介绍了汇编语言的概念和历史背景,以及为什么学习汇编语言在计算机科学领域中至关重要。

课后习题包括:1. 解释汇编语言的概念和作用。

2. 证明学习汇编语言的重要性。

第二章:基本概念本章讨论了汇编语言的基本概念,包括寄存器、内存、指令、操作数等。

课后习题包括:1. 列出IBMPC的主要寄存器及其作用。

2. 解释内存和指令的概念。

3. 指出指令中的操作数是什么以及如何使用它们。

第三章:汇编语言程序的结构本章介绍了汇编语言程序的结构,包括程序开始和结束的标记、数据段和代码段的定义等。

课后习题包括:1. 解释并举例说明程序开始和结束标记的作用。

2. 编写一个简单的汇编语言程序,包含数据段和代码段的定义。

第四章:数据传送和运算指令本章详细讨论了数据传送和运算指令,并提供了具体的例子和实践习题。

课后习题包括:1. 解释MOV指令的功能和用法。

2. 使用ADD指令完成两个数相加的程序。

第五章:程序控制指令本章讲解了程序控制指令,如条件和无条件转移指令、循环指令等。

课后习题包括:1. 说明条件转移指令如何工作。

2. 使用循环指令编写一个计算阶乘的程序。

第六章:子程序本章介绍了子程序的概念和使用方法,以及如何传递参数和返回值。

课后习题包括:1. 解释子程序的作用和优势。

2. 编写一个带有参数和返回值的子程序。

第七章:栈与堆栈本章详细讨论了栈的概念和操作,以及堆栈的使用方法。

课后习题包括:1. 说明栈和堆栈的区别。

2. 编写一个使用堆栈实现函数调用的程序。

第八章:位操作与逻辑运算本章介绍了位操作和逻辑运算的指令,以及如何使用它们进行位级别的操作。

课后习题包括:1. 解释位操作指令的功能和应用。

汇编语言程序设计第二版刘慧婷王庆生主编课后参考答案

汇编语言程序设计第二版刘慧婷王庆生主编课后参考答案

汇编语言程序设计第二版刘慧婷王庆生主编课后参考答案汇编语言程序设计第二版课后参考答案第一章:计算机系统概述1.1 计算机系统的结构和层次安排计算机系统是由硬件和软件两部分组成。

硬件包括中央处理器(CPU)、存储器、输入输出设备等,而软件则包括系统软件和应用软件。

1.2 计算机的工作原理计算机按照指令的顺序执行,并且可以通过I/O设备进行输入输出。

1.3 二进制数的表示和转换二进制数是用0和1表示的数,可以通过不同进位的转换方法将其转换为十进制数、八进制数或十六进制数。

第二章:汇编语言的基本知识2.1 指令系统和指令格式指令系统定义了计算机能够执行的指令的集合,指令格式则规定了指令的编码方式。

2.2 寻址方式和寻址方式标志寻址方式指的是指令操作数的寻址方式,寻址方式标志则用于表示指令中操作数的寻址方式。

2.3 汇编程序的基本格式汇编程序由指令、伪指令和注释组成,其中指令用于描述要执行的操作,伪指令用于进行程序的控制和数据的定义。

2.4 汇编语言程序的编写规则汇编语言程序需要遵守一定的规则,例如标号的定义、指令的书写规范等。

第三章:基本指令的使用3.1 数据传送指令数据传送指令用于将一个数据从源操作数传送至目的操作数。

例如,MOV指令用于将源操作数的内容复制到目的操作数。

3.2 算术运算指令算术运算指令用于进行加法、减法、乘法和除法等数值运算。

例如,ADD指令用于进行两个操作数的相加运算。

3.3 逻辑运算指令逻辑运算指令用于进行与、或、非、异或等逻辑运算。

例如,AND指令用于进行两个操作数的逻辑与运算。

3.4 条件转移指令条件转移指令根据某个条件是否成立来决定是否进行转移。

例如,JMP指令用于根据条件是否满足来进行无条件转移。

3.5 循环指令循环指令用于进行循环操作。

例如,LOOP指令用于实现有限次数的循环操作。

第四章:汇编语言的高级应用4.1 子程序的使用子程序是一段独立的代码块,在需要时可以被调用执行,用于实现重复利用的功能。

IBM-PC汇编语言程序设计答案(第2版)

IBM-PC汇编语言程序设计答案(第2版)

附录:《IBM—PC汇编语言程序设计》习题参考答案第一章.习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。

(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=0 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。

《80x86汇编语言程序设计》(第2版)习题答案

《80x86汇编语言程序设计》(第2版)习题答案

习题参考答案1第1章1-1汇编的主要功能:输入:汇编语言源文件输出:目标文件处理:对源文件进行语法检查;将符号指令翻译为机器指令。

连接的主要功能:输入:1个或多个目标文件与库文件输出:可执行文件处理:浮动地址的重定位;多模块的连接。

1-2 (1)2EH (2)0D2H (3)0FFH(4)80H (5)7FH (6)0FEH1-3 (1)7FH (2)0FF80H (3)0FFFFH285286(4)0FFD2H (5)8000H (6)0FFH1-4 无符号数范围:0~2n-1;带符号数范围:-2n−1~2n−1-11-5 (1)压缩BCD码:58H;非压缩BCD码:x5x8H。

(2)压缩BCD码:1624H;非压缩BCD码:x1x6x2x4H。

1-6 (1)字符'1'的ASCII码;十进制数31的压缩BCD码;十进制数1的非压缩BCD码;十进制数49的十六进制表示。

(2)十进制数-1的8位二进制补码表示;带符号数255的16位二进制补码表示;无符号数255的8位二进制形式。

(3)十进制数-1的16位二进制补码表示;带符号数65535的32位二进制补码表示;无符号数65535的16位二进制形式。

1-7 (1)作为无符号数为159,等值的16位和32位形式均为9FH;作为带符号数为-97,等值的16位和32位形式分别为0FF9FH与0FFFFFF9FH。

(2)作为无符号数和带符号数均为104,等值的16位和32位形式均为68H。

(3)作为无符号数为192,等值的16位和32位形式均为0C0H;作为带符号数为-64,等值的16位和32位形式分别为0FFC0H与0FFFFFFC0H。

1-8 (1)AND 0FH (2)OR 30H(3)右移4位可得高位的值;将原值AND 0FH可得低位的值。

(4)XOR 00101010B(5)AND 8000H,若结果为0,则是正数,否则为负数。

第2章2-1 系统总线是CPU与内存和I/O子系统之间进行数据交换的通道,包括数据总线、地址总线和控制总线,分别负责在CPU与内存和I/O子系统之间传送数据、地址和控制信息。

汇编语言程序设计(第二版)第3章

汇编语言程序设计(第二版)第3章

汇编语言在系统编程、嵌入式 系统、操作系统开发等领域具 有广泛应用。
汇编语言的应用领域
系统软件
操作系统、编译器等核心组件通常使用汇编语言 编写。
游戏开发
游戏引擎和某些性能敏感的部分可能会使用汇编 语言以提高性能。
嵌入式系统
对于资源有限的微控制器和特定硬件设备,汇编 语言是实现高效控制的理想选择。
本章学习目标
THANKS
感谢观看
汇编语言调用C语言程序
嵌入C语言代码
01
在汇编语言程序中,可以直接嵌入C语言代码,通过编译器将其
编译成目标代码。
调用C语言函数
02
汇编语言程序可以直接调用C语言函数,通过函数指针或内联汇
编实现。
数据共享
03
汇编语言程序和C语言程序之间可以通过全局变量或内存映射的
方式实现数据共享。
汇编语言与C语言的混合编程实例
顺序程序设计是程序中最基本的结构之一,它构成了程序的基本框架。 在顺序程序中,程序按照指令的顺序执行,每条指令完成一个特定的操 作,从而实现了程序的逻辑功能。
顺序程序设计需要注意指令的执序的效率和可读性,尽量减少不必要 的操作和重复计算。
01
掌握汇编语言的语法和指令集。
02
理解汇编语言程序的结构和流程控制。
03
学习如何使用汇编语言进行系统调用和底层编程。
02
汇编语言基础
汇编语言的指令系统
指令系统概述
指令系统是计算机硬件能够理解和执 行的基本命令集合,是汇编语言的基 础。
01
02
数据传输指令
用于在寄存器、内存和输入/输出设备 之间传输数据,如MOV指令。
分支程序设计
分支程序设计是指根据条件判断结果选择不同的执行路径的过程。在汇编语言中,分支程序设计通常 使用跳转指令实现程序的流程控制。

汇编语言程序设计教程(第二版)

汇编语言程序设计教程(第二版)

汇编语言程序设计教程(第二版)习题参考答案第1章计算机基础知识1.计算机的应用分哪几个方面,请举例说明书中未提到的领域的计算机应用。

科学计算、数据处理、计算机控制、计算机辅助设计、人工智能、企业管理、家用电器、网络应用。

书中未提及的如:远程教育、住宅小区控制、飞行系统控制与管理等。

2.简述计算机的发展过程,请查阅相关资料,列出微机的发展过程。

电子管、晶体管、集成电路、大规模集成电路以IBM为例,微机的发展:4004、8008、8080、8086/8088、80286、80386、80486、Pentium 系列3.计算机的字长是怎么定义的,试举例说明。

计算机能同时处理二进制信息的位宽定义为计算机的字长。

如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。

4.汇编语言中的基本数据类型有哪些?数值型数据和非数值型数据。

非数值数据如字符、字符串、逻辑值等。

(1)7BCH=011110111100B=1980D(2)562Q=101110010B=370D(3)90D=01011010B=5AH(4)1110100.111B=164.7Q=74.EH30H~39H 41H~5AH 61H~7AH9.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值?用相应进制的数值加上进制标记即可。

二进制用B,如10101010B八进制用Q,如437Q。

十进制用D或不用,如54D,或54。

十六进制用H,如27A8H10.完成下列二进制数的加减运算。

(1)10101010 + 11110000 (2)11001100 + 01010100=110011010 =100100000(3)11011010 - 01010010 (4)11101110 - 01001101=10001000 =1010000111.完成下列十六进制数的加减运算。

(1)0FEA9 - 8888=7621H (2)0FFFF - 1234=EDCBH(3)0EAC0 + 0028=EAE8H (4)3ABC + 1678=5134H12.完成下列BCD码的运算。

《汇编语言程序设计》教案及答案第二版-2007

《汇编语言程序设计》教案及答案第二版-2007

《汇编语言程序设计》教案附:习题参考答案《IBM-PC汇编语言程序设计》(第2版)沈美明、温冬婵编著教案编写时间:2007年8月18日前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。

它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。

3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。

(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。

(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。

(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。

(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。

(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。

(7).第九章说明BIOS和DOS系统功能调用的使用方法。

(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。

附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,2001年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 (5)1.1进位计数制与不同基数的数之间的转换 (5)1.2二进制数和十六进制数的运算 (6)1.3计算机中数和字符的表示 (7)1.4几种基本的逻辑运算 (7)第 2 章80X86计算机组织 (8)2.180X86微处理器 (8)2.2基于微处理器的计算机系统构成 (8)2.3中央处理机 (9)2.4存储器 (10)2.5外部设备 (11)第 3 章80X86的指令系统和寻址方式 (13)3.180X86的寻址方式 (13)3.2程序占有的空间和执行时间 (15)3.380X86的指令系统 (15)第 4 章汇编语言程序格式 (32)4.1汇编程序功能 (32)4.2伪操作 (32)4.3汇编语言程序格式 (36)4.4汇编语言程序的上机过程 (39)第 5 章循环与分支程序设计 (42)5.1循环程序设计 (42)5.2分支程序设计 (43)5.3如何在实模式下发挥80386及其后继机型的优势 (43)第 6 章子程序结构 (45)6.1子程序的设计方法 (45)6.2子程序的嵌套 (46)6.3子程序举例 (46)第7 章高级汇编语言技术 (48)7.1宏汇编 (48)7.2重复汇编 (49)7.3条件汇编 (50)第8 章输入/输出程序设计 (51)8.1I/O设备的数据传送方式 (51)8.2程序直接控制I/O方式 (52)8.3中断传送方式 (52)第9 章BIOS和DOS中断 (55)9.1键盘I/O (55)9.2显示器I/O (57)9.3打印机I/O (58)9.4串行通信口I/O (59)第10 章图形与发声系统的程序设计 (60)10.1显示方式 (60)10.2视频显示存储器 (60)10.3EGA/VGA图形程序设计 (61)10.4通用发声程序 (62)10.5乐曲程序 (63)第11 章磁盘文件存取技术 (64)11.1磁盘的记录方式 (64)11.2文件代号式磁盘存取 (65)11.3字符设备的文件代号式I/O (66)11.4BIOS磁盘存取功能 (67)附录:《IBM—PC汇编语言程序设计》习题参考答案 (68)第一章.习题 (68)第二章.习题 (69)第三章.习题 (70)第四章.习题 (83)第五章.习题 (88)第六章.习题 (107)第七章.习题 (120)第八章.习题 (126)第九章.习题 (131)第十章.习题 (134)第十一章.习题 (145)第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。

IBMPC汇编语言程序设计第二版教学大纲

IBMPC汇编语言程序设计第二版教学大纲

IBMPC汇编语言程序设计第二版教学大纲课程概述汇编语言是计算机科学与技术专业中的基础课程之一,本课程旨在通过教授IBMPC汇编语言程序设计,使学生理解计算机的基础结构,深入掌握CPU的工作原理以及内存与I/O的操作方法,从而提高计算机编程的能力。

本教材为IBMPC汇编语言程序设计第二版。

学习目标1.掌握IBMPC汇编语言程序设计的基础知识和技能;2.理解计算机系统结构,熟悉汇编语言程序设计的开发环境;3.能够编写简单的汇编语言程序,包括逻辑控制指令,算术逻辑指令,I/O指令,中断程序设计等;4.了解汇编语言与其他高级编程语言的关系。

教学内容第一章:计算机系统结构1.计算机体系结构2.计算机组成原理3.存储体系结构第二章:IBMPC汇编语言基础知识1.汇编语言程序设计概述2.汇编语言程序设计基本框架3.程序、数据段的定义和使用4.操作数的表示方法第三章:逻辑控制指令1.转移指令2.条件转移指令3.循环指令第四章:算数逻辑指令1.加、减指令2.逻辑运算指令3.移位指令第五章:I/O指令1.端口输入输出指令2.内存读写指令第六章:基本中断程序设计1.中断源与中断向量2.中断服务程序设计第七章:高级中断程序设计1.硬件中断设计(定时器、键盘)2.软件中断设计(DOS中断)实验内容1.编写一个计算器程序,可以进行加、减、乘、除四则运算;2.设计一个简单的输入输出系统,能够进行键盘输入、屏幕输出。

教学方法本课程采用面授课、互动讨论、实验等多种教学方式相结合,通过理论学习与实践操作相结合,提高学生的理论水平和实际动手能力。

考核方式1.平时成绩:实验报告、作业;2.期中考试:闭卷笔试;3.期末考试:闭卷笔试。

参考书目1.《IBMPC汇编语言程序设计》(第二版),王爱勤、张荣泰等编著,机械工业出版社。

2.《8086/8088微处理器:体系结构,编程和设计》, WalterA.Tridgell,电子工业出版社。

总结本课程从计算机系统架构出发,推导出计算机的基本指令集和汇编语言,并围绕汇编语言的设计和开发环境上进行操作。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单项选择题1、CPU发出的访问存储器的地址是( A )。

A.物理地址B.偏移地址C.逻辑地址D.段地址2、下列指令中操作数在代码段中的是( A )。

A.MOV AL,42HB.ADD AL,BLC.SUB [BX],DID.INC [DI]3、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。

A.MOV BX,VARB.LDS BX,VARC.LES BX,VARD.LEA BX,VAR4、表示过程定义结束的伪指令是( A )。

A.ENDPB.ENDSC.ENDD.ENDM5、BUF1 DB 3 DUP(0,2 DUP(1,2),3)COUNT EQU $ - BUF1符号COUNT等价的值是( B )。

A.6B.18C.16D.86、下列寄存器中,作为16位寄存器的是( D )。

A. ALB. BLC. CHD.DX7、在程序运行过程中,确定下一条指令的物理地址的计算表达式是( C )。

A.DS*16+SIB. ES*16+DIC. CS*16+IPD. SS*16+SP8、物理地址(10FF0H )=10H,(10FF1H )=20H,(10FF2H )=30H,从地址10FF1H 中取一个字的内容是( B )。

A.1020HB.3020HC.2030HD.2010H9、将AX 清零,下列指令错误的是( C )。

A.SUB AX,AXB.XOR AX,AXC.OR AX,00HD.AND AX,00H10、完成同指令XCHG AX,BX相同功能的指令或指令序列是( D )。

A. MOV AX,BXB. MOV BX,AXC. PUSH AXD. MOV CX,AXPOP BX MOV AX,BXMOV BX,CX11、JMP BX 的目标地址的偏移量为( A )。

A. BX 的内容B. BX 所指向的内存单元的内容C. IP + BX 的内容D. IP + [BX]12、可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是( D )。

A.AX,BX,CX,DXB.DS,ES,CS,SSC.SP,BP,IP,BXD.SI,DI,BP,BX13、设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( D )。

A.1FFFHB.1998HC.2002HD.1FFEH14、汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是( A )。

A.VariableB.First & ldC.0FFFFHD.‘Memphis’15、要求将A,B两个字符的ASCⅡ码41H,42H顺序存放在连续两个字存储单元中,可选用的语句是( B )。

A.DA1 DB ‘AB’B.DA1 DW‘AB’C.DA1 DB 0ABHD.DA1 DW 0ABH16、在汇编语言程序中,对END语句的叙述正确的是( C )。

A. END语句是一可执行语句B. END语句表示程序执行到此结束C. END语句表示源程序到此结束D. END语句在汇编后要产生机器码17、下面的数据传送指令中,错误的操作是( D )。

A. MOV SS:[BX+DI],1000HB. MOV DX,1000HC. MOV WORD PTR[BX],1000HD. MOV DS,2000H18、当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是( C )。

A. JLEB. JNLC. JNLED. JL19、用DEBUG调试汇编语言程序时,显示某指令的地址是2F80:F400,此时段寄存器CS的值是( B )。

A.F400HB.2F80HC.F4000HD.2F800H20、设DS=1100H,(12000H)=80H,(12001H)=20H,(12002H)=30H,执行MOV AX,[1000H]则AX=( C )。

A.8000HB.0080HC.2080HD.8020H21、在8086/8088系统中,约定用于形成堆栈段数据物理地址的寄存器有( A )。

A.SS, SP, BPB.SS, SP, BXC.DS, BX, BPD.DS, SP, BP22、有指令MOV AX, 1234H,指令中的立即数1234H是存储在( B )。

A.数据段B.代码段C.附加段D.堆栈段23、要在程序中定义缓冲区BUF,保留9个字节存储空间的语句是( C )。

A.BUF DW 9B.BUF DB 9C.BUF DB 9 DUP(?)D.BUF DW 9 DUP(?)24、完成将AX清零,并且使CF清零,下面错误的指令是( D )。

A.SUB AX, AXB.AND AX, 0C.XOR AX,AXD.MOV AX,025、汇编语言源程序每个语句可以由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。

A.名字项B.操作项C.操作数项D.注释项26、在堆栈段中,存放栈顶地址的寄存器是( B )。

A.IPB.SPC.BXD.BP27、书写汇编语言程序时规定,对字母开头的十六进制数,其前面必须加( A )。

A.0B.DC.BD.H28、MOV [SI][BX],AL,该指令中目的操作数采用的寻址方式是( A )。

A.基址加变址B.寄存器C.寄存器间接D.寄存器相对29、在计算机中,以先进后出方式工作的存储空间是( D )。

A.存储器B.RAMC.ROMD.堆栈30、已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在( A )中。

A.数据段中偏移量为3236H的字节B.附加段中偏移量为3234H的字节C.数据段中偏移量为3234H的字节D.附加段中偏移量为3236H的字节31、PSW寄存器中共有( A )位条件状态位,有( A )位控制状态位。

A.6、3 B.3、6 C.8、4 D.4、832、下面指令执行后,改变AL寄存器内容的指令是( D )。

A、TEST AL,02HB、OR AL,ALC、CMP AL,BLD、AND AL,BL33、MOV SP,3210HPUSH AX执行上述指令序列后,SP寄存器的值是( B )。

A、3211HB、320EHC、320FHD、3212H34、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( D )。

A、CMPB、SUBC、ANDD、MOV35、设AX=1000HNEG AXNOT AX执行上述指令后,正确的结果是( B )。

A.AX=1001HB.AX=0FFFHC.AX=1000HD.AX=0111H36、下列指令执行后对源和目的操作数均无影响的是( D )。

A.MOV [BX+2],AXB.SUB AX,2467HC.SBB [SI],BXD.CMP AX,BX37、8086/8088系统执行传送指令MOV时( A )。

A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志38、若AX= - 15要得到AX=15应执行的指令是( A )。

A.NEG AXB.NOT AXC.INC AXD.DEC AX39、汇编语言程序中,反映指令操作结果的标志是( A )。

A.状态标志B.控制标志C.ZFD.DF40、移位指令中,应先将移位次数放在( D )。

A.AXB. ALC. CXD.CL二、简答题1、定义子程序时如何确定其属性?答:(1)子程序和主程序在同一个代码段中,则子程序定义为NEAR属性。

(2)子程序和主程序不在同一个代码段中,则子程序定义为FAR属性。

(3)主程序通常定义为FAR属性,这是因为主程序被看作DOS调用的一个子程序,以便执行完返回DOS。

2、伪指令语句与指令语句的区别是什么?答:[指令语句]每一条指令语句在源程序汇编时都要产生可供计算机执行的指令代码(即目标代码),所以这种语句又叫可执行语句。

每一条指令语句表示计算机具有的一个基本能力,如数据传送,两数相加或相减,移位等,而这种能力是在目标程序(指令代码的有序集合)运行时完成的,是依赖于汁算机内的中央处理器(CPU)、存储器、I/O接口等硬件设备来实现的。

[伪指令语句]伪指令语句是用于指示汇编程序如何汇编源程序,所以这种语句又叫命令语句。

例如源程序中的伪指令语句告诉汇编程序:该源程序如何分段,有哪些逻辑段在程序段中哪些是当前段,它们分别由哪个段寄存器指向;定义了哪些数据,存储单元是如何分配的等等。

伪指令语句除定义的具体数据要生成目标代码外,其他均没有对应的目标代码。

伪指令语句的这些命令功能是由汇编程序在汇编源程序时,通过执行一段程序来完成的,而不是在运行目标程序时实现的。

伪指令语句与指令语句的本质区别是指令语句有其对应的机器指令,而伪指令没有;伪指令的主要作用是指示汇编程序如何汇编源程序。

3、子程序的参数传递有那几种方式及其各自的优缺点?答:(1)寄存器传递参数:用寄存器来传递参数最直接、简便,也是最常用的参数传递方式,只要把参数存放在约定的寄存器中就行了。

但由于CPU中寄存器个数有限,所以,该方法适用于传递参数较少的情况。

需要注意的是,用于传递出口参数的寄存器不能加以保护和回恢复,用于传递入口参数的寄存器可以保护也可以不保护。

(2)存储单元传递参数:这种方法是使用存储单元传递参数的,即主程序在存储单元建立一个参数表,存放子程序所需要的参数,在主程序中将该参数表首地址传送给子程序,子程序通过参数表去的所需参数,并把结果也存放到指定存储单元中。

这种方法适合于传递参数较多的情况。

(3)堆栈传递参数:用堆栈传递入口参数时,要在调用子程序前把有关参数依次压栈,子程序从堆栈中取得入口参数;用堆栈传递出口参数时,要在子程序返回前,把有关参数依次压栈,主程序就可以从堆栈中取到出口参数。

这种方法也适合于传递参数较多的情况,但要特别注意避免因堆栈操作而造成子程序不能正确返回的错误。

4、试比较CALL指令和JMP指令。

答:CALL是调用跳转,在执行到RET指令后,会返回到CALL后继续执行而JMP 则是无条件跳转,是不会跳回的一般来说,执行一条CALL指令相当于执行一条PUSH指令加一条JMP指令。

5、8086/8088CPU由哪两部分组成?它们的主要功能是什么?答:(1)总线接口部件BIU:总线接口部件由段寄存器、指令指针寄存器、地址加法器、指令队列和输入输出控制电路等组成。

BIU是8086与系统总线的接口,负责CPU与存储器、I/O端口传送数据。

(2)执行部件EU:执行部件由算术逻辑部件(ALU)、通用寄存器、标志寄存器和执行部件控制电路等组成,它负责指令的执行和数据的运算。

6、中断处理程序的典型结构包括哪几部分?答:(1)现场保护(2)中断返回(3)中断嵌套(4)发中断结束命令7、什么是中断矢量表?它有什么作用?答:在8086/8088系统中,为了方便中断处理程序的管理,把所有中断处理程序的入口地址都集中在一起,构成一个中断矢量表。

相关文档
最新文档