汇编语言第1章 预备知识

上传人:今*** 文档编号:106890175 上传时间:2019-10-16 格式:PPT 页数:96 大小:20.76MB
返回 下载 相关 举报
汇编语言第1章 预备知识_第1页
第1页 / 共96页
汇编语言第1章 预备知识_第2页
第2页 / 共96页
汇编语言第1章 预备知识_第3页
第3页 / 共96页
汇编语言第1章 预备知识_第4页
第4页 / 共96页
汇编语言第1章 预备知识_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《汇编语言第1章 预备知识》由会员分享,可在线阅读,更多相关《汇编语言第1章 预备知识(96页珍藏版)》请在金锄头文库上搜索。

1、,80X86汇编语言程序设计,熊迎军 xyj 13776655525 教学楼A509/A510,课程介绍,专业基础课、必修课 计算机组成原理的一个部分 软件开发的一个组成部分 一种低级语言的程序设计 高级语言程序设计的扩展 先修课 高级语言程序设计 后续课 微机原理及接口技术 计算机组成原理 ,2,使用教材,3,王元珍等编著,蔡启先等编著,参考教材,4,钱晓捷主编(第四版),王爽著(第3版),教学内容,第1章 预备知识 第2章 寻址方式 第3章 指令系统 第4章 汇编语言程序格式 第5章 基本汇编语言程序设计,5,教学要求,课堂上注意听讲、重要的是理解 部分补充例题等内容需要笔记 课堂外一定要

2、看书复习或预习、完成作业 充分利用上机时间、多编程练习,6,考核要求,考试成绩:70 平时成绩:30(作业、上课表现、考勤等),7,第1章 预备知识,8,主要内容:,计算机系统概述 数据存储方式 数据表示 8086寄存器组 存储器编址 什么是汇编语言 汇编语言程序举例,9,1.1 计算机系统概述,硬件(Hardware) 中央处理单元CPU 控制器、运算器、寄存器 存储器 主存储器:RAM和ROM 辅助存储器:磁盘、光盘、U盘 外部设备 输入设备和输出设备 软件(Software) 系统软件 应用软件,10,11,程序员能看到的硬件,中央处理单元 CPU(Intel 80x86) 对汇编语言程

3、序员,最关心其中的寄存器 存储器(主存储器) 呈现给汇编语言程序员的,是存储器地址 外部设备(接口电路) 汇编语言程序员看到的是端口(I/O地址),12,寄存器(Register),寄存器是CPU内部的高速存储单元 它们为处理器提供各种操作所需要的数据或地址等信息 汇编语言程序采用它们各自的符号名 16位Intel 8086/80286 CPU中有 AX BX CX DX SI DI BP SP 32位80386/80486/Pentium系列 CPU中有 EAX EBX ECX EDX ESI EDI EBP ESP,13,存储器地址(Address),存储器是由大量存储单元组成,需要用编号

4、区别每个单元:编号地址 存储器地址是存储器中存储单元的编号 每个存储单元存放一个字节量的数据 一个字节B(Byte)8个二进制位b(bit) 采用十六进制数来表达地址 Intel 8086具有1兆字节(1MB)存储器容量 存储器地址表示为:00000H FFFFFH 其中大写H(或小写h)表示是十六进制数,14,15,端口(Port),I/O接口电路由接口寄存器组成,需要用编号区别各个寄存器:编号地址 I/O地址是接口电路中寄存器的编号 端口是I/O地址的通俗说法 系统通过这些端口与外设进行通信 采用十六进制数来表达端口 Intel 8086支持64K个8位端口 I/O地址可以表示为:0000

5、H FFFFH,16,1.2 数据存储方式,17,字:由2个字节组成,字地址由两字节中地址较小的一个即低字节的地址决定。存放的方式是低8位存放低字节,高8位存放高字节。 双字:双字的地址也由四个字节中的最低地址确定,18,问题:一个字数据该怎样存入计算机主存呢? 双字数据呢? 高-高 低-低 字:要占有连续的两个字节. 16位中,低8位存放在低地址字节,高8位存放在相邻的高地址字节中。 双字:32位中,低16位存放在低地址字,高16位存放在相邻的高地址字地址中。,19,20,1.3 数据表示,数据在计算机中的表示形式 进制与编码,21,1.3.1 数据在计算机中的表示形式,22,真值与机器数,

6、真值:现实中真实的数值 机器数:计算机中用0和1数码组合表达的数值 无符号数:只表达0和正整数的定点整数 有符号数:表达负整数、0和正整数的定点整数 符号位需要占用一个位 常用机器数的最高位 0表示正数、1表示负数 定点数:固定小数点的位置表达数值的机器数 定点整数:将小数点固定在机器数的最右侧表达的整数 定点小数:将小数点固定在机器数的最左侧表达的小数 浮点数:小数点浮动表达的实数,23,无符号数表示范围,24,有符号数表示范围,(1)数值数据的表示形式,对于有符号数,一律采用二进制补码形式,25,此处不是乘号,仅表示“或”,补码,补码表示的几个特点: 1.所有正数的补码表示最左(高)位为0

7、,其二进制补码表示为本身; 2.所有负数的补码表示最左(高)位为1,其补码表示为:(原码)除符号位保持不变外,其它位取反加1。 例如:设n=8, 50补 = 00110010B补 = 00110010B -50补 = -00110010B补 =11001110B,26,3.一个二进制补码的最高位向左延伸S位,所得到的仍 是此数的补码表示。,27,(2)字符数据的表示形式,键盘输入的字母和数字、显示器显示的文字等都是字符信息。 西文:常用的将字符与2进制数对应起来的编码方法是美国信息标准交换代码ASCII码。 汉字: GB2312编码(1980)、GBK编码(1990) 区位码表:分94区*94

8、位,包括一级汉字(最常用汉字 ,按拼音排序)和二级汉字(稍常用汉字,按部首排 序),均为简体汉字,共约6700个。,28,ASCII码(美国标准信息交换码),标准ASCII码用7位二进制编码,有128个 不可显示的控制字符 前32个和最后一个编码 回车CR:0DH 换行LF:0AH 响铃BEL:07H 可显示和打印的字符:20H后的94个编码 数码09:30H39H 大写字母AZ:41H5AH 小写字母az:61H7AH 空格:20H 扩展ASCII码:最高D7位为1,表达制表符,29,30,1.3.2 进制与编码,二进制 十六进制 进制转换 BCD码,31,二进制,便于计算机存储及物理实现

9、特点:逢二进一,由0和1两个数码组成,基数为2,各个位权以2k表示 二进制数: anan-1a1a0.b1b2bm an2nan-12n-1a121a020 b12-1b22-2bm2-m 其中ai,bj非0即1,32,十六进制,用于表达二进制数,相互转换简单 基数16,逢16进位,位权为16k,16个数码: 0,1,2,3,4,5,6,7,8,9 A,B,C,D,E,F 十六进制数: anan-1a1a0.b1b2bm an16nan-116n-1a1161 a0160 b116-1b216-2bm16-m 其中ai,bj是0F中的一个数码,33,十进制整数转换为二或十六进制数,整数部分转换

10、:用除法 十进制数整数部分不断除以基数2或16,并记下余数,直到商为0为止 由最后一个余数起逆向取各个余数,则为转换成的二进制和十六进制数 12601111110B 1267EH,34,十进制小数转换为二或十六进制数,小数部分转换:用乘法 分别乘以各自的基数,记录整数部分,直到小数部分为0为止 0.81250.1101B 0.81250.DH 小数转换会发生总是无法乘到为0的情况 可选取一定位数(精度) 将产生无法避免的转换误差,35,二或十六进制数转换为十进制数,36,方法:按权展开 二进制数转换为十进制数 0011.1010B 12112012-102-212-3 3.625 十六进制数转

11、换为十进制数 1.2H 11602161 1.125,十六进制数用后缀字母H,二进制数用后缀字母B,BCD码(Binary Coded Decimal),二进制编码的十进制数 一个十进制数位09用4位二进制编码来表示 常用8421 BCD码:低10个4位二进制编码表示 压缩BCD码:一个字节表达两位BCD码 0001 0000 =10 ,1000 1001 =89 非压缩BCD码:一个字节表达一位BCD码(低4位表达数值,高4位常设置为0) 0000 0000 = 0 ,0000 0001 = 1 ,0000 0010 = 2 BCD码很直观 BCD码:0100 1001 0111 1000.

12、0001 0100 1001 十进制真值:4978.149,37,1.4 存储器编址,存储器的编址 实地址模式下的存储器地址变换,38,1.4.1 存储器的编址,8086 CPU有20条地址线 最大可寻址空间为2201MB 物理地址范围从00000HFFFFFH 8086 将1MB空间分成许多逻辑段(Segment) 这样,一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址。 物理地址:内存单元在整个内存空间中的惟一的20位地址00000HFFFFFH 逻辑地址:段基地址 : 段内偏移地址,39,8086对逻辑段要求: 段地址低4位均为0 每段最大不超过64KB 8086对逻辑段并不要

13、求: 必须是64KB 各段之间完全分开(即可以重叠),1MB空间最多能分成多少个段? 每隔16个存储单元就可以开始一个段 所以1MB最多可以有: 2201621664K 个段 1MB空间最少能分成多少个段? 每隔64K个存储单元开始一个段 所以1MB最少可以有: 22021616 个段,每个物理存储单元有一个唯一的20位编号,即物理地址: 00000HFFFFFH 分段后用户编程时,采用逻辑地址: 段基地址 : 段内偏移地址,44,段地址说明逻辑段在主存中的起始位置 8086规定段地址必须是模16地址:xxxx0H 省略低4位0000B,段地址就可以用16位数据表示,就能用16位段寄存器表达段

14、地址 偏移地址说明主存单元距离段起始位置的偏移量 每段不超过64KB,偏移地址也可用16位数据表示,45,物理地址=段基地址16+偏移地址,0 0 0 0,段首地址, , ,19,0,4, , ,偏移地址,+,物理地址,1.4.2 地址变换,47,逻辑地址 1460:100、1380:F00 物理地址 14700H 14700H,例:已知 CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H ,画出各段在内存中的分布。,CS=1055H 段首地址=10550H DS=250AH 段首地址=250A0H ES=2EF0H SS=8FF0H,10550H,250A0H,2EF00

15、H,8FF00H,代码段,数据段,附加段,堆栈段,例:设某操作数存放在数据段,DS=250AH,数据所在单元的偏移地址=0204H。则该操作数所在单元的物理地址为: 250AH 16+0204H = 252A4H,49,1.5 8086寄存器组,8086微处理器 8086寄存器组,50,1.4.1 8086微处理器,微处理器是微机的硬件核心,主要包含指令执行的运算和控制部件,还有多种寄存器 对程序员来说,微处理器抽象为以名称存取的寄存器 8086可访问主存空间为1MB,20条地址线,16条数据线。 内部结构有两个功能模块,完成一条指令的取指和执行功能 总线接口单元BIU:负责读取指令和操作数

16、执行单元EU :负责指令译码和执行,51,8086的内部结构,52,执行,1.4.2 8086寄存器组,53,8088/8086内部有14个16位的寄存器。按其功能可分为三大类:通用寄存器(8个),段寄存器(4个)和控制寄存器(2个),通用寄存器,8086的16位通用寄存器是: AX BX CX DX SI DI BP SP 其中前4个数据寄存器都还可以分成高8位和低8位两个独立的寄存器 8086的8位通用寄存器是: AH BH CH DH AL BL CL DL 对其中某8位的操作,并不影响另外对应8位的数据,54,数据寄存器,数据寄存器用来存放计算的结果和操作数,也可以存放地址 每个寄存器又有它们各自的专用目的 AX累加器,使用频度最高

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

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

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