汇编语言程序设计电子教案-白小明主编 ch1

上传人:E**** 文档编号:89417195 上传时间:2019-05-24 格式:PPT 页数:62 大小:548.50KB
返回 下载 相关 举报
汇编语言程序设计电子教案-白小明主编 ch1_第1页
第1页 / 共62页
汇编语言程序设计电子教案-白小明主编 ch1_第2页
第2页 / 共62页
汇编语言程序设计电子教案-白小明主编 ch1_第3页
第3页 / 共62页
汇编语言程序设计电子教案-白小明主编 ch1_第4页
第4页 / 共62页
汇编语言程序设计电子教案-白小明主编 ch1_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《汇编语言程序设计电子教案-白小明主编 ch1》由会员分享,可在线阅读,更多相关《汇编语言程序设计电子教案-白小明主编 ch1(62页珍藏版)》请在金锄头文库上搜索。

1、1,教材:汇编语言程序设计,白小明 徐苏,南昌大学信息工程学院,汇编语言程序设计,2,教学内容,第 1章 汇编语言入门 第 2章 寻址方式和指令 第 3章 汇编语言的要素 第 4章 程序逻辑与控制 第 5章 子程序和宏 第 6章 输入输出与中断 第 7章 键盘、鼠标和视频的操纵 第 8章 磁盘文件存取 第 9章 汇编语言扩展 第10章 Win32汇编,3,教学特点,强调对基本指令的理解和掌握 重点介绍汇编系统和伪指令的基本内容 强调上机实践,要求熟练进行编程和调试 运用多媒体教学手段,考核要求,考试成绩(课堂教学内容):70 上机成绩(考勤及编程情况)15 平时成绩(考勤及作业情况)15,4,

2、教师建议 目标: 了解汇编语言的特性及其编程技术, 建立起“机器”和“程序”、“空间”和 “时间”的概念。 建议: 充分注意“汇编”课实践性强的特点, 多读程序,多写程序,多上机调试程序, 熟悉PC机的编程结构, 掌握汇编语言及其程序设计的基本概 念、方法和技巧。,5,相关课程,先修课 计算机导论 高级语言程序设计,后续课 计算机组成原理 微机原理及接口技术,6,第1章 汇编语言入门,1.1 认识汇编语言 1.2 数据在计算机中的表示 1.3 80X86微处理器 1.4 存储器与堆栈,7,本章教学要求,1. 熟悉汇编语言的基本概念和应用特点; 2. 掌握80X86的寄存器组织; 3. 掌握存储

3、器组织和堆栈。,8,1.1 认识汇编语言,机器语言,FORTRAN BASIC COBOL PASCAL C/C+ JAVA .,9,汇编语言的特点 面向机器的低级语言,通常是为特定的计算 机或计算机系列专门设计的。 保持了机器语言的优点,具有直接和简捷 的特点。 可有效地访问、控制计算机的各种硬件设备, 如磁盘、存储器、CPU、I/O端口等。 目标代码简短,占用内存少,执行速度快, 是高效的程序设计语言。 经常与高级语言配合使用,应用十分广泛。,10,#include “stdafx.h“ #include “stdio.h“ int main(int argc, char* argv) i

4、nt a,b,c; a=1; b=2; c=a+b; printf(“c=%dn“,c); return 0; ,编程实现 c =a+b,并在屏幕上显示出结果。,例1,编译后的目标文件达到3.59KB,11,data segment a db ? b db ? c db ? string db c=$ data ends code segment main proc far assume cs:code, ds:data, es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax,mov a,1 mov b

5、,2 mov al,a add al,b mov c,al lea dx,string mov ah,09 int 21h add c,30h mov dl,c mov ah,2 int 21h mov dl,0ah int 21h mov dl,0dh int 21h ret main endp code ends end start,例 2. C = a + b,汇编后的目标文件只有208字节,12,汇编语言的应用 系统程序、效率代码、I/O驱动程序 70%以上的系统软件是用汇编语言编写的。 某些快速处理、位处理、访问硬件设备等 高效程序是用汇编语言编写的。 高级绘图程序、视频游戏程序一般

6、是用汇 编语言编写的。,13,1.2 数据在计算机中的表示, 计算机中正负数的表示,7 6 5 4 3 2 1 0,符号位 数值位,假设机器字长为16位:,符号位 = 0 正数 数值位 = 1 负数,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,假设机器字长为8位:,H.O.Byte,L.O.Byte,H.O.Nibble,L.O.Nibble,14,数的常用表示法 原码 反码 补码 原码表示法:符号 + 绝对值 例:n = 8bit +3原码 = 0 000,0011 = 03H - 3原码 = 1 000,0011 = 83H +0原码 = 0 000,000

7、0 = 00H - 0原码 = 1 000,0000 = 80H 0 的表示不惟一 反码表示法:正数的反码同原码,负数的反码数值位与原码相反 例:n = 8bit +5反码 = 0 000,0101 = 05H - 5反码 = 1 111,1010 = FAH +0反码 = 0 000,0000 = 00H - 0反码 = 1 111,1111 = FFH 0 的表示不惟一,15,补码(Twos Complement)表示法: 正数的补码: 同原码 负数的补码:(1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一,16,n位二进制补码的表数范围: - 2n-1 N 2n-1-1

8、,无符号整数的表数范围: 0 N 2n-1,17,补码的加法和减法: 求补运算 :对一个二进制数按位求反、末位加一 X补码 -X补码 X补码 加法规则:X+Y补码 = X补码 + Y补码 减法规则:X-Y补码 = X补码 + -Y补码 补码减法可转换为补码加法,64 (-46) 18,0100 0000 1101 0010 0001 0010,例:,18,进位和溢出 进位: 由于运算结果超出了位数,最高有效位向 前的进位,这一位自然丢失,一般不表 示结果的对错。 溢出:表示结果超出了字长允许表示的范围, 一般会造成结果出错。 例: (64) 11000000 127 01111111 64 0

9、1000000 + 1 00000001 0 1 00000000 128 10000000 进位 溢出,19,BCD码表示,二进制编码的十进制数(Binary-Coded Decimal),简称BCD码。,20,字符的表示,ASCII码:用一个字节来表示一个字符,低7位 为字符的ASCII值,最高位一般用作 校验位。 例: A 41H a 61H 1 31H 换行 0AH 回车 0DH 空格 20H,21,统一字符编码标准,统一字符编码空间,22,1.3 80X86微处理器,中央处理器在微型机中称为微处理器,是微型机的硬件核心 主要包含指令执行的运算和控制部件,还有多种寄存器 对程序员来说,

10、微处理器抽象为以名称存取的寄存器,23,16/32位PC机,本课程采用16位或32位个人计算机; 16位PC机是指采用16位80x86 CPU的IBM PC/XT/AT这三款个人微机或它们的兼容机; 32位PC机是指采用32位80x86 CPU而形成的微机,其基本结构仍然源于PC/AT机; 人们日常谈论的PC机或微机是上述微型计算机系统的统称。,24,微机的硬件,中央处理单元 CPU(Intel 80x86) 对汇编语言程序员,最关心其中的寄存器 存储器(主存储器) 呈现给汇编语言程序员的,是存储器地址 外部设备(接口电路) 汇编语言程序员看到的是端口(I/O地址),25,微处理器飞速发展,8

11、0386,80486,奔腾,奔腾2代,奔腾4代,80286,8086,奔腾3代,IA-64 (安腾),4004,不是我不明白, 这世界变化太快。 扎扎实实掌握知识, 以不变应万变!,26,8086/8088寄存器组,数据寄存器: 指针及变址寄存器:SP、BP、SI、DI 段寄存器: CS、DS、SS、ES 控制寄存器: IP、FLAGS,AX,BX,CX,DX,高8位 低8位,27,80x86的寄存器结构,80x86的程序可见寄存器组 通用寄存器 专用寄存器 段寄存器,28,1.8086的通用寄存器,8086的16位通用寄存器是: AX BX CX DX SI DI BP SP 其中前4个数据

12、寄存器都还可以分成高8位和低8位两个独立的寄存器 8086的8位通用寄存器是: AH BH CH DH AL BL CL DL 对其中某8位的操作,并不影响另外对应8位的数据,29,数据寄存器,数据寄存器用来存放计算的结果和操作数,也可以存放地址 每个寄存器又有它们各自的专用目的 AX累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等; BX基址寄存器,常用做存放存储器地址; CX计数器,作为循环和串操作等指令中的隐含计数器; DX数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。,30,变址寄存器,变址寄存器常用于存储器寻址时提供地址 SI是源变址寄存器 DI是目的变

13、址寄存器 串操作类指令中,SI和DI具有特别的功能,31,指针寄存器,指针寄存器用于寻址内存堆栈内的数据 SP为堆栈指针寄存器,指示栈顶的偏移地址 SP不能再用于其他目的,具有专用目的 BP为基址指针寄存器,表示数据在堆栈段中的基地址 SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址,32,堆栈(Stack),堆栈是主存中一个特殊的区域 它采用先进后出FILO(First In Last Out)或后进先出LIFO(Last In First Out)的原则进行存取操作,而不是随机存取操作方式。 堆栈通常由处理器自动维持。在8086中,由堆栈段寄存器SS和堆栈指针寄存器SP共

14、同指示,33,指令指针IP,指令指针寄存器IP,指示代码段中指令的偏移地址 它与代码段寄存器CS联用,确定下一条指令的物理地址 计算机通过CS : IP寄存器来控制指令序列的执行流程 IP寄存器是一个专用寄存器,34,2. 标志寄存器,标志(Flag)用于反映指令执行结果或控制指令执行形式 8086处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器),程序设计需要利用标志的状态,35,标志的分类,状态标志用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它 CF ZF SF PF OF AF 控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式

15、 DF IF TF,36,进位标志CF(Carry Flag),当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。,3AH + 7CHB6H,没有进位:CF = 0 AAH + 7CH(1)26H,有进位:CF = 1,37,零标志ZF(Zero Flag),若运算结果为0,则ZF = 1; 否则ZF = 0,3AH + 7CHB6H,结果不是零:ZF = 0 84H + 7CH(1)00H,结果是零:ZF = 1,注意:ZF为1表示的结果是0,38,符号标志SF(Sign Flag),运算结果最高位为1,则SF = 1;否则SF = 0,3AH + 7CHB6H,最高位D71:SF = 1 84H + 7CH(1)00H,最高位D70:SF = 0,有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态,39,奇偶标志PF(Parity Flag),当运算结果最低字节中“1”的个数为零或偶数时,PF =

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号