汇编语言程序设计ppt课件
- 格式:pptx
- 大小:906.20 KB
- 文档页数:45


汇编语⾔程序设计
第4章 汇编语⾔程序设计§4.1 汇编语⾔的模式
⼀、汇编语⾔源程序的⼀般模式[Name 模块名]
[Title 标题]
[定义宏]
[定义数据段]
[定义附加段]
[定义堆栈段]
定义代码段
源程序结束
中括号括起的部分可以省略,可见在⼀个汇编语⾔源程序中必须要定义代码段,并且必须有源程序结束指令。
⼆、8086汇编语⾔程序的⼀个例⼦Pg90。
§4.2 语句⾏的构成
汇编语⾔中的语句⼀般分为两种类型:指令性语句和指⽰性语句。
指令性语句的格式为:[标号:] 助记符 [操作数1[,操作数2]] [;注释]
指⽰性语句的格式为:[名称] 助记符 [参数1,参数2,……] [;注释]
标号和名称都是编程⼈员根据需要和⼀定的规则任意取的。也可以认为汇编语⾔的语句⾏是由标记和分隔符(空格)构成。
⼀、标记1.IBM宏汇编的字符集
(1)字母
(2)数字符
(3)特殊字符2.界符
⽤于定界⼀个标记的结束或⼀个标记的开始,本⾝具有⼀定的意义。3.常量
出现在汇编语⾔源程序中的固定值称为常量。
(1)数值常量
①⼆进制:以字母B结束。
②⼗进制:以字母D或⽆字母结束。
③⼋进制:以字母Q(或O)结束。④⼗六进制:以字母H结束。
(2)字符常量
指⽤单引号或双引号引起的字符或字符串。4.标识符
由程序员⾃⼰建⽴的字符序列(标号或名称)。⼀个标识符不能超过31个字符,不能以数字开头。5.保留字
汇编语⾔中具有特殊意义的字符序列。6.注释
⼀⾏中分号以后的部分。⽤于对⼀段或⼀⾏程序进⾏说明,便于阅读和理解。
⼆、符号
具有⼀定意义的字符序列。1.寄存器名
2.变量
段属性、偏移属性、类型属性3.标号
段属性、偏移属性、类型属性4.常数
5.其它
三、表达式
由操作数和运算符组合⽽成的序列。1.操作数
(1)⽴即数
(2)寄存器操作数
(3)存储器操作数2.运算符
(1)算术运算符+、-、*、/、MOD(求余)
(2)逻辑运算符AND、OR、NOT、XOR
(3)关系运算符EQ、NE、LT、LE、GT、GE
第四章 汇编语言程序设计(assembly language
programming)
§4.1 汇编语言(assembly language)
一.概述
汇编语言:一种符号语言,它用助记符表示指令的操作码和操作数,用标号或符号代表地址、常量和变量,与机器语言几乎一一对应
汇编语言程序:用汇编语言编写的程序
汇编:把汇编语言源程序翻译成机器语言目标程序的过程
汇编语言源程序 手工汇编或汇编程序 机器语言目标程序
汇编程序:用来完成汇编工作的程序,有
小汇编ASM
宏汇编MASM
动态调试程序DEBUG
二.汇编语言的语句
格式: [名称] 指令助记符 [操作数] [;注释]
带方括号的项有时可没有,注释项完全可以没有
每个部分用空格分开
每行最多可有132个字符,但最好不要超过屏宽80
语句可分成指令性语句和指示性语句(伪指令语句)
指令性语句汇编后可生成机器码
[标号:] 指令助记符 [操作数] [;注释]
指示性语句指示汇编程序处理一些工作
[名称] 伪指令(指示符) [操作数] [;注释]
1.名称(或称标识符)
给指令或存储单元地址起的名字,由字母、数字、字符组成
字母:A~Z ,a~z
数字:0~9
字符:可打印 + - * / = ( ) [ ] 〈 〉 ; . ' ’ ,_ : ?
@ $ &
(非打印 空格 制表符TAB 回车 换行)
(界符: , ; : .( )[ ]〈 〉+ - * / = ? _ @ & $
' ’ 界符用来表示某个标志的结束)
数字不能作名称的第一个字符,圆点 .仅能作第一个字符
保留字不能作标识符($、?是保留字,与其它字符组合除外)
名称最长为31个字符
当名称后跟冒号,表示该名称是其后指令的标号,代表该指令的开始地址,其他指令可以用该标号作为转移地址
当名称不跟冒号,它可能是标号或变量名,伪指令前的名称不跟冒号
汇编语言程序设计(第二版) 钱晓捷 习题答案
第二章(01)
2.1
(1)AX=1200h
(2)AX=0100h
(3)AX=4C2Ah
(4)AX=3412h
(5)AX=4C2Ah
(6)AX=7856h
(7)AX=65B7h
2.2
(1) 两操作数类型不匹配
(2) IP指令指针禁止用户访问
(3) 立即数不允许传给段寄存器
(4) 段寄存器之间不允许传送
(5) 两操作数类型不匹配
(6) 目的操作数应为[ BP ]
(7) 源操作数应为 [BX+DI]
(8) 立即数不能作目的操作数
2.3
lea bx,table ;获取table的首地址,BX=200H
mov al,8 ;传送欲转换的数字,AL=8
xlat ;转换为格雷码,AL=12H
2.4
mov ax,8057h
push ax
mov ax,0f79h
push ax
pop bx ;bx=0f79h
pop [bx] ;DS:[0f79h]=8057h
2.6
AL=89h CF ZF SF OF PF
AL=12h 1 0 0 1 1
AL=0afh 0 0 1 0 1
AL=0afh 1 0 1 0 1
AL=00h 0 1 0 0 1
AL=0ffh 0 0 1 0 1
《汇编语言程序设计》课程教学大纲
学 时:32 学 分:2
理论学时:24 实验学时:8
面向专业:电科、电信、通信 课程代码:B2700009
先开课程:C语言程序设计 课程性质:必修
执 笔 人:王艳春 审 定 人:陈龙猛、张金政
第一部分:理论教学部分
一、说明
1、课程的性质、地位和任务
本课程属于专业基础课,是电科、电信和通信专业学生必修的核心课程之一,是进一步学习微机原理、操作系统等课程的基础。掌握它有助于提高学生对计算机系统的设计、研究、开发和应用能力。汇编语言是一种面向机器、实践性很强的程序设计语言,必须结合一种实际的计算机来组织教学。因此,本课程选择最广泛使用的IBM PC作为具体的机型来介绍。通过课堂教学和上机实践,培养学生用汇编语言进行编程的思路、方法,养成良好的程序设计习惯,并了解底层I/O驱动软件的编程方法,熟悉源程序汇编、链接和调试运行的步骤和方法,掌握dos、BIOS功能的调用方法及使用debug工具的调试手段,为后续课的学习打下扎实的基础。
2、课程教学和教改基本要求
课程的目的与教学基本要求:本课程主要介绍汇编语言和宏汇编的基本概念,80X86CPU的指令系统和寻址方式;介绍汇编语言程序格式、伪操作和上机全过程。通过实际例子,详细叙述顺序、分支、循环、子程序等基本程序结构以及程序设计的基本方法和技巧。学习这门课程,应达到以下几个要求:
①掌握汇编语言的基本理论知识和有关概念;掌握用汇编语言编写源程序的基本原则、方法和技巧;
②具有阅读,分析汇编语言程序的能力;
③通过上机实践,能够熟练地掌握汇编语言程序的编辑、汇编、连接、运行过程及debug工具的调试手段。 课堂授课采用多媒体教学,采用由浅入深、循序渐进学习步骤,主要讲解设计思想、实现技巧,通过提问题引导学生思考,提高学生的学习兴趣,从而加深学生对理论课的理解,提高学生的动手能力。