汇编语言教程 课件

上传人:我*** 文档编号:143784613 上传时间:2020-09-02 格式:PPT 页数:51 大小:664.50KB
返回 下载 相关 举报
汇编语言教程 课件_第1页
第1页 / 共51页
汇编语言教程 课件_第2页
第2页 / 共51页
汇编语言教程 课件_第3页
第3页 / 共51页
汇编语言教程 课件_第4页
第4页 / 共51页
汇编语言教程 课件_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《汇编语言教程 课件》由会员分享,可在线阅读,更多相关《汇编语言教程 课件(51页珍藏版)》请在金锄头文库上搜索。

1、上节课知识点回顾,汇编语言的组成 MOV AX,BX 补码性质 存储单元与内存 三类总线 存储单元访问原则,习题检测,MOV DX,BX 教材7页表1.3:字符0-9与数值0-9之间编码规律?大写字母与对应小写字母的编码规律 12341H双字单元的内容。 12342H字单元的内容。 12341H字节单元的内容。 已知内存单元中的数据为FFD9H,求其真值,结果要求用十进制数表示,第2章 本次课目的,熟悉常用寄存器 熟悉MOV、ADD、JMP、SUB指令 掌握 物理地址的概念及相关计算,CPU,寄存器,8086CPU有14个寄存器 它们的名称为: AX、BX、CX、DX、SI、DI、SP、BP、

2、 IP、CS、SS、DS、ES、PSW。,8086CPU所有的寄存器都是16位的,可以存放两个字节。 AX、BX、CX、DX 通常用来存放一般性数据被称为通用寄存器。 一个16位寄存器可以存储一个16位的数据。(数据的存放情况) 一个16位寄存器所能存储的数据的最大值为多少? 答案:216-1。,2.1 通用寄存器,16位数据在寄存器中的存放情况,数据:18 二进制表示:10010 在寄存器AX中的存储:,16位数据在寄存器中的存放情况,数据:20000 二进制表示:0100111000100000 在寄存器AX中的存储:,2.1 通用寄存器特点,AX可以分为AH和AL; BX可以分为BH和B

3、L; CX可以分为CH和CL; DX可以分为DH和DL。,2.1 通用寄存器,AX的低8位(0位7位)构成了AL寄存器,高8位(8位15位)构成了AH寄存器。 AH和AL寄存器是可以独立使用的8位寄存器。 8086CPU的8位寄存器数据存储情况 一个8位寄存器所能存储的数据的最大值是多少? 答案:28-1。,2.1 通用寄存器,2.2 几条汇编指令,汇编指令不区分大小写,注意:MOV、ADD指令要求两个操作数对象的位数必须一致,指令对错判断,mov ax,bl mov bh,ax mov al,20000 add al,100h,2.2几条汇编指令,CPU执行下表中的程序段的每条指令后,对寄存

4、器中的数据进行的改变。,2.2 几条汇编指令,注意,2.3 物理地址,CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。 每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。,16位结构的CPU,概括的讲,16位结构描述了一个CPU具有以下几个方面特征: 1、运算器一次最多可以处理16位的数据。 2、寄存器的最大宽度为16位。 3、寄存器和运算器之间的通路是16位的。,8086CPU给出物理地址的方法,8086有20位地址总线,可传送20位地址,寻址能力为1M。 8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有

5、64K。,8086CPU给出物理地址的方法,8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。 8086CPU相关部件的逻辑结构,在8086CPU内部用两个16位地址合成的方法来形成一个20位的物理地址,地址加法器,地址加法器合成物理地址的方法: 物理地址=段地址16+偏移地址 例如: 8086CPU访问地址为123C8H的内存单元 由段地址16引发的讨论,观察移位次数和各种形式数据的关系: (1)一个数据的二进制形式左移1位,相当于该数据乘以2; (2)一个数据的二进制形式左移N位,相当于该数据乘以2的N次方; (3)地址加法器如何完成段地址16的运算? 以二

6、进制形式存放的段地址左移4位。,由段地址16引发的讨论,2.4 段的概念逻辑意义上的划分,我们可以认为:地址10000H100FFH的内存单元组成一个段,该段的起始地址( 基础地址)为10000H,段地址为1000H,大小为100H。,2.4 段的概念,我们也可以认为地址10000H1007FH、10080H100FFH 的内存单元组成两个段,它们的起始地址( 基础地址 )为10000H和10080H,段地址为:1000H 和1008H,大小都为80H。,2.4 段的概念,以后,在编程时可以根据需要,将若干地址连续的内存单元看作一个段,用段地址16定位段的起始地址(基础地址),用偏移地址定位段

7、中的内存单元。 两点需要注意 内存单元地址小结 特别提示,两点需要注意,(1)段地址16 必然是 16的倍数,所以一个段的起始地址也一定是16的倍数; (2)偏移地址为16位,16 位地址的寻址能力为 64K,所以一个段的长度最大为64K。,内存单元地址小结,CPU访问内存单元时,必须向内存提供内存单元的物理地址。 8086CPU在内部用段地址和偏移地址移位相加的方法形成最终的物理地址。 思考两个问题,(1)观察下面的地址,读者有什么发现? 结论:CPU可以用不同的段地址和偏移地址形成同一个物理地址。 段地址:偏移地址,也成为逻辑地址,内存单元地址小结,内存单元地址小结,(2)如果给定一个段地

8、址,仅通过变化偏移地址来进行寻址,最多可以定位多少内存单元? 结论:偏移地址16位,变化范围为0FFFFH,仅用偏移地址来寻址最多可寻64K个内存单元。 比如:给定段地址1000H,用偏移地址寻址,CPU的寻址范围为:10000H1FFFFH。,内存单元地址小结,在8086PC机中,存储单元的地址用两个元素来描述。即段地址和偏移地址。 “数据在21F60H内存单元中。”对于8086PC机的两种描述: (a)数据存在内存2000:1F60单元中; (b)数据存在内存的2000段中的1F60H单元中。 可根据需要,将地址连续、起始地址为16的倍数的一组内存单元定义为一个段。,问题,2.5 段寄存器

9、,段寄存器就是提供段地址的。 8086CPU有4个段寄存器: CS、DS、SS、ES 当8086CPU要访问内存时,由这4个段寄存器提供内存单元的段地址。,2.6 CS和IP,CS和IP是8086CPU中最关键的寄存器,它们指示了CPU当前要读取指令的地址。 CS为代码段寄存器; IP为指令指针寄存器。,8086PC读取和执行指令相关部件,8086PC读取和执行指令演示 8086PC工作过程的简要描述,8086PC工作过程的简要描述,(1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器; (2)IP = IP + 所读取指令的长度,从而指向下一条指令; (3)执行指令。 转到步骤

10、(1),重复这个过程。,8086PC工作过程的简要描述,在 8086CPU 加电启动或复位后( 即 CPU刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H,2.6 CS和IP,CPU根据什么将内存中的信息看作指令? CPU将CS:IP指向的内存单元中的内容看作指令。,2.6 修改CS、IP的指令,8086CPU必须提供相应的指令 先回想我们如何修改AX中的值? mov指令不能用于设置CS、IP的值, 8086CPU为CS、IP提供了另外的指令来改变它们的值:转移指令,如何修改AX中的值?,mov 指令 如:mov ax,123 mov指令可以改变8086CPU大部分寄存器的值

11、,被称为传送指令。 能够通过mov 指令改变CS、IP的值吗?,2.6 修改CS、IP的指令,同时修改CS、IP的内容: jmp 段地址:偏移地址 jmp 3:0B16 功能:用指令中给出的段地址修改CS,偏移地址修改IP。,2.6 修改CS、IP的指令,仅修改IP的内容: jmp 某一合法寄存器 jmp ax (类似于 mov IP,ax) 功能:用寄存器中的值修改IP。,内存中存放的机器码和对应汇编指令情况: (初始:CS=2000H,IP=0000H) 请写出指令执行序列:,问题分析,问题分析结果:,(1)mov ax,6622 (2)jmp 1000:3 (3)mov ax,0000

12、(4)mov bx,ax (5)jmp bx (6)mov ax,0123H (7)转到第(3)步执行,代码段,对于8086PC机,在编程时,可以根据需要,将一组内存单元定义为一个段。 可以将长度为 N( N64KB )的一组代码,存在一组地址连续、起始地址为 16的倍数的内存单元中,这段内存是用来存放代码的,从而定义了一个代码段。 例如,代码段,这段长度为 10 字节的字节的指令,存在从123B0H123B9H的一组内存单元中,我们就可以认为,123B0H123B9H这段内存单元是用来存放代码的 ,是一个代码段 ,它的段地址为123BH,长度为10字节。,代码段,如何使得代码段中的指令被执行

13、呢? CPU 只认被 CS:IP 指向的内存单元中的内容为指令。 所以要将CS:IP指向所定义的代码段中的第一条指令的首地址。 CS = 123BH,IP = 0000H。,2.4节2.6节 小结,1、段地址在8086CPU的寄存器中存放。当8086CPU要访问内存时,由段寄存器提供内存单元的段地址。8086CPU有4个段寄存器,其中CS用来存放指令的段地址。 2、CS存放指令的段地址,IP存放指令的偏移地址。 8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。,2.4节2.5节 小结(续),3、8086CPU的工作过程: (1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器; (2)IP指向下一条指令; (3)执行指令。(转到步骤(1),重复这个过程。) 4、8086CPU提供转移指令修改CS、IP的内容。,习题,sub ax,bx; 表示寄存器ax-bx得到的差值再回送给ax 下面的3条指令执行后,CPU几次修改ip?都是在什么时候?最后ip中的值是多少? mov ax,bx sub ax,ax jmp ax,

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

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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