汇编语言程序设计 第六章
- 格式:ppt
- 大小:594.50 KB
- 文档页数:45
《汇编语言程序设计》课程教学大纲学时:32 学分:2理论学时:24 实验学时:8面向专业:电科、电信、通信课程代码:B2700009先开课程:C语言程序设计课程性质:必修执笔人:王艳春审定人:陈龙猛、张金政第一部分:理论教学部分一、说明1、课程的性质、地位和任务本课程属于专业基础课,是电科、电信和通信专业学生必修的核心课程之一,是进一步学习微机原理、操作系统等课程的基础。
掌握它有助于提高学生对计算机系统的设计、研究、开发和应用能力。
汇编语言是一种面向机器、实践性很强的程序设计语言,必须结合一种实际的计算机来组织教学。
因此,本课程选择最广泛使用的IBM PC作为具体的机型来介绍。
通过课堂教学和上机实践,培养学生用汇编语言进行编程的思路、方法,养成良好的程序设计习惯,并了解底层I/O 驱动软件的编程方法,熟悉源程序汇编、链接和调试运行的步骤和方法,掌握dos、BIOS功能的调用方法及使用debug工具的调试手段,为后续课的学习打下扎实的基础。
2、课程教学和教改基本要求课程的目的与教学基本要求:本课程主要介绍汇编语言和宏汇编的基本概念,80X86CPU的指令系统和寻址方式;介绍汇编语言程序格式、伪操作和上机全过程。
通过实际例子,详细叙述顺序、分支、循环、子程序等基本程序结构以及程序设计的基本方法和技巧。
学习这门课程,应达到以下几个要求:①掌握汇编语言的基本理论知识和有关概念;掌握用汇编语言编写源程序的基本原则、方法和技巧;②具有阅读,分析汇编语言程序的能力;③通过上机实践,能够熟练地掌握汇编语言程序的编辑、汇编、连接、运行过程及debug工具的调试手段。
课堂授课采用多媒体教学,采用由浅入深、循序渐进学习步骤,主要讲解设计思想、实现技巧,通过提问题引导学生思考,提高学生的学习兴趣,从而加深学生对理论课的理解,提高学生的动手能力。
二、教学内容与课时分配第一章基础知识(2学时)1.1 机器语言及汇编语言的产生1.2 汇编语言的组成1.3 存储器1.4 指令和数据1.5 存储单元及CPU对存储器的读写1.6 三大总线1.7 主板、接口卡及各类存储器芯片1.8 内存地址空间教学的重点与难点:指令和数据在内存或磁盘上没有区别;内存地址空间。
第六章习题(1)复习题1、简述自然语言与形式语言的概念以及区别、汇编语言与机器语言的概念及区别。
自然语言是某一社会发展中形成的一种民族语言,而形式语言是进行形式化工作的元语言,它是以数学和数理逻辑为基础的科学语言。
用机器指令形式编写的程序称为机器语言,用带符号或助记符的指令和地址代替二进制代码成为语言进化的目标。
这些使用助记符语言的语言后来就被称之为汇编语言。
(P135P136)2、什么是高级程序设计语言?它有什么特点?高级语言是汇编语言的一种抽象。
高级语言的设计目标就是使程序员摆脱汇编语言细节的繁琐。
高级语言同汇编语言都有一个共性,那就是:它们必须被转化为机器语言,这个转化的过程称为解释或编译。
(1)高级语言接近算法语言,易学、易掌握;(2)高级语言设计出来的程序可读性好,可维护性强,可靠性高;(3)高级语言与具体的计算机硬件关系不大,其程序可移植性好,重用率高;(4)高级语言自动化程度高,开发周期短,利于提高程序的质量。
(P138)3、列举程序设计语言的几种范型。
程序语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。
(P138-140)4、简述语言虚拟机。
提示:语言虚拟机是某种语言的解释器。
语言虚拟机是建立在硬件和操作系统之上,针对不同的硬件和操作系统有不同的虚拟机,通过语言虚拟机屏蔽掉硬件的差异。
这样使得硬件系统能够支持这种语言编写的程序的有效执行。
目前最流行的语言虚拟机是Java虚拟机。
(P147)5、计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么?提示:主要有编译、解释等方式,也有两种方式的混合使用的形式。
编译是使用编译器将高级语言编写的源程序转换成计算机可以执行的机器语言可执行程序,也可以理解为用编译器产生可执行程序的动作。
编译方式是一次编译,然后执行程序可以反复多次执行。
解释是另一种将高级语言转换为可执行程序的方式。
3545233.doc 制作:江家宝《IBM—PC汇编语言程序设计》课后作业参考答案目录第一章:基础知识 ........................................................................................ 2第二章:80×86计算机组织......................................................................... 2第三章:80×86的指令系统和寻址方式..................................................... 3第四章:汇编语言程序格式........................................................................ 7第五章:循环与分支程序设计.................................................................... 9第六章:子程序结构 ................................................................................ 12第七章:高级汇编语言技术.................................................................... 20第八章:输入输出程序设计.................................................................... 22第九章:BIOS和DOS中断 (23)3545233.doc 制作:江家宝第一章:基础知识1.1、用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(3) 4095 答:(3) 4095 =1111 1111 1111B=FFFH1.2、将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 答:(1) 10 1101B=2DH=451.3、将下列十六进制数转换为二进制数和十进制数:(4) 1234 答:(4) 1234H=1 0010 0011 0100B=46601.4、完成下列十六进制数的运算,并转换为十进制数进行校核:(3) ABCD-FE 答:(3) ABCD-FEH=AACFH=437271.5、下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
汇编语言程序设计(第二版)(清华大学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)。
汇编语言程序设计教程(第二版)习题参考答案第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码的运算。
封面第六章 32位指令及其编程第六章32位指令及其编程概述 6.1 32位指令运行环境6.2 32位扩展指令 6.3 32位指令的程序设计 6.4 32位新增指令 6.5 用汇编语言编写 32位WINDOWS应用程序概述1 概述 32位指令系统以80386 CPU 为基础,其指令集可分为整数指令集(16位整数指令集、32位整数指令集)和浮点指令集,16位整数指令集全兼容8086 CPU。
1996年,Intel推出MMX Pentium,首次增加了MMX (多媒体扩展)指令集,提高了CPU对多媒体数据的处理能力。
1999年,Intel推出Pentium Ⅲ,增加了SSE指令集(数据流SIMD扩展指令,SIMD为MMX指令集的关键技术,意为“单指令流多数据流”)。
2000年,Intel推出Pentium4,又增加SSE2指令集,增强了处理器对3-D图象、视频编码解码、语音识别等数据的处理能力。
概述2 本章主要介绍80386的32位整数指令集,及其汇编语言程序设计,对386以后推出的CPU新增指令(0>.、 .、.)简单介绍。
6.5 节简单介绍如何使用汇编语言编写WINDOWS应用程序。
本章应重点掌握: 32位编程环境 32位寻址方式 32位指令编程方法 6.1 32位指令运行环境 6.1 32位指令运行环境补充.386的工作方式及16位段和32位段 . 寄存器组 . 寻址方式 .机器代码格式 386的工作方式:实方式补充 386的工作方式实地址方式:实方式(Real Mode)与8086/80186的工作方式以及80286的实地址方式具有相同的基本结构。
不使用386的优先级分级制,所有程序(DOS和应用程序都工作在0级(特权级)。
32位x86 CPU只能寻址1MB物理存储器空间,分段最大64KB,采用16位逻辑段。
32位x86 CPU可以使用32位寄存器和32位操作数,也可以采用32位寻址方式。