汇编语言第一章.ppt
汇编语言第一章汇编语言第一章现在学习的是第1页,共75页教学内容n第第 1章章 汇编语言入门汇编语言入门n第第 2章章 寻址方式和指令寻址方式和指令 n第第 3章章 汇编语言的要素汇编语言的要素 n第第 4章章 程序逻辑与控制程序逻辑与控制 n第第 5章章 子程序和宏子程序和宏 n第第 6章章 输入输出与中断输入输出与中断 n第第 7章章 键盘、鼠标和视频的操纵键盘、鼠标和视频的操纵 n第第 8章章 磁盘文件存取磁盘文件存取 n第第 9章章 汇编语言扩展汇编语言扩展 n第第10章章 Win32汇编汇编 2现在学习的是第2页,共75页教学特点n强调对基本指令的理解和掌握强调对基本指令的理解和掌握n重点介绍汇编系统和伪指令的基本内容重点介绍汇编系统和伪指令的基本内容n强调上机实践,要求熟练进行编程和调试强调上机实践,要求熟练进行编程和调试n运用多媒体教学手段运用多媒体教学手段考核要求n考试成绩(课堂教学内容):考试成绩(课堂教学内容):7070n上机成绩(考勤及编程情况)上机成绩(考勤及编程情况)1515n平时成绩(考勤及作业情况)平时成绩(考勤及作业情况)15153现在学习的是第3页,共75页教师建议教师建议目标:了解汇编语言的特性及其编程技术,建立起“机器”和“程序”、“空间”和 “时间”的概念。建议:充分注意“汇编”课实践性强的特点,多读程序,多写程序,多上机调试程序,熟悉PC机的编程结构,掌握汇编语言及其程序设计的基本概 念、方法和技巧。4现在学习的是第4页,共75页相关课程相关课程n先修课先修课u计算机导论计算机导论u高级语言程序设计高级语言程序设计n后续课后续课u计算机组成原理计算机组成原理u微机原理及接口技术微机原理及接口技术5现在学习的是第5页,共75页第1章 汇编语言入门n1.1 1.1 认识汇编语言认识汇编语言n1.2 1.2 数据在计算机中的表示数据在计算机中的表示n1.3 80X861.3 80X86微处理器微处理器n1.4 1.4 存储器与堆栈存储器与堆栈6现在学习的是第6页,共75页本章教学要求1.熟悉汇编语言的基本概念和应用特点;2.掌握80X86的寄存器组织;3.掌握存储器组织和堆栈。7现在学习的是第7页,共75页1.1 认识汇编语言 机器语言机器语言FORTRANFORTRANBASICBASICCOBOLCOBOLPASCALPASCALC/C+C/C+JAVAJAVA.汇编语言汇编语言高级语言高级语言8现在学习的是第8页,共75页汇编语言的特点汇编语言的特点 面向机器的低级语言,通常是为特定的计算面向机器的低级语言,通常是为特定的计算 机或计算机系列机或计算机系列专门设计的。专门设计的。保持了机器语言的优点,具有直接和简捷保持了机器语言的优点,具有直接和简捷 的特点。的特点。可有效地访问、控制计算机的各种硬件设备可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、如磁盘、存储器、CPUCPU、I/OI/O端口等。端口等。目标代码简短,占用内存少,执行速度快,目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。是高效的程序设计语言。经常与高级语言配合使用,应用十分广泛经常与高级语言配合使用,应用十分广泛。9现在学习的是第9页,共75页#include stdafx.h#include stdio.h int main(int argc,char*argv)int a,b,c;a=1;b=2;c=a+b;printf(“c=%dn,c);return 0;编程实现编程实现编程实现编程实现 c=a+b c=a+b c=a+b c=a+b,并在屏幕上显示出结果。,并在屏幕上显示出结果。,并在屏幕上显示出结果。,并在屏幕上显示出结果。例例例例1 1编译后的目标文编译后的目标文件达到件达到3.59KB10现在学习的是第10页,共75页data segmentdata segmenta db?a db?b db?b db?c db?c db?string db c=$string db c=$data endsdata endscode segmentcode segmentmain proc farmain proc far assume cs:code,assume cs:code,ds:data,es:datads:data,es:datastart:start:push dspush ds sub ax,ax sub ax,ax push ax push ax mov ax,data mov ax,data mov ds,ax mov ds,ax mov es,ax mov es,ax mov a,1mov a,1 mov b,2 mov b,2 mov al,a mov al,a add al,b add al,b mov c,al mov c,al lea dx,stringlea dx,string mov ah,09 mov ah,09 int 21h int 21h add c,30hadd c,30h mov dl,c mov dl,c mov ah,2 mov ah,2 int 21h int 21h mov dl,0ah mov dl,0ah int 21h int 21h mov dl,0dh mov dl,0dh int 21h int 21h ret retmain endpmain endpcode endscode ends end startend start例例 2.C=a+b2.C=a+b汇编后的目标汇编后的目标文件只有文件只有208208字节字节11现在学习的是第11页,共75页汇编语言的应用汇编语言的应用系统程序、效率代码、系统程序、效率代码、I/OI/O驱动程序驱动程序 70%70%以上的系统软件是用汇编语言编写的。以上的系统软件是用汇编语言编写的。某些快速处理、位处理、访问硬件设备等某些快速处理、位处理、访问硬件设备等 高效程序是用汇编语言编写的。高效程序是用汇编语言编写的。高级绘图程序、视频游戏程序一般是用汇高级绘图程序、视频游戏程序一般是用汇 编语言编写的编语言编写的。12现在学习的是第12页,共75页1.2 数据在计算机中的表示 计算机中正负计算机中正负数的表示数的表示 7 6 5 4 3 2 1 0符号位符号位 数值位数值位假设机器字长字长为16位:符号位符号位=0 正数正数 数值位数值位 =1 负数负数15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0假设机器字长字长为8位:H.O.ByteH.O.ByteL.O.ByteL.O.ByteH.O.NibbleH.O.NibbleL.O.NibbleL.O.Nibble13现在学习的是第13页,共75页数的常用表示法数的常用表示法 原码原码 反码反码 补码补码原码表示法原码表示法:符号:符号+绝对值绝对值例:n=8bit +3原码 =0 000,0011 =03H -3原码 =1 000,0011 =83H +0原码 =0 000,0000 =00H -0原码 =1 000,0000 =80H 0 的表示不惟一反码表示法反码表示法:正数的反码同原码,负数的反码数值位与原码相反正数的反码同原码,负数的反码数值位与原码相反例:n=8bit +5反码 =0 000,0101 =05H -5反码 =1 111,1010 =FAH +0反码 =0 000,0000 =00H -0反码 =1 111,1111 =FFH 0 的表示不惟一14现在学习的是第14页,共75页例:机器字长8位,-46补码 =?46补码 =0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 =D2H 机器字长16位,-46补码 =FFD2H +0补码 =0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 =-0补码 0 的表示的表示惟一按位求反按位求反末位加一末位加一按位求反按位求反末位加一末位加一补码补码(Twos Complement)表示法:表示法:正数的补码:正数的补码:同原码负数的补码负数的补码:(1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一15现在学习的是第15页,共75页 十进制十进制 二进制二进制 十六进制十六进制 十进制十进制 十六进制十六进制 n=8 n=16+127 0111 1111 7F +32767 7FFF+126 0111 1110 7E +32766 7FFE.+2 0000 0010 02 +2 0002+1 0000 0001 01 +1 0001 0 0000 0000 00 0 0000 -1 1111 1111 FF -1 FFFF -2 1111 1110 FE -2 FFFE .-126 1000 0010 82 -32766 8002-127 1000 0001 81 -32767 8001-128 1000 0000 80 -32768 8000n位二进制补码的表数范围:位二进制补码的表数范围:-2n-1 N 2n-1-1无符号整数的表数范围:无符号整数的表数范围:0 N 2n-1 16现在学习的是第16页,共75页补码的加法和减法:补码的加法和减法:求补运算求补运算 :对一个二进制数按位求反、末位加一对一个二进制数按位求反、末位加一 X补码补码 -X补码补码 X补码补码加法规则加法规则:X+Y补码补码 =X补码补码 +Y补码补码减法规则减法规则:X-Y补码补码 =X补码补码 +-Y补码补码 补码减法可转换为补码加法补码减法可转换为补码加法 64(-46)180100 00001101 00100001 0010例:17现在学习的是第17页,共75页进位和溢出进位和溢出进位进位:由于运算结果超出了位数由于运算结果超出了位数,最高有效位向最高有效位向 前的进位,这一位自然丢失,一般不表前的进位,这一位自然丢失,一般不表 示结果的对错。示结果的对错。溢出:表示结果超出了字长允许表示的范围,溢出:表示结果超出了字长允许表示的范围,一般会造成结果出错。一般会造成结果出错。例:例:(64)11000000 127 01111111 64 01000000 +1 00000001 0 1 00000000 128 10000000 进位进位 溢出溢出18现在学习的是第18页,共75页BCD码表示 n二进制编码的十进制数(Binary-Coded Decimal),简称BCD码码。十进制数字BCD编码01234567890000000100100011010001010110011110001001正数负数无符号数11001101111119现在学习的是第19页,共75页字符的表示ASCII码码:用一个字节字节来表示一个字符,低7位 为字符的ASCII值,最高位一般用作 校验位。例:例:A 41H a 61H 1 31H 换行换行 0AH 回车回车 0DH 空格空格 20H20现在学习的是第20页,共75页统一字符编码标准统一字符编码标准 统一字符编码空间字符类型字符集说明字符数目16进制数值字母表拉丁字母、希腊字母等81920000-1FFF符号特殊符号、数学符号等40962000-2FFFCJK中文、日文、韩文语音符号和标点符号等40963000-3FFFHan统一的中文、日文和韩文409604000-DFFFHan的扩展4096E000-EFFF用户定义4095F000-FFFE21现在学习的是第21页,共75页1.3 80X86微处理器 n中央处理器在微型机中称为微处理器,是微型机的硬件核心n主要包含指令执行的运算和控制部件,还有多种寄存器n对程序员来说,微处理器抽象为以名称存取的寄存器22现在学习的是第22页,共75页16/32位位PC机机n本课程采用16位或32位个人计算机;n16位PC机是指采用16位80 x86 CPU的IBM PC/XT/AT这三款个人微机或它们的兼容机;n32位PC机是指采用32位80 x86 CPU而形成的微机,其基本结构仍然源于PC/AT机;n人们日常谈论的PC机或微机是上述微型计算机系统的统称。23现在学习的是第23页,共75页微机的硬件微机的硬件n中央处理单元 CPU(Intel 80 x86)对汇编语言程序员,最关心其中的寄存器n存储器(主存储器)呈现给汇编语言程序员的,是存储器地址n外部设备(接口电路)汇编语言程序员看到的是端口(I/O地址)24现在学习的是第24页,共75页微处理器飞速发展微处理器飞速发展80386803868048680486奔腾奔腾奔腾奔腾2代代奔腾奔腾4代代802868028680868086奔腾奔腾3代代IA-64(安腾)(安腾)40044004不是我不明白,这世界变化太快。扎扎实实掌握知识,以不变应万变!25现在学习的是第25页,共75页8086/80888086/8088寄存器组寄存器组数据寄存器数据寄存器:指针及变址寄存器指针及变址寄存器:SP、BP、SI、DI段寄存器段寄存器:CS、DS、SS、ES控制寄存器控制寄存器:IP、FLAGS AX BX CX DX AH AL BH BL CH CL DH DL 高8位 低8位26现在学习的是第26页,共75页80 x8680 x86的寄存器结构的寄存器结构80 x86的程序可见寄存器组的程序可见寄存器组通用寄存器通用寄存器专用寄存器专用寄存器段寄存器段寄存器 AH AX AL AH AX AL BH BX BL BH BX BL CH CX CL CH CX CL DH DX DL DH DX DL SP SP BP BP SI SI DI DI IP IP FLAGS FLAGS CS CS DS DS SS SS ES ES8086/8086/8088/8088/8028680286 寄寄 存存 器器EAXEAXEBXEBXECXECXEDXEDXESPESPEBPEBPESIESIEDIEDIEIPEIP EFLAGS EFLAGS FSFSGSGS 31 16 15 8 7 027现在学习的是第27页,共75页1.80861.8086的通用寄存器的通用寄存器n8086的16位通用寄存器是:AXBXCXDXSIDIBPSPn其中前4个数据寄存器都还可以分成高8位和低8位两个独立的寄存器n8086的8位通用寄存器是:AHBHCHDHALBLCLDLn对其中某8位的操作,并不影响另外对应8位的数据28现在学习的是第28页,共75页数据寄存器数据寄存器n数据寄存器用来存放计算的结果和操作数,也可以存放地址n每个寄存器又有它们各自的专用目的uAX累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;uBX基址寄存器,常用做存放存储器地址;uCX计数器,作为循环和串操作等指令中的隐含计数器;uDX数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。29现在学习的是第29页,共75页变址寄存器变址寄存器n变址寄存器常用于存储器寻址时提供地址uSI是源变址寄存器uDI是目的变址寄存器n串操作类指令中,SI和DI具有特别的功能30现在学习的是第30页,共75页指针寄存器指针寄存器n指针寄存器用于寻址内存堆栈内的数据nSP为堆栈指针寄存器,指示栈顶的偏移地址nSP不能再用于其他目的,具有专用目的nBP为基址指针寄存器,表示数据在堆栈段中的基地址nSP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址31现在学习的是第31页,共75页指令指针指令指针IPIPn指令指针寄存器IP,指示代码段中指令的偏移地址n它与代码段寄存器CS联用,确定下一条指令的物理地址n计算机通过CS:IP寄存器来控制指令序列的执行流程nIP寄存器是一个专用寄存器33现在学习的是第33页,共75页2.标志寄存器标志寄存器n标志(Flag)用于反映指令执行结果或控制指令执行形式n8086处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器)OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0 程序设计需要利用标志的状态34现在学习的是第34页,共75页标志的分类标志的分类n状态标志用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它CF ZF SF PF OF AFn控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式DF IF TF35现在学习的是第35页,共75页进位标志进位标志CFCF(Carry Flag)n当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0。3AH+7CHB6H,没有进位:CF=0AAH+7CH(1)26H,有进位:CF=136现在学习的是第36页,共75页零标志零标志ZFZF(Zero Flag)n若运算结果为0,则ZF=1;否则ZF=03AH+7CHB6H,结果不是零:,结果不是零:ZF=084H+7CH(1)00H,结果是零:,结果是零:ZF=1 注意:ZF为1表示的结果是037现在学习的是第37页,共75页符号标志符号标志SFSF(Sign Flag)n运算结果最高位为1,则SF=1;否则SF=03AH+7CHB6H,最高位,最高位D71:SF=184H+7CH(1)00H,最高位,最高位D70:SF=0 有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态38现在学习的是第38页,共75页奇偶标志奇偶标志PFPF(Parity Flag)n当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=03AH+7CHB6H10110110B结果中有结果中有5个个1,是奇数:,是奇数:PF=0 PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作39现在学习的是第39页,共75页溢出标志溢出标志OFOF(Overflow Flag)n若算术运算的结果有溢出,则OF1;否则 OF03AH+7CHB6H,产生溢出:,产生溢出:OF=1AAH+7CH(1)26H,没有溢出:,没有溢出:OF=040现在学习的是第40页,共75页溢出标志溢出标志OF(Overflow Flag)问题什么是溢出?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?如何判断是否溢出?41现在学习的是第41页,共75页辅助进位标志辅助进位标志AFAF(Auxiliary Carry Flag)3AH+7CHB6H,D3有进位:AF=1n运运算算时时D3位位(低低半半字字节节)有有进进位位或或借借位时,位时,AF=1;否则;否则AF=0。这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心47现在学习的是第47页,共75页方向标志方向标志DFDF(Direction Flag)n用于串操作指令中,控制地址的变化方向:u设置DF0,存储器地址自动增加;u设置DF1,存储器地址自动减少。nCLDCLD指令复位方向标志:指令复位方向标志:DFDF0 0nSTDSTD指令置位方向标志:指令置位方向标志:DFDF1 148现在学习的是第48页,共75页中断允许标志中断允许标志IFIF(Interrupt-enable Flag)n用于控制外部可屏蔽中断是否可以被处理器响应:u设置IF1,则允许中断;u设置IF0,则禁止中断。nCLICLI指令复位中断标志:指令复位中断标志:IFIF0 0nSTISTI指令置位中断标志:指令置位中断标志:IFIF1 149现在学习的是第49页,共75页陷阱标志陷阱标志TF(Trap Flag)n用于控制处理器进入单步操作方式:设置TF0,处理器正常工作;设置TF1,处理器单步执行指令。n单单步步执执行行指指令令处处理理器器在在每每条条指指令令执执行行结结束束时时,便产生一个编号为便产生一个编号为1 1的内部中断的内部中断n这种内部中断称为这种内部中断称为单步中断单步中断n所以所以TFTF也称为也称为单步标志单步标志n利用单步中断可对程序进行逐条指令的调试利用单步中断可对程序进行逐条指令的调试n这种逐条指令调试程序的方法就是这种逐条指令调试程序的方法就是单步调试单步调试50现在学习的是第50页,共75页OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF 8086/8088OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNT 80286 RFRF OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNTVMVM 80386 RFRF OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNTVMVMACAC 80486 RFRF OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNTVMVMACACIDID VIPVIP VIFVIF31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 031 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0Pentium80 x86的标志寄存器的标志寄存器 (P.23)IOPL:I/O特权级特权级 VIP:虚拟中断未决标志:虚拟中断未决标志 NT:嵌套任务标志嵌套任务标志 VIF:虚拟中断标志:虚拟中断标志 RF:重新启动标志重新启动标志 VM:虚拟:虚拟8086模式位模式位 AC:对准检查方式位对准检查方式位 ID:标识标志标识标志 51现在学习的是第51页,共75页1.4 1.4 存储器存储器n寄存器是微处理器内部暂存数据的存储单元,以名称表示n存储器则是微处理器外部存放程序及其数据的空间n程序及其数据可以长久存放在外存,在程序需要时才进入主存n主存需要利用地址区别52现在学习的是第52页,共75页数据信息的表达单位数据信息的表达单位n计算机中信息的单位u二进制位Bit:存储一位二进制数:0或1u字节Byte:8个二进制位,D7D0u字Word:16位,2个字节,D15D0u双字DWord:32位,4个字节,D31D0n最低有效位LSB:数据的最低位,D0位n最高有效位MSB:数据的最高位,对应字节、字、双字分别指D7、D15、D31位图示图示图示图示53现在学习的是第53页,共75页1.数据的存储格式数据的存储格式n D7D0字节D15D0字D31D0双字D7 D000006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址低地址54现在学习的是第54页,共75页存储单元及其存储内容存储单元及其存储内容n每个存储单元都有一个编号;被称为存储器地址n每个存储单元存放一个字节的内容0002H0002H单元存放有一个数据单元存放有一个数据34H34H表达为表达为0002H0002H34H34H图示图示图示图示55现在学习的是第55页,共75页多字节数据存放方式多字节数据存放方式n多字节数据在存储器中占连续的多个存储单元连续的多个存储单元:u存放时,低字节存入低地址,高字节存入高地址低字节存入低地址,高字节存入高地址;u表达时,用它的低地址表示低地址表示多字节数据占据的地址空间。图示中图示中2 2号号“字字”单元的内容为:单元的内容为:0002H=1234H0002H=1234H2 2号号“双字双字”单元的内容为:单元的内容为:0002H=78561234H0002H=78561234H 80 x86处理器采用“低对低、高对高”的存储形式,被称为“小端方式Little Endian”。相 对 应 还 存 在“大 端 方 式 Big Endian”。图示图示图示图示56现在学习的是第56页,共75页数据的地址对齐数据的地址对齐n同一个存储器地址可以是字节单元地址、字单元地址、双字单元地址等等n字单元安排在偶地址(xxx0B)、双字单元安排在模4地址(xx00B)等,被称为“地址对齐(Align)”n对于不对齐地址的数据,处理器访问时,需要额外的访问存储器时间n应该将数据的地址对齐,以取得较高的存取速度视具体情况来确定57现在学习的是第57页,共75页2.存储器的分段管理存储器的分段管理n8086CPU有20条地址线u最大可寻址空间为2201MBu物理地址范围从00000HFFFFFHn8086CPU将1MB空间分成许多逻辑段(Segment)u每个段最大限制为64KBu段地址的低4位为0000Bn这样,一个存储单元除具有一个唯一的物理地物理地址址外,还具有多个逻辑地址逻辑地址58现在学习的是第58页,共75页物理地址和逻辑地址物理地址和逻辑地址n对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000HFFFFFH。n分段后在用户编程时,采用逻辑地址,形式为段基地址:段内偏移地址分隔符59现在学习的是第59页,共75页逻辑地址逻辑地址n段地址段地址说明逻辑段在主存中的起始位置n8086规定段地址必须是模16地址:xxxx0Hn省略低4位0000B,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址n偏移地址说明主存单元距离段起始位置的偏移量n每段不超过64KB,偏移地址也可用16位数据表示60现在学习的是第60页,共75页物理地址和逻辑地址的转换物理地址和逻辑地址的转换n将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址n一个物理地址可以有多个逻辑地址逻辑地址逻辑地址1460:1001460:100、1380:F001380:F00物理地址物理地址14700H 14700H14700H 14700H14600H14600H 100H100H14700H14700H13800H13800H F00HF00H14700H14700H段地址左移段地址左移4 4位位加上偏移地址加上偏移地址得到物理地址得到物理地址61现在学习的是第61页,共75页3.段寄存器段寄存器n8086有4个16位段寄存器uCS(代码段)指明代码段的起始地址uSS(堆栈段)指明堆栈段的起始地址uDS(数据段)指明数据段的起始地址uES(附加段)指明附加段的起始地址n每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途62现在学习的是第62页,共75页如何分配各个逻辑段如何分配各个逻辑段n程序的指令序列指令序列必须安排在代码段n程序使用的堆栈堆栈一定在堆栈段n程序中的数据数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段n数据的存放比较灵活,实际上可以存放在任何一种逻辑段中演示演示演示演示67现在学习的是第67页,共75页段超越前缀指令段超越前缀指令n没有指明时,一般的数据访问在DS段;使用BP访问主存,则在SS段n默认的情况允许改变,需要使用段超越前缀指令;8086指令系统中有4个:CS:;代码段超越,使用代码段的数据SS:;堆栈段超越,使用堆栈段的数据DS:;数据段超越,使用数据段的数据ES:;附加段超越,使用附加段的数据68现在学习的是第68页,共75页段寄存器的使用规定访问存储器的方式默认可超越偏移地址取指令CS无IP堆栈操作SS无SP一般数据访问DSCS ES SS有效地址EABP基址的寻址方式SSCS ES DS有效地址EA串操作的源操作数DSCS ES SSSI串操作的目的操作数ES无DI69现在学习的是第69页,共75页存储器的分段存储器的分段n8086对逻辑段要求:u段地址低4位均为0u每段最大不超过64KBn8086对逻辑段并不要求:u必须是64KBu各段之间完全分开(即可以重叠)各段独立各段独立各段独立各段独立各段重叠各段重叠各段重叠各段重叠最最最最多多多多多少段?多少段?多少段?多少段?最最最最少少少少多少段?多少段?多少段?多少段?70现在学习的是第70页,共75页支持多任务处理功能支持多任务处理功能支持虚拟存储器特性支持虚拟存储器特性 保护模式下的保护模式下的80 x86保护模式下的存储器寻址保护模式下的存储器寻址 所选存储单元所选存储单元 描描 述述 符符64描述符表描述符表所选段所选段存存 储储 器器段基地址段基地址32选择器选择器16偏移地址偏移地址 32逻辑地址逻辑地址74现在学习的是第74页,共75页本章小结本章小结n1.机器语言与汇编语言。讲述了什么是机器语言,什么是汇编语言。n2.数据在计算机的表示。n380X86微处理器的硬件结构以及进行80X86汇编语言程序设计时涉及到的寄存器组织。n4存储器与堆栈的结构与数据存取方法。本章介绍了的这些知识是学习下一章的内容寻址方式和指令系统的基础。熟悉上述内容后,就可以进入下一章75现在学习的是第75页,共75页