汇编语言基础知识.ppt

上传人:牧羊曲112 文档编号:5993755 上传时间:2023-09-12 格式:PPT 页数:67 大小:307.50KB
返回 下载 相关 举报
汇编语言基础知识.ppt_第1页
第1页 / 共67页
汇编语言基础知识.ppt_第2页
第2页 / 共67页
汇编语言基础知识.ppt_第3页
第3页 / 共67页
汇编语言基础知识.ppt_第4页
第4页 / 共67页
汇编语言基础知识.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《汇编语言基础知识.ppt》由会员分享,可在线阅读,更多相关《汇编语言基础知识.ppt(67页珍藏版)》请在三一办公上搜索。

1、1,第一章,汇编语言基础知识,封面,2,第一章 汇编语言基础知识,1.1 计算机系统概述(硬件、软件、语言类型)1.2 数据表示(数制、编码、符号数、二进制运算)1.3 Intel80 x86系列微处理器(8086P4)1.4 PC微型计算机系统(PC机的软硬件)1.5 8086微处理器(8086的结构)1.6 8086的寻址方式(8086寻找操作数的方式)要点及习题分析,3,1.1 计算机系统概述,1.1.1 计算机的硬件1.1.2 计算机的软件 1.1.3 计算机程序设计语言,返回第一章,4,1.1.1 计算机的硬件,对汇编语言程序员来说,计算机硬件的结构如下图所示(CPU、存储器、接口(

2、外设):,外总线,5,1.中央处理单元,由三部分组成。控制器:取指令,经译码分析后发出各种控制命令,如取数、存数、运算等。运算器:完成各种算术运算和逻辑运算。寄存器(或寄存器阵列):由多个8位、16位寄存器组成,提供各种操作所需要的数据。,6,2.存储器,1)存放程序和数据;可重复读取;新数据覆盖原数据。2)主存:半导体,快,成本高,容量小;辅存:软硬磁盘、光盘;3)RAM:可读可写,易失性存储器;ROM:只读,非易失性存储器;4)由大量存储单元组成:单位、内容、地址、容量、B(BYTE)、KB、MB、GB、TB等。,7,3.外部设备和接口,设备类型:人机交互 机器间通信 外存(可看做I/O设

3、备)接口:接口的必要性:格式转换、电平转换 接口的组成:三个(组)寄存器;通过寄存器交换数据;对接口的访问:端口-端口号-端口地址、I/O地址;,返回1.1,8,1.1.2 计算机软件,1.系统软件 面向计算机、由厂家提供;其作用为管理和维护、充分发挥其功能、为用户提供一个方便使用的系统。如操作系统,诊断系统,程序设计语言等2.应用软件 面向问题、由公司或用户编写集成开发环境:开发工具包括文本编辑、翻译程序、调试程序、连接程序等,在DOS时代,其各自是独立的;现在将其集成为一个软件,即为“集成开发环境”。,返回1.1,9,1.1.3计算机的程序设计语言,1.机器语言 低级语言 2.汇编语言程序

4、设计语言 3.高级语言 C/C+、JAVA、DELPHI,10,1.机器语言,指令机器指令;机器指令的组成:操作码、操作数;指令系统;机器语言:指令系统及使用指令系统编写程序的规则。机器语言特点:计算机唯一能够直接识别的语言。目标程序:用机器语言描述的程序。机器语言的致命缺点:难以使用。如100+2568086机器语言程序:B8 64 00 05 00 01 A3 00 20,11,2.汇编语言,汇编指令:用便于记忆、并能描述指令功能的符号表示机器指令汇编指令(符号指令)。助记符:表示指令操作码的符号,一般用英语单词或缩写。指令的操作数也用符号表示。汇编语言:汇编指令及使用汇编指令编写程序的规

5、则。(其他语言要素第三章介绍)汇编语言(源)程序:使用汇编语言编写的程序。汇编语言的特点:汇编指令与机器指令一一对应,但相对机器语言易于理解、掌握,当我们用低级语言编写程序时使用汇编语言而不用机器语言。汇编和汇编程序:翻译过程 翻译程序。,12,3.高级语言,机器语言和汇编语言以外的程序设计语言统称高级语言。其特点是更加接近自然语言和惯用的数学表达形式,与计算机硬件结构无关,因而便于使用,便于交流和推广。总之,高级语言编程效率高,但运行效率低。高级语言可分成编译型和解释型高级语言,分别使用编译程序和解释程序将源程序翻译成机器语言程序,然后交计算机执行。,13,4.汇编语言程序设计的意义,学习汇

6、编语言的意义:1)与硬件密切相关,是学习硬件类课程的先行课和基础课。2)有利于理解计算机的工作原理。3)可直接而有效地控制硬件。4)执行效率高,占用空间小。5)特殊应用只能使用汇编语言,如加密解密等。应该指出的是:在计算机速度大大提高和存储器容量大大增加的今天,高级语言的使用更为广泛和普遍(特别是编写大型程序)。,返回第一章,14,1.2数据表示,1.2.1 数制1.2.2 编码1.2.3 有符号数的表示方法1.2.4 二进制运算,返回第一章,15,1.2.1 数制,数制涉及三个问题:计数符号 基数和权 计数规则(1)计数符号 这是用于书写数值的符号,所有计数符号的集合称作数符集。k进制的数符

7、集中必然包含k个符号。比如:二进制的数符集中有两个符号:0和1;八进制的数符集中有8个符号:0,1,2,3,4,5,6,7;十进制的数符集中有10个符号:0,1,2,3,4,5,6,7,8,9;十六进制的数符集中有16个符号:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。,16,数制的三个问题:1.二进制数,(2)基数和权 如果把用k进制书写的一个整数从右往左依次记作第0位、第1位、第n位,则第i位上的数符ai所代表的含义是aiki。在此,我们把k称为一个数制的基数,而把ki称为k进制数第i位的权。(如888,每个8的位权都不相同)(3)计数规则 简单地说,就是“逢k进1,借

8、1当k”。.1.二进制数 1 1 0 1 1 0 1 1.1 0 1 B=1x27+126+025+124+123+022+121+1 20+12-1+02-2+12-3 二进制数是计算机内部采用的,并唯一能够直接被计算机识别的数。,17,2.十六进制数,2.十六进制数 8a0f.6bH=8163+10 162+0 161+15 160+6 16-1+11 16-2 引入十六进制数的目的是为了描述二进制数。数的书写方法:1)二进制数尾部加B(b)。2)十六进制数尾部加H(h);如记数符号a,b,c,d,e,f打头,头部应加0,如0A8F5H;记数符号 a,b,c,d,e,f 不区别大小写,与A

9、BCDEF等效。3)十进制数尾部加D(d),但通常可以省略。,18,3.数制间转换,3.数制间转换 1)十进制数转换二进制数;2)十进制数转换十六进制数;3)二进制数十六进制数互相转换;,返回1.2,19,1.2.13 数制转换:十进制二进制(整数),将整数部分不断除以2,记下每次得到的余数,直到商为零;余数倒排,即最后得到的余数排在最高位,第一个余数排在最低位。例如将十进制数13转换成二进制数:2 1 3 余数 2 6 1 2 3 0 2 1 1 0 113D=1101B,20,1.2.13 数制转换:十进制二进制(小数),小数部分转换:乘2取整,顺序排列得到的整数。例如将0.8125转换成

10、二进制数:0.8125整数 2 1.6250 2 1.25 2 0.50 2 1.00 0.8125D=0.1101B(有时会有转换误差,如0.3D),返回数制转换,21,1.2.13 数制转换:十进制十六进制,十进制数转换成十六进制数,方法同十进制数转换成二进制数,只不过“除2取余”变为“除16取余”,“乘2取整”变为“乘16取整”。同理,如果要将十进制数转换为其它数制的数(如八进制数),也采用同样的方法。二进制数、十六进制数转换成十进制数教材未介绍,只要将二进制数、十六进制数按位权展开相加即可,如将8A.B5H转换成十进制数:8A.B5H=8161101601116-1+516-2=128

11、100.68750.0195=138.707D,返回数制转换,22,二进制数互相转换十六进制数,返回数制转换,5 A.5 H,23,1.2.2 编码,计算机中的数采用二进制数,字母、符号等也只能采用二进制代码(0,1)的排列组合表示(编码)。(两种编码:BCD码、ASCII码)1.BCD 码(8421码、二十进制数)解决十进制数在计算机内部如何表示。BCD码规定用四位二进制数表示一位十进制数。对多位十进制数,只要把每一位十进制数分别表示为四位二进制数即可。,十进制 BCD码 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 10

12、00 9 1001,十进制 BCD码 28 0010 1000 956 1001 0101 0110,24,2.ASCII码,2.ASCII码解决字母、符号在计算机内部如何表示。基本ASCII码(标准ASCII码)用七位二进制数表示一个符号(共128个);书写:用两位十六进制数书写,如41H-A;种类:1)控制字符(前32个和最后一个):0D-回车,0A-换行;2)其他为打印字符(可显示字符);应记住的ASCII码:30H39H,41H,61H 扩展ASCII码用八位二进制数表示一个符号(共256个)。,返回1.2,25,1.2.3 有符号数表示方法,0.无符号数、有符号数、机器数、真值 1.

13、原码 正数原码:符号位为0,数值位照抄。负数原码:符号位为1,数值位照抄。例:X=+25=+00011001B X原=00011001B X=-25=-00011001B X原=10011001B2.反码 正数反码:符号位为0,数值位照抄。负数反码:符号位为1,数值位取反。例:X=+25=+00011001B X反=00011001B X=-25=-00011001B X反=11100110B 原码和反码表数范围相同,都是-127+127。,26,3.补码,3.补码 为了将减法运算变成加法来做,有符号数在计算机内一律采用补码表示。正数补码:符号位为0,数值位照抄。负数补码:符号位为1,数值位取

14、反加一。例:X=+25=+00011001B X补=00011001B X=-25=-00011001B X反=11100110B X补=11100111B 下面是原码、反码和补码的小结。,原码、反码、补码总结:1)正数的原码反码补码相同;负数的原码反码补码各不相同,但符号位都是1。2)设字长为八位,原码反码的表数范围为-127+127,补码的表数范围为-128+127。3)已知某负数的补码,求该负数的真值,方法如下:符号位不动,其余位求反加一,得到的是该负数的原码;根据原码即可写出该负数的真值。例:X补=11111100B X原=10000011B+1=10000100B X=-000010

15、0=-4,返回1.2,27,1.2.4二进制运算(含十六进制运算),1.算术运算与十进制运算相同,只不过是逢2进1,借1当2。加法 减法 乘法 0+0=0 00=000=0 0+1=1 01=101=0 1+0=1 10=110=0 1+1=10 11=011=12.十六进制算术运算:与十进制运算相同,但逢16进1,借1当16;注意运算结果如为A,B,C,D,E,F,不能写成10,11,12,13,14,15。,28,3.逻辑运算,3.逻辑运算与运算(AND;):10=011=100=001=0或运算(OR;):10=111=100=001=1非运算(NOT;或):0=1(0=1)1=0(1=

16、0)异或运算(XOR;)10=111=000=001=1注意:逻辑运算是按位运算。,29,4.用补码作减法(补充讲义),我们用实例说明计算机在执行减法指令时,是如何把减法变成加法来做的(设字长为8位)。例1:(+5)(+4)即(+00000101)(+00000100)机器中+5和+4都用补码表示。对减数求补(求反加一),得到(-4)的补码:11111100(+5)的补码加(-4)的补码:0 0 0 0 0 1 0 1+1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1将结果00000001看作补码,其真值即为+1。,进位被自动舍弃,30,用补码作减法(2),例2(+5)(-4

17、)即(+0000101)(-0000100)机器中+5和-4都用补码表示。(-4)补=11111100 对减数求补,得到的是+4的补码:00000100将+5的补码加+4的补码 0 0 0 0 0 1 0 1+0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 将结果看成补码,其真值即为正确结果+9。例3:(-5)-(+4)和(-5)-(-4)步骤同上。总之:被减数和减数都用补码表示;机器对减数先求补,而后做加;将计算结果看作补码。,返回第一章,31,1.3 Intel 80 x86系列微处理器,1.8086/8088/801868086:1978年推出;内外数据总线16位;地址总

18、线 20位;寻址范围1MB;主频5MHz.8088:1979年推出;外部数据总线8位;其余基本同8086,被称为准16位CPU。80186:增强了8086的功能,但作为计算机的CPU没有被使用过,只作过某些板卡的控制器。,32,80286,2.80286(16位CPU)1982年推出;内外数据总线16位;地址总线 24位;寻址范围16MB;主频5MHz20MHz。80286支持两种工作方式:实模式 和 保护模式。实模式:相当于一个快速8086。保护模式:提供虚拟存储管理和多任务的硬件控制。物理寻址范围16MB,虚拟存储器寻址范围可达1GB。指令系统除包含8086/80186指令外,新增15条保

19、护方式指令,33,80386,3.80386(32位CPU)1985年推出;内外部数据总线32位;地址总线32位,物理寻址范围4GB,虚拟存储器寻址范围可达64TB。主频为16/25/33MHz。386除支持286的两种工作方式外,新增虚拟8086模式。虚拟8086模式的特点:1)既具有保护功能,又能执行实模式下的8086代码,且可以实现多任务。(可同时运行多个DOS程序)2)可以在虚拟8086模式和保护模式下快速、反复转换。指令系统除兼容原16位CPU指令外,全面升级为32位指令,并新增多条指令。,34,80486pentium,4.80486(32位CPU)1989年推出;特点:将高速缓存

20、、协处理器与CPU集成在一个芯片上;部分采用了RISC技术;采用了指令流水线技术;大幅度提高了CPU的主频,可达100MHz。5.Pentium/MMX Pentium(32位或准64位CPU)Pentium:1993年推出;内部数据总线32位,外部数据总线64位;主频60MHz200MHz;采用超标量技术。MMX Pentium:1996年推出;主频最高233MHz;新增57条多媒体指令,提高了多媒体软件执行速度。下面简单介绍RISC技术和流水线技术。,RISC技术:精简指令系统计算机技术。其特点是:CPU的指令系统不含复杂指令,指令长度固定,指令格式种类少,寻址方式少,指令数量少(只选择使

21、用频度很高的指令),因此,使计算机结构变得更加简单、有效,结合流水线等其他技术,使一个时钟周期完成一条指令,从而大大提高了计算机的速度。如年研制成的RSCI 型CPU,只有31条指令,其性能却比当时最先进的商品化微处理器MC68000和Z8000快倍。,流水线技术:计算机中的流水线技术和工厂中的流水装配线类似。将执行一条指令需完成的操作分成若干子操作;每个子操作由专门部件完成;各子操作并行工作。由于子操作并行工作,提高了计算机的执行速度。(但要注意,完成一条指令所需要的时间并没有变。)(“每周期完成一条指令”和“完成一条指令需要一个周期”不同。)(超标量),35,Pentium propii/

22、piiip4,.Pentium ProP P Pentium Pro:1995年推出;Pentium的增强型芯片,主要用于服务器.P II:1997年推出;在Pentium Pro 的基础上增加了MMX指令。P III:1999年推出;在P II的基础上增加了70条SSE指令。P 4:2000年推出;新增76条SSE2指令。另外,从P II 时代开始,Intel为了占领低端市场,推出了Celeron(赛扬)微处理器,目前,最新型的Celeron(赛扬)微处理器是所谓C4,与P4引脚兼容。,返回第一章,36,1.4 PC微型计算机系统,1.PC 机的硬件基本配置:主机、键盘和鼠标、显示器、软盘驱

23、动器、硬盘驱动器和光盘驱动器等。2.主存空间的分配常规内存:容量1MB;00000H0FFFFFH。保留内存:显示缓冲 区和扩展ROM;基本内存:DOS占 用、用户区。,37,PC机的软件,扩展内存(XMS):对80286以上的CPU来说1MB以上的存储空间称为扩展内存,可供用户程序使用。3.PC机的软件(学习汇编语言使用的软件)编辑程序,如DOS的EDIT。汇编程序,如MASM 6.X。连接程序LINK。调试程序DEBUG。,返回第一章,38,1.5 8086微处理器,1.5.1 8086的功能结构1.5.2 8086的寄存器组1.5.3 存储器组织与段寄存器 1.存储器组织(位、字节、地址

24、、字单元)2.分段管理(分段、逻辑地址、物理地址)3.段寄存器(段寄存器、段超越.),返回第一章,39,1.5.1 8086的功能结构,指令译码,总线接口单元,执行单元,ABUSDBUSCBUS,内部数据总线,内部数据总线,返回1.5,40,1.5.2 8086寄存器组,寄存器是CPU内部临时存放数据的部件。8个通用寄存器,4个段寄存器,1个指令指针寄存器,1个标志寄存器。以上寄存器均为16位寄存器。1.8086通用寄存器(1)AX累加器。(2)BX基地址寄存器。(3)CX计数寄存器。(4)DX数据寄存器。(5)SI源变址寄存器。(6)DI目的变址寄存器。(7)BP栈基地址寄存器。(8)SP栈

25、顶指针。(9)IP指令指针寄存器(专用寄存器)。,通用寄存器中的 4 个数据寄存器可以分成8个8位寄存器使用:AXAH,AL BX BH,BLCXCH,CL DX DH,DL,41,标志寄存器,2.标志寄存器 标志寄存器又称作程序状态字(Program Status Word,简记作PSW),共16位,一般把每一位分别使用,8086/8088使用其中的9位,用于存放当前程序执行的状况和运算结果的特征,各标志位的分布如图2.3所示。D15 d14 d13 d12 d11 d10 d9 d8,42,标志寄存器,9个标志位可分为两组:状态标志(条件标志),记载算术运算或者逻辑运算结果的特征;另一组是

26、控制标志位,记载CPU当前工作状态(控制CPU执行指令的方式),包括TF、IF、DF等3个标志位。1状态标志(条件标志)(1)CF进位标志。(2)ZF零标志。(3)SF符号标志。(4)OF溢出标志。(设置,与CF的区别)(5)PF奇偶标志。(低8位,偶数时为1)(6)AF辅助进位标志。,43,控制标志位,2控制标志位(1)TF单步中断允许标志。(2)I F外部可屏蔽中断允许 标志。(3)DF方向标志。,返回1.5目录,44,1.5.3 存储器组织与段寄存器,1.数据的存储格式,地址,位(bit)、字节(Byte)、字:字长:一个字包含的位数;8086,286,386.的字长;存储器的基本单位,

27、地址、内容;字、双字的存放:遵循低字节占低地址,高字节占高地址。字单元、双字单元的地址。地址对齐,字单元0002h=1234h,双字单元0002H=78561234H,字节单元0002h=34h,内容,45,存储器的分段管理1,2.存储器的分段管理为何分段:8086的地址总线宽度为20位,寻址范围220=1MB,但一个地址寄存器只有16位,无法直接形成20位地址,故把1M空间分成许多“段”,用一个寄存器表示某段在1M空间内的起始地址(段地址),用另一个寄存器表示表示段内某单元相对本段起始地址的偏移地址。(用两个16位寄存器形成20位地址)地址的表示方法:段(基)地址:偏移地址为能用16位寄存器

28、表示段的起始地址(xxxxxH),并不是任意一个单元的地址都能作段的起始地址,只有那些形式为xxxx0H的地址才能作段的起始地址,该起始地址存入16位寄存器时,将0省略即可。偏移地址为16位,可直接放入16位寄存器。,46,分段管理2,逻辑地址和物理地址逻辑地址:存储单元地址的表达形式。即 段地址:偏移地址物理地址:存储单元在1M空间内的实际地址。已知逻辑地址,求物理地址如 205AH:3B06H 2 0 5 A 0 H+3 B 0 6 H 2 4 0 A 6 H,段地址乘以16(也就是将保存段地址时省略的0补回。)位对齐,加偏移地址,物理地址,47,分段管理3,地址的唯一性一个存储单元的物理

29、地址是唯一的,但逻辑地址并不是唯一的,例如4106H:400AH,42AEH:258AH,3507H:0FFFAH都表示同一个存储单元,其物理地址为4506AH。涉及分段的其他问题 a)1M内存空间总共可以分多少个段?xxxx0h b)每个段最大可以包括多少个存储单元?c)xxxxH:0000H是段内哪一个单元?其物理地址是多少?,48,3.段寄存器,8086专门存放段地址的寄存器称为段寄存器,共有4个:CS代码段段寄存器;DS数据段段寄存器;ES附加段段寄存器;SS堆栈段段寄存器。段寄存器的作用:程序的不同部分放入相应段;段超越:取指令时,段地址只能是CS;堆栈操作时,段地址只能是SS;读取

30、数据时,默认的段寄存器为DS,但也可以指定使用其他段寄存器。,49,段寄存器使用规定,段寄存器使用规定,50,使用段寄存器涉及的其他问题,使用段寄存器涉及的其他问题按前述,可以使用的段寄存器只有4个,且每个段最大空间为64KB,好象限制很死,但实际使用时却很灵活:程序可以只有一个代码段(COM程序)。段与段之间可以相互独立,也可以相互重叠,取决于各段的大小。如果必要,一个段的实际容量可以大于64K,只要在程序运行时,动态修改相应段寄存器的值(程序有多个代码段或多个数据段)。,返回1.5,51,1.6 8086的寻址方式,1.6.1 8086机器代码格式1.6.2 立即数寻址方式1.6.3 寄存

31、器寻址方式1.6.4 存储器寻址方式寄存器间接寻址寄存器相对寻址基址变址寻址直接寻址基址变址相对寻址,返回第一章,52,1.6.1 8086机器代码格式,指令的组成(机器指令角度):操作码 操作数(二进制代码的排列组合)(操作数:无,1,2)汇编指令格式:操作码助记符 目的操作数,源操作数;注释操作码助记符:每条指令必有。操作数:指令操作的对象或操作对象的地址。MOV AX,2050H MOV AX,2050H(详细的机器指令格式省略),返回1.6,53,1.6.2 立即数寻址方式,寻址方式:寻找操作数地址的方式,即寻找操作数,而后完成指令。这种寻址方式直接把参与操作的数据写在指令中,是指令的

32、一部分,该数据称为立即数。计算机寻找操作数时,只要读取指令的操作数字节;操作数可以是各种数制下的数值(相当于8位或16位二进制数),也可以是带单引号的字符。例如:MOVAX,2050H MOVAL,05H MOVAL,A,54,指令举例,观察指令:MOV 05H,ALMOV BL,324DMOV CH,2050HMOV DL,25注意:1.立即数永远不能作目的操作数。2.源操作数和目的操作数要互相匹配。,返回1.6目录,55,1.6.3 寄存器寻址,执行速度最快的寻址方式。MOVAX,BXMOVS P,AXMOVD I,2050HMOVD L,CH错误指令:MOVA L,BXMOVS P,CH

33、,返回1.6目录,56,1.6.4 存储器寻址方式,程序运行时用到的数据决大部分存放在内存中,如何寻找内存中的数据就是存储器寻址方式。共5种。1.直接寻址这种寻址方式是在指令中直接规定操作数所在单元的偏移地址。(在汇编语言中,这个偏移地址通常以变量的形式出现,在指令中就直接写变量的名字。)MOV AX,2050H;AXDS162050HMOV DX,ES:2050H;使用段超越;DXES162050H,段超越指令格式,区别MOV AX,2050H,57,直接寻址方式示意图(MOV AX,2050H),执 行 结 果AX=55AAH,58,2.寄存器间接寻址,偏移地址(或有效地址)通过寄存器间接

34、给出,可用的寄存器为BX、BP、SI、DI。MOV AX,BX;AXDS16BXMOV AL,BX;ALDS16BXMOV AX,SI;SIDS16SIMOV AX,DI;AXDS16DIMOV AX,BP;AXSS16BPMOV AX,ES:BX;AXES16BXMOV AX,DS:BP;AXDS16BP,字 操 作,字节操作,段寄存器使用SS,段超越,59,3.寄存器相对寻址,指令规定一个寄存器和一个有符号的8位或16位偏移量,有效地址等于寄存器内容加偏移量。可用的寄存器仍然是BX、BP、SI、DI。计算物理地址时,当指令规定的寄存器是BP时,默认的段寄存器用SS,其他三个寄存器用DS;可

35、以段超越。MOV AX,DI+06H;AXDS16DI06MOV AX,06HDI;同上MOV CL,BP+0205H;CLSS16BP205HMOV DX,205HBP;同上,但是是字操作。,60,4.基址变址寻址,用一个基址寄存器与一个变址寄存器的值相加,计算结果作为操作数的偏移地址。基址寄存器与变址寄存器的搭配如下:BX SI BP DIMOV AX,BX+SI;AXDS*16+BX+SIMOV AX,BP+DI;AXSS*16+BP+DIMOV AX,BPDI;另一种写法。注意:允许段超越。BX+BP或SI+DI是非法搭配。,61,5.基址变址相对寻址,在基址变址寻址方式基础上,增加一

36、个8位或16位偏移量,三者之和为偏移地址。MOV AX,BX+SI+06;AXDS16+BX+SI+06MOV AX,2050HBP+SI;AXSS*16+备注:在直接寻址中,地址可以用符号代替,如“MOV AX,WORD_ADDR”,相当于“MOV AX,xxxxH”,“WORD_ADDR”称为变量或符号地址,第三章介绍。偏移量可以是变量或符号数,也在第三章介绍。如果一条指令有两个操作数,源操作数和目的操作数的寻址方式可能相同,也可能不同,如指令“MOV AX,BX”,源操作数为寄存器间接寻址,目的操作数为寄存器寻址。,62,讲解指令系统时使用的符号,r8:8位通用寄存器 AH/AL/BH/

37、BL/CH/CL/DH/DLr16:16位通用寄存器AX/BX/CX/DX/SI/DI/BP/SPreg:代表 r8 或 r16seg:段寄存器 CS/DS/ES/SSm8:存储器中的一个8位操作数(含5种寻址方式)m16:存储器中的一个16位操作数(含5种寻址方式)mem:代表 m8 或 m16imm:8位或16位立即数dest:目的操作数 src:源操作数 disp:代表8位或16位偏移量,63,mem操作数的各种形式,2050H;VAR_ADDR BX;BP;si;di BX+disp;BP+disp;si+disp;di+disp dispBX;dispBP;dispSI;dispDI

38、 BX+SI;BX+DI;BP+SI;BP+DI BXSI;BXDI;BX+SI+disp;BX+DI+disp;BP+SI+disp;BP+DI+disp;,其他写法dispbx+sidispbxsi,64,要点及习题分析:本章要点,1.数制:二进制数、十六进制数及其相互转换。2.有符号数的表示方法:原码、反码、补码。3.8086寄存器组:通用寄存器、专用寄存器、状态标志的设置及含义。4.存储器管理:分段、逻辑地址和物理地址、段寄存器、段超越。5.8086寻址方式:7种方式特别是对存储器操作数的5种寻址方式,也就是寻址mem数的各种表达形式。,返回第一章,65,习题分析,1.5 将下列十六进

39、制数转换为二进制数和十进制数。0FFH 0EFH 10H 0ABH1.6 将下列十进制数转换为BCD码。24 68 255 24581.7 将下列BCD码转换为十进制数。100100010011011000001000100000011.8 将下列十进制数分别用8位二进制数的原码、反码和补码表示。-127-57-128 68,66,1.10 写出09,AZ,az以及回车和换行的ASCII码。1.11 计算机中有一个“01100001”编码,如果把它认为是无符号数,它是十进制何数?认为它是BCD码,是十进制何数?认为它是ASCII码,表示什么字符?1.15 罗列8086的8个8位寄存器和16位寄

40、存器,并说明各自的作用。1.16 状态标志和控制标志有何区别?1.17 举例说明CF和OF的区别。1.18 什么是“小端方式”?对字和双字存储单元,什么是它们的对齐地址?为什么要对齐地址?1.19 将下列逻辑地址转换成物理地址。0FFFF:0 0B821:4567 补充题:设物理地址为96FF8H,偏移地址任意,则段地址可取:8600H 8800H 900H 96FFH9700H,67,1.20 8086有哪4种逻辑段?各段用途?1.21 数据的默认段是哪个段?是否允许其他段存放数据?如果允许,有何要求?1.22 什么是操作码、操作数?有哪三种给出操作数的方法?什么是寻址方式?1.23 何谓有效地址EA?操作数如在主存中,有哪些寻址方式可以存取它?1.24 指出下列指令中源操作数的寻址方式,设BX=2000H,DI=40H,给出DX的值或有效地址EA的值。mov dx,1234h mov dx,1234h mov dx,bx mov dx,bx mov dx,bx+1234h mov dx,bx+di mov dx,bx+di+1234h,返回第一章,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号