您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 汇编语言第2章80x86计算机组织
第二章80x86计算机组织主要内容•2.180x86微处理器•2.2基于微处理器的计算机系统•2.3中央处理机•2.4存储器•2.5外部设备2.180x86微处理器一、80x86是美国Intel公司的微处理器系列1969:4040芯片、4位1973:8080芯片、8位1978:8086芯片、DB16位,AB20位,29000个晶体管1979:8088芯片、16位1982:80286芯片、16位1986:80386芯片、32位…Pentium系列二、一些名词术语(1)•主频:主时钟频率,影响运行计算机速度•数据总线:负责各部分间的数据传送数据总线宽度:芯片内传送数据的宽度外部数据总线宽度:芯片内和芯片外交换数据的宽度•地址总线宽度:用以确定可访问的存储器的最大范围地址总线宽度•10位:210=1024单元,1K•20位:220=1024*210单元=1024K,1M•24位:224=16*1M,16M•30位:230=1024M,1G•32位:232=4G,即4GB二、一些名词术语(2)•存储器–主存、高速缓存、外存储器•指令执行时间–8086:400ns;80286:250ns;80486:25ns;Pentium:25ns/2;PentiumPro:25ns/3;PentiumII:•工作方式(1)实模式(2)保护模式(3)虚拟模式工作方式(1)实模式:段寄存器保护实际的段地址,但只限于1M的寻址(2)保护模式:有更大寻址能力,使用各种表格,段的实际地址放在描述符表中,使用段选择器(3)虚拟模式:提供比主存更大的空间,程序可放在外存上,执行时调入,模拟多个CPU2.2基于微处理器的计算机系统计算机系统计算机系统包括硬件和软件两部分:1.硬件:2.软件:2.2.1硬件•计算机总体结构图:IBMPC微型计算机结构(续)功能部件•存储器:计算机的记忆部件•中央处理机:包括运算器和控制器•运算器:执行算术和逻辑运算指令•控制器:负责全机的控制工作,如取指令、译码、分析、取数、执行、存数•I/O系统:I/O设备、大容量存储器•系统总线:数据线、地址线和控制线三组2.2.2软件•计算机软件:系统软件、用户软件系统软件:用户软件:•操作系统:主要部分是常驻监督程序•I/O驱动程序:对I/O设备进行控制或管理计算机软件层次图其它软件(1)•文件管理系统:•文本编辑程序:如editor(edit命令),记事本、写字板•翻译程序:分编译程序、解释程序•汇编程序:Asm、Masm、TasmASM:小汇编程序,它占有较小的存储区,功能较弱MASM:宏汇编程序,功能较强,具有宏汇编能力Masmforwindows集成实验环境其它软件(2)•连接程序:程序、库文件或其他已翻译的子程序连接在一起,形成机器可执行程序•装入程序:把程序从外存送到内存•调试程序:系统带的调试程序Debug:举例TurboDebug程序:TdebugMasmforwindows集成实验环境2.3中央处理机2.3.1中央处理机CPU的组成2.3.28086/8088的寄存器组2.3.1中央处理机CPU的组成CPU由三部分组成:1.算术逻辑部件ALU:用来进行算术和逻辑运算。2.控制逻辑:负责对全机的控制工作,包括:取指、译指、取操作数,发执行指令、结果存入存储器、对总线和I/O传送的控制等。3.寄存器:相当于运算器中的一个存储单元8086CPU结构2.3.28086/8088的寄存器组•寄存器:可见寄存器、不可见寄存器•可见寄存器:1.通用寄存器2.专用寄存器3.段寄存器通用寄存器(1)•8086/8088、80286:数据寄存器:AX,BX,CX,DX,16位可作8位寄存器用:AH,AL,DH,DL等变址寄存器:SP,BP,SI,DI,16位寄存器概况数据寄存器的用途•AX:作累加器,算术运算主要寄存器;在I/O时用AX与外部设备传送信息•BX:在计算存储器地址时,常作基址寄存器•CX:作计数器•DX:作双字长运算时把DX和AX组合存放一个双字长数;在I/O时,DX可用来存放I/O的端口地址SP、BP、SI、DI•SP:堆栈指针寄存器。•BP:基址指针寄存器•SI:源变址寄存器•DI:目的变址寄存器123456789ABCDEF0变址寄存器的用途1.可象数据寄存器一样在运算过程中存放操作数;2.在段内寻址时提供偏移地址3.SP、BP都可以与SS寄存器联用来确定堆栈段中的某一存储单元的地址4.SI、DI一般与DS联用:在串处理指令中,SI和DS联用,DI和ES联用8086系统的堆栈•是存储器中的特殊区域–在堆栈段内,“FILO”–SP始终指向栈顶,总是字操作,指示栈顶的偏移地址;–BP可作为堆栈区中的一个基地址以便访问堆栈中的其他信息–栈底设在高地址区、堆栈地址由高向低增长(象一个有底的桶)–存放断点或暂存数据关于SP、BPF0DEBC9A7856341200600059005d低地址高地址栈顶SP栈底BP堆栈的操作•PUSH/POP–桶结构–SP始终指向栈顶(有内容)–地址由高向低增长–字操作通用寄存器(2)•80386及后继机型:数据寄存器:EAX、EBX、ECX、EDX,32位可作8位寄存器用:AH,AL,DH,DL等可作16位寄存器用:AX,BX,CX,DX变址寄存器:ESP、EBP、ESI、EDI,32位每个的专用属性与8086/8088、80286的寄存器一一对应专用寄存器(1)•8086/8088、80286:–IP、SP、FLAGS—16位•IP:指令指针寄存器。供系统使用,存放代码段中的偏移地址,与CS寄存器联用确定下一条指令的物理地址,指向下一条指令的首地址•FLAGS:程序状态字寄存器PSW。放条件码标志、控制标志、系统标志专用寄存器(2)•80386及后继机型:•EIP、ESP、EFLAGS—32位•与IP、SP、FLAGS—16位的作用相同程序状态字寄存器•8086/8088、80286:•条件码标志:OF、SF、ZF、CF、AF、PF•控制标志位:DF•系统标志位:TF、IF、IOPL(80286)NT0FDFIFTFSFZFAFPFCFIOPL条件码标志•OF:溢出标志。运算时如操作数超出机器表示范围称为溢出。此时OF位置1;否则置0。•SF:符号标志。记录运算结果的符号,结果为负时置1,否则置0。•ZF:零标志。运算结果为0,置1;否则置0。•CF:进位标志。记录从最高有效位产生的进位值。最高有效位有进位时置1,否则置0。•AF:辅助进位标志。记录运算时第3位产生的进位值。如第3位有进位时置1,否则置0。•PF:奇偶标志。当结果操作数中1的个数为偶数时置1,否则置0。标志符号举例标志名标志为1标志为0OF溢出(是/否)DF方向(减量/增量)IF中断(允许/关闭)SF符号(负/正)ZF零(是/否)AF辅助进位(是/否)PF奇偶(偶/奇)CF进位(是/否)OVDNEINGZRACPECFNVUPDIPLNZNAPONC练习计算下列各表达式的值,并且根据计算结果分析OF、SF、ZF、AF、PF和CF各标志位的状态。①58H+63H②80H+90H③FFH+FEH④38H+2BH⑤9CH-45H⑥FEH-FFHOFSFZFAFPFCF结果58H+63H110010BBH80H+90H10000110HFFH+FEH010101FDH38H+2BH00011063H9CH-45H10000057HFEH-FFH010111FFH控制标志位•控制标志位:DF方向标志,用于串处理指令处理DF位为1时,每次操作后使变址寄存器SI和DI减量,使串处理从高地址向低地址方向处理:当DF位为0时,则使SI和DI增量,使串处理从低地址向高地址方向处理:系统标志位•IF:中断标志。当IF=1时,允许中断;IF=0时关闭中断•TF:陷井标志(跟踪标志)。用于单步方式操作•IOPL:I/O特权级。控制对I/O地址空间访问段寄存器•8086/8088、80286:四个段寄存器代码段CS,数据段DS,堆栈段SS,附加段ES•80386及后继机型:六个段寄存器代码段CS,数据段DS,堆栈段SS,附加段ES、FS、GS---都是16位•举例:2.4存储器•2.4.1存储单元的地址和内容•2.4.2实模式存储器寻址•2.4.3保护模式存储器寻址2.4.1存储单元的地址和内容1.位、字节和字1)位:计算机存储信息的基本单位,存储二进制数:0或1。2)字节:每8位组成一个字节,在存储器里以字节单位存储。3)字长:8086/8088、80286字长为16位,由2个字节组成;80386字长为32位,由4个字节组成,双字2.存储器地址•存储器地址–分配给每一个字节单元的编号。地址从0开始编号,顺序地每次加1–每一个字节单元有唯一一个地址:物理地址•8086/8088:–20位,地址范围应该是00000H~FFFFFH•80286:–24位,地址范围应该是000000H~FFFFFFH•80386:32位;Pentium:36位3.存储单元的内容•存储单元的内容:一个存储单元存放的信息(0004)=1234H•字存放方式:低位字节放低地址,高位字节放高地址,以其低地址为准•同一个地址既可看作字节单元地址,又可看作字单元地址•双字数据存放:类似4.地址和内容•如果用X表示某存储单元的地址,则X单元的内容可以表示为(X)•假如X单元中存放着Y,而Y又是一个地址,则可用(Y)=((X))来表示Y单元的内容•举例:(0004H)=1234H,而(1234H)=2FlEH,则也可记作((0004H))=2F1EH5.存储器的特性•它的内容取之不尽•存入新的信息后,原来保存的内容就自动丢失2.4.2实模式存储器寻址1.存储器地址的分段2.段寄存器存储器地址的分段•实模式下最大寻址能力1MB•8086/8088:有20条地址线,直接寻址能力为1MB,即为该机的最大存储容量。•其他处理器:实模式下最大寻址能力1MB•问题:对16位字长的机器,用什么办法来提供20位地址,即1MB空间?分段,若干个不超过64K单元的段。•实模式为8086/8088而设计。几个名词•段:将存储器划分成段,每个段的大小可达64K,每段内地址可以用16位表示•小段:从0地址开始,每16个字节为一小段:00000,00001,00002,…,0000E,0000F;00010,00011,00012,…,0001E,0001F;00020,00021,00022,…,0002E,0002F;……•段地址:指每一段的起始地址•第一列就是每个小段的首地址•在1M字节的地址空间里,共有64K个小段首地址:00000H00010H…41230H41240H…FFFE0HFFFF0H物理地址•存储单元的物理地址:在1M字节的存储器里,每一个存储单元对应的一个唯一的20位地址•物理地址的构成:20位物理地址由16位段地址和16位偏移地址组成•段地址:它必须是小段的首地址,其低4位一定是0,这样就规定段地址只取段起始地址的高16位值。•偏移地址:指段内相对于段起始地址的偏移值物理地址的计算•公式:物理地址=16d段地址+偏移地址16位段基址000016位偏移地址20位物理地址+00002.段寄存器•8086~80286:代码段CS、数据段DS、堆栈段SS、附加段ES寄存器用途:确定一个段的起始地址,各有各的用途:1)代码段存放当前正在运行的程序代码2)数据段存放当前运行程序所用的数据3)堆栈段定义了堆栈的所在区域。堆栈是一种数据结构,是特殊的存储区。特点:后进先出4)附加段是附加的数据段,是一个辅助的数据区举例:程序中代码段占8K(2000H)存储区,数据段占有2K(800H)存储区,堆栈段只占有256个字节的存储区,分配图:段分配独立的情况8086/8088、80286段寄存器与放偏移地址的寄存器的默认组合段偏移CSSSDSESIPSP、BPBX、DI、SI或16位数DI四个段寄存器•
本文标题:汇编语言第2章80x86计算机组织
链接地址:https://www.777doc.com/doc-857795 .html