资源预览内容
第1页 / 共73页
第2页 / 共73页
第3页 / 共73页
第4页 / 共73页
第5页 / 共73页
第6页 / 共73页
第7页 / 共73页
第8页 / 共73页
第9页 / 共73页
第10页 / 共73页
亲,该文档总共73页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,汇编语言与计算机组成原理,2,课程要求及考试,32学时课堂教学,16学时实验 双周周一在院机房二上机 限选 平时作业及上机实习30分 期末闭卷考试70分,3,课程主要内容,计算机基础知识 CPU组织、存储系统 8086指令系统 汇编语言层 高级汇编语言程序设计 32位指令及其编程 64位指令,4,第1章 基础知识,计算机系统概述 数据表示 8086微处理器 存储器组织 8086的寻址方式,5,1.1 计算机系统概述,计算机是一种能够存储程序,能够自动连续的执行程序,对各种数字化信息进行算术运算或逻辑运算的快速工具 存储程序工作方式 事先编制程序 事先存储程序 自动、连续的执行程序 信息的数字化表示,6,计算机系统的硬、软件组成,计算机硬件系统 CPU 主存储器 外存储器 输入/输出设备 总线 接口,7,8,CPU,CPU即中央处理器,是硬件系统的核心部件,负责读取并执行指令。 程序计数器PC:存放当前指令所在存储单元的地址,在执行完当前指令后可自增或自减,指向下一条指令 算术逻辑部件ALU 控制器:可分为组合逻辑控制器及微程序控制器,9,主存储器,计算机中的存储器分为几级,主要是考虑了容量与存取速度之间的矛盾 主存储器用半导体存储器构成,工作速度较高,也有一定的存储容量 主存储器用来存放需要执行的程序以及需要处理的数据,能由CPU直接读出或写入 主存储器分为许多单元,能按地址存取内容,10,外存储器,外存储器由磁盘、光盘等构成,存储容量较高,但是速度较慢 外存储器用来存放那些需要联机存放,但暂不执行的程序和数据,当需要运行时再由外存调入主存 外存储器不由CPU直接编址访问,因此其中的内容一般都是按文件的形式进行组织,用户按照文件名进行调用,11,输入/输出设备,常规输入/输出设备包括:键盘、鼠标、显示器、打印机等 输入设备用来将计算机外部的信息输入计算机 输出设备将计算机的处理结果以用户能看的懂的形式输出,12,总线,总线是指一组能为多个部件分时共享的信息传输线。 CPU、主机和I/O设备之间通过系统总线传递信息。 系统总线分为三组:地址总线、数据总线和控制总线,13,接口,接口在系统总线与I/O设备之间,用来协助完成数据传送和控制任务 对输入输出数据进行缓冲、隔离和锁存(速度不匹配) 对信号的形式和数据的格式进行变换(信息格式的不匹配) 对I/O端口进行寻址,14,计算机软件系统,系统软件 操作系统 编译程序与解释程序 各种软件平台 应用软件,15,操作系统,操作系统负责管理和控制计算机系统硬、软件资源及运行的程序,合理组织计算机的工作流程,是用户与计算机之间的接口,为用户提供软件的开发环境和运行环境 一个完备的操作系统包括:CPU调度管理、存储器管理、I/O设备管理、文件管理、作业管理等几大部分,16,计算机的程序设计语言,机器语言 机器语言程序是机器唯一能够识别的程序 机器指令通常由操作码和操作数构成 汇编语言 是一种符号语言,用助记符表示操作码 高级语言 Basic、FORTRAN、Pascal、C/C+,17,汇编语言的特点,汇编语言与处理器密切相关 每种处理器都有自己的指令系统,相应的汇编语言也各不相同。所以汇编语言通用性、可移植性差 汇编语言功能有限、编写繁琐 涉及寄存器、主存单元等硬件细节 汇编语言容易产生运行速度快、指令序列短小的高效率目标程序 汇编语言本质上就是机器语言,可以直接控制计算机硬件部件,18,汇编语言的应用,程序要具有较快的执行时间,或者只能占用较小的存储容量 程序与计算机硬件密切相关,程序要直接、有效的控制硬件 大型软件需要提高性能、优化处理的部分 没有合适的高级语言或只能采用汇编语言的时候 还有许多实际的应用,19,计算机的工作过程,处理问题的步骤 处理问题的步骤可以归纳为:系统分析、建立数学模型、设计算法、编写应用程序、编译为目标代码、由硬件执行目标程序 指令执行过程 取指令与指令分析 读取操作数 运算 后继指令地址,20,21,1.2 数据表示数制,二进制数 十六进制数,22,数制之间的转换,23,1.2 数据表示编码,BCD码 二进制编码的十进制数 Binary Coded Decimal 常用的BCD码是8421码,它用4位二进制编码的低十个表示09之间的是个数字 例 BCD:0100 1001 0111.0001 0100 1001,24,ASCII码,美国标准信息交换码 字母和各种字符按特定的规则用二进制数进行编码,09共10个数字字符:30H39H,26个大写英文字母:41H5AH,一些通用符号和控制符号,128个ASCII码字符包括:,26个小写英文字母:61H7AH,25,有符号数的表示,计算机中的数用二进制表示,数的符号也只能用0和1表示。 一般用最高有效位来表示数的符号 正数用0表示,负数用1表示 有符号数有不同的编码方式,常用的是补码,另外还有原码和反码,26,有符号数的表示,原码 最高有效位表示符号,其余位直接表示数值大小 反码 正数反码与原码相同,符号位用0表示。 负数反码为它的正数的各位(包括符号位)按位取反而形成 补码 正数补码与原码相同,符号位用0表示 负数补码则为它的反码、并在最低有效位加1所形成,27,二进制运算,算术运算 加法运算 减法运算 逻辑运算 与运算 或运算 非运算,28,练习,1、将下列十六进制数转换为二进制和十进制表示 (1)FFH(2)0H(3)5EH (4)EFH(5)2EH(6)10H 2、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)127(2)127(3)57 (4)126(5)68(7)126,29,练习,3、完成下列二进制数的运算 (1)10111001(2)10111001 (3)1011与1001(4)1011或1001 4、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是十进制什么数?如果认为它是BCD码,则表示什么数?如果它是个ASCII码,则代表哪个字符?,30,1.3 8086微处理器,8086的功能结构 8086寄存器组 8086的通用寄存器 标志寄存器 存储器组织与段寄存器,31,80X86系列CPU,32,80X86系列CPU,33,34,35,8086寄存器组,8个通用寄存器 AX、BX、CX、DX(可以拆作两个8位寄存器) SP、BP、SI、DI 1个指令指针寄存器 IP 1个标志寄存器 FLAGS 4个段寄存器 CS、DS、ES、SS,36,通用寄存器,AX累加器 是算术运算的主要寄存器;所有I/O指令都通过AX与外设传送信息。 BX基址寄存器 CX计数器 可以用来保存计数值 DX数据寄存器 双字运算中与AX共同表示一个双字;在I/O操作中,可以存放I/O端口地址,37,通用寄存器,SP堆栈指针寄存器 BP基址指针寄存器 SP、BP与堆栈段寄存器SS联用确定堆栈中某一存储单元的地址 SI源变址寄存器 DI目的变址寄存器 SI、DI可以与数据段寄存器DS联用确定数据段中某一存储单元的地址;它们都有自动增减的功能,方便用于变址,38,指令指针寄存器IP,IP用来存放代码段中的偏移地址 在程序的运行过程中,它始终指向下一条指令的首地址,它与段寄存器CS联用确定下一条指令的物理地址 计算机用IP寄存器来控制指令序列的执行流程 不能随意改变IP寄存器的值,39,标志寄存器FLAGS,反映指令执行结果或者控制指令执行形式 程序设计的过程中经常要利用标志,40,条件码标志,溢出标志(overflow flag,OF) 符号标志(sign flag,SF) 零标志(zero flag,ZF) 进位标志(carry flag,CF) 辅助进位标志(auxiliary carry flag,AF) 奇偶标志(parity flag,PF),41,控制标志,方向标志(direction flag,DF) DF=1:每次操作后变址寄存器SI和DI的值减小,即地址从高向低 DF=0:每次操作后变址寄存器SI和DI的值增大,即地址从低向高 可以通过指令设置DF的值,42,系统标志,陷阱标志(trap flag,TF) 用于调试时的单步方式操作 中断标志(interrupt flag,IF) 控制CPU是否响应中断请求,43,标志位的符号表示,44,段寄存器,代码段(code segment,CS) 数据段(data segment,DS) 堆栈段(stack segment,SS) 附加段(extra segment,ES),45,1.4 存储器,1 数据的存储格式,计算机中信息的单位 二进制位Bit:存储一位二进制数:0或1 字节Byte:8个二进制位,D7D0 字Word:16位,2个字节,D15D0 双字DWord:32位,4个字节,D31D0,46,1.4存储器,2 存储单元的地址和内容,物理地址: 在存储器里面,每个字节单元给以一个唯一的存储器地址,称为物理地址。,地址从0开始编号,顺序加1 用二进制数来表示,书写格式为十六进制数 8086可以访问的地址为:00000HFFFFFH,47,1.4 存储器,2 存储单元的地址和内容,一个存储单元中存放的信息称为该存储单元的内容。,(00001H)=78H,(00001H)=5678H,48,1.4 存储器,3 存储器的分段管理,80X86中的8086以及8088只能在实模式下工作,其余型号即可以在实模式下也可以在保护模式下工作。实模式就是为8086、8088而设计的工作方式。,49,在实模式下,首要解决的问题就是在16位字长的机器中,怎么提供20位的地址?,解决的方法就是采用存储器地址分段,50,存储器地址的分段,将1MB主存空间划分为若干段 每个段的最大长度为64KB 这样段内的地址可以用16位表示 段开始于后四位为零的存储单元,这样段的地址可以用16为表示 20位物理地址由16位段地址和16位偏移地址共同构成,51,存储器地址的分段,段地址:说明逻辑段在主存中的起始位置。为了能用16位寄存器表达段地址,8086规定段地址必须是模16地址,即为xxxx0H形式。省略低4位0,段地址就可以用16位数据表示,它通常被保存在16位的段寄存器中。 段内偏移地址:说明主存单元距离段起始位置的偏移量。由于限定每段不超过64KB,所以偏移地址也可以用16位数据表示,52,存储器地址的分段,16d段地址偏移地址物理地址,在实模式下,段地址和偏移地址为3019:000A的存储单元的物理地址是什么?如果段地址和偏移地址是3015:002A呢?,53,段寄存器,8086有4个16位段寄存器 CS(代码段):指明代码段的起始地址 SS(堆栈段):指明堆栈段的起始地址 DS(数据段):指明数据段的起始地址 ES(附加段):指明附加段的起始地址 每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途,54,55,存储器地址的分段,段地址:说明逻辑段在主存中的起始位置。为了能用16位寄存器表达段地址,8086规定段地址必须是模16地址,即为xxxx0H形式。省略低4位0,段地址就可以用16位数据表示,它通常被保存在16位的段寄存器中。 段内偏移地址:说明主存单元距离段起始位置的偏移量。由于限定每段不超过64KB,所以偏移地址也可以用16位数据表示,56,逻辑段分配,57,1.5 8086的寻址方式,指令的组成 指令由操作码和操作数两部分组成 操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作。 操作数是执行指令的参与者,也就是各种操作的对象,58,1.5 8086的寻址方式,立即寻址方式 寄存器寻址方式 直接寻址方式 寄存器间接寻址方式 寄存器相对寻址方式 基址变址寻址方式 相对基址变址寻址方式,59,1、立即寻址方式,操作数直接放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段。 立即数可以是8位也可以是16位 立即数寻址常用来给寄存器赋初值 只能用于源操作数,60,立即数寻址的功能,61
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号