80X86 汇编语言程序设计 教学课件 ppt 作者 廖智 主编汇编语言第1章

上传人:w****i 文档编号:92499083 上传时间:2019-07-10 格式:PPT 页数:22 大小:201.50KB
返回 下载 相关 举报
80X86 汇编语言程序设计 教学课件 ppt 作者 廖智 主编汇编语言第1章_第1页
第1页 / 共22页
80X86 汇编语言程序设计 教学课件 ppt 作者 廖智 主编汇编语言第1章_第2页
第2页 / 共22页
80X86 汇编语言程序设计 教学课件 ppt 作者 廖智 主编汇编语言第1章_第3页
第3页 / 共22页
80X86 汇编语言程序设计 教学课件 ppt 作者 廖智 主编汇编语言第1章_第4页
第4页 / 共22页
80X86 汇编语言程序设计 教学课件 ppt 作者 廖智 主编汇编语言第1章_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《80X86 汇编语言程序设计 教学课件 ppt 作者 廖智 主编汇编语言第1章》由会员分享,可在线阅读,更多相关《80X86 汇编语言程序设计 教学课件 ppt 作者 廖智 主编汇编语言第1章(22页珍藏版)》请在金锄头文库上搜索。

1、第一章 基础知识,本章介绍学习汇编语言程序设计所必须具备的基本知识,主要包括汇编语言的基本概念、计算机中数据和字符的表示以及80X86计算机系统的存储器组织和寄存器组。 本章重点:十六进制数、补码、ASCII码、存储器组织、寄存器 本章难点:十六进制数的运算、存储器的分段,第一节 汇编语言简介,一、汇编语言 高级语言接近人,易学,但编出的源程序计算机不认识,必须经编译或解释成可执行程序(机器语言)才能执行。 机器语言是计算机唯一认识的一种语言,但它全部是用二进制数表示的,人很难理解、记忆。 汇编语言是为便于人理解、记忆机器语言而设计的一种语言,其每一条语句均与机器语言的语句一一对应,是用直观、

2、便于记忆的英文缩写符号来表示机器指令,这些符号被称作助记符,是符号化的机器语言。,二、汇编语言的特点 汇编语言对应机器语言,是接近计算机的思维,难学。 优点: 1、时间和空间上效率高:执行最快、占内存最少。 2、能利用计算机所有硬件特性并直接控制,便于实时控制、多媒体控制、通信等编程。,第二节 计算机中的数制,一、二进制数:(简单介绍) 区分符号: B 十进制数 :D 二十进制数转换方法: 按权展开 十二进制数转换方法: 整数除2取余,小数乘2取整,二、十六进制数(重点),n位二进制数可以表示出2n个数。例如3位二进制数可以表示8个数,4位二进制数可以表示16个数。 为了便于人们的阅读和书写,

3、经常使用八进制和十六进制数来表示二进制数。它们的基数和数码可表示为: 进位计数制 基数 数码 十六进制数 16 0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f 0000、0001、。1010、1011、。1111 十进制数 10 0、1、2、3、4、5、6、7、8、9 八进制数 8 0、1、2、3、4、5、6、7 二进制数 2 0、1 4位二进制数等效于1位十六进制数。为方便人们阅读和书写二进制数而产生的。,1、十六十进制数转换方法:按权展开 十十六进制数转换方法: 整数除16取余,小数乘16取整。 求:70D= H,3FBH= D,1100D= H 2、十六进制数的运算: 加

4、法:逢十六进一 减法:借一为十六 100H-1= H 乘法:举例说明P11习题1-3 8AB * 5C 6804 +2B57 31D74H,十进制 十六进制数 16 10H 32 20H 48 30H 64 40H 80 50H 96 60H 112 70H 128 80H : : 256 100H 1024 400H(1K) 4096 1000H( K) 65536 10000H( K) 1048576 100000H( ),第三节 计算机中数和字符的表示,一、数值表示(重点:补码) 在机器中,把一个数连同其符号在内用二进制数表示的数称为机器数,而它的数值称为机器数的真值。机器数可以用不同的

5、编码来表示,常用的有原码、补码和反码表示法。 用原码表示数的运算 用补码表示数的运算 +5 0101 0101 1、可直接运算。 + -5 +1101 +1011 2、减法可转化为加法。 0 0010 0000 所以,多数计算机用补码表示有符号数,且只有加法器即可。,1、区 补码表示:正数的补码符号位为0,数值位为真值。 别 负数的补码符号位为1,数值位为真值取反,末位加1。 求补操作:对补码表示的机器数连同符号位一起全部取反,末位加1 2、 3、 X+Y补 = X补+ +Y补 4、原码、反码、补码各有几个零? 以8位二进制数为例 取值范围 +0原=0000 0000 -127+127 -0原

6、=1000 0000 +0反=0000 0000 -127+127 -0反=1111 1111 +0补=0000 0000 -128+127 -0补=0000 0000,几个特点:,+1补+ -1补=1+FFH=100H(模)=0 互补 5、符号扩展:对于用补码表示的数,在保持其值不变的情况下,增加位数,这就是所谓的符号扩展。 正数前面补0,而负数前面补1。 零扩展:是对无符号数,将0添入扩展的每一位,使其值不变。,八位二进制有符号数 十六 0 0 +1 +1 : : +126 7EH +127 7FH -128 80H -127 81H -126 82H : : -2 FEH -1 FFH,

7、二、字符表示,ASCII码:美国信息交换标准代码 除了数值以外,人们还需要计算机处理字符或字符串。 例如从键盘输入的信息或打印输出的信息都是以字符方式输入输出的。目前最常用的就是ASCII码。 字符 ASCII码 AZ 41H5AH az 61H7AH 09 30H39H 回车 0DH 换行 0AH,第四节 存储器组织,一、存储单元的地址和内容 存储信息的基本单位是一个二进制位(Bit) 1个字节(Byte)= 8位二进制数 1个字(Word)= 16位二进制数 每个存储单元中存放的内容为 1个字节。 8位二进制数(2位十六进制数): 00H 0FFH 每个存储单元分配一个惟一的20位二进制数

8、(5位十六进制数)的存储器地址,称为物理地址。(门牌号码) 20位二进制数(5位十六进制数): 00000H 0FFFFFH,几个问题: 1、内容和地址均为二进制数或十六进制数表示,怎么区分? 例:(00003H)=12H 其中:00003H为地址,12H为内容 地址用圆括号括起来。(以后在程序中用方括号) 2、1个存储单元只存放1个字节,1个字或双字怎么存放? 原则:高字节存高地址,低字节存低地址! 括号中给出最低地址。 (见书中例题) 3、存储器的特点:取之不尽!(拷贝),二、存储器的分段,在实模式方式下,所有80X86 CPU允许的最大寻址空间均为1MB 内存( 20位二进制数),而CP

9、U的字长为16位,最多可访问216=64K个地址1M内存空间,怎么办? 将1M内存分成若干个64K大小的段(人为地)! 得到的地址称为逻辑地址,表示为:段地址:偏移地址 段首地址: 5位十六进制数中的末尾1位十六进制数为0的地址,即可作为段首地址。 段地址是指每一段的段首地址的高4位十六进制数,通常被保存在某个段寄存器中。 偏移地址则是指在段内相对于段首地址的偏移值,也取4位十六进制数。 逻辑地址由16位二进制数(4位十六进制数)的段地址和偏移地址组成。,物理地址:实模式方式下的5位十六进制数的地址。(唯一) 逻辑地址=段地址:偏移地址(不唯一) 物理地址=段地址*10H+偏移地址 (段首地址

10、) 例:0010H:10H=0000H:110H=0011H:0H=00110H,第五节 CPU中的寄存器,每个寄存器相当于CPU中的一个存储单元,但它的存取速度比存储器要快得多。它用来存放计算过程中所需要的或所得到的各种信息,包括操作数地址、操作数及运算的中间结果等。 80X86 CPU中的寄存器可以分为通用寄存器、段寄存器和专用寄存器三类,共14个十六位的寄存器。,1、段寄存器:,80X86 CPU中有四个专门存放段地址的16位的寄存器,称为段寄存器。每个段寄存器可以确定一个段的起始地址,而这些段则各有各的用途,它们分别是: CS(Code Segment):代码段寄存器。用来存放当前正在

11、运行程序的段地址。 DS(Data Segment):数据段寄存器。存放当前运行程序所用的数据的段地址。 SS(Stack Segment):堆栈段寄存器。先进后出 ES(Extra Segment):附加段寄存器。附加段是附加的数据段,是一个辅助的数据区,在串操作指令中,用来表示目的串所在数据段的段地址。,除非专门指定,一般情况下,各段在存储器中的分配是由操作系统负责的。 每个段可以独立地占用64KB存储区,各段也可以允许重叠,所谓的重叠只是指每个段区的大小允许根据实际来分配,而不一定要占64KB的最大空间,系统允许程序员在必要时可指定所需占用的内存区。,2、通用寄存器(7个16位寄存器 )

12、,AX:累加器。(算术运算、I/O指令中存放信息) 是使用频率最高的通用寄存器,通常,使用累加器的指令的机器代码更短、执行速度更快。 DS:BX:基址寄存器。(可存放内存的偏移地址) CX:计数寄存器。(LOOP指令、移位指令、串操作) DX:数据寄存器。(双字长中高字、I/O指令中端口地址) 只有这四个寄存器可以以字(16位)的形式访问,也可以以字节(8位)的形式访问。 例如:对AX可以分别访问高位字节AH或低位字节AL。 AH、AL相互独立,但AX由AH、AL组成。 BX:BH、BL CX:CH、CL DX:DH、DL,SS:BP:堆栈基址寄存器。可作为堆栈区中的一个基地址以便访问堆栈中的

13、信息。 DS:SI:源变址寄存器。在串指令中表示源数据串的地址。 DS:DI :目的变址寄存器。在串指令中表示目的数据串的地址。 这两个变址寄存器有自动增量和自动减量的功能,用于变址是非常方便的。 以上红色标明的都是默认段寄存器。,3、专用寄存器,SS:SP:堆栈指针寄存器。它与堆栈段寄存器联用来确定堆栈段中栈顶的地址,SP用来存放栈顶的偏移地址。 CS:IP:指令指针寄存器。它指向将要执行的下一条指令的首地址,与段寄存器CS联用确定下一条指令的物理地址。 当这一地址送到存储器后,控制器可以取得下一条要执行的指令,而控制器一旦取得这条指令就马上修改IP的内容,使它指向下一条指令的首地址。通常它是顺序增加的,从一条指令边界至下一条指令,但是在执行JMP、CALL、RET、IRET及条件转移等指令时,它可以指向向前或向后若干条的指令。 FLAGS为标志寄存器,这是一个存放状态、控制标志的寄存器。 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,习题1-6、1-10,

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

当前位置:首页 > 高等教育 > 其它相关文档

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