《80X86 IBM PC 及兼容计算机》第一天

    接上 spa

    典型的汇编语言程序至少有三个部分组成:代码段、数据段、堆栈段。代码段包含了执行指定任务的汇编语言指令。数据段用来存储那些将被代码段中的指令所处理的信息。堆栈段用来存储临时信息。 操作系统

   8086CPU汇编语言中的段是一块存储区域,最多能够包含64KB,而且开始于一个能够被16正处的地址也就是以0H结尾。8086的最多只能处理64KB的代码、数据、堆栈信息,尽管有20个地址引脚可以使用1MB的存储量。 视频

    8086中常常提到三种地址:物理地址、偏移地址、逻辑地址。物理地址是实际地址。偏移地址是段中的某个位置。逻辑地址由段和偏移组成。 程序

    8086 CPU 中指令由操做码和运算数铸成。指令的逻辑地址为CS:IP。物理地址是(CS) * 16 + (IP)。8086 CPU 放置到地址总线并由存储器电路解码的地址是物理地址。 方法

    8086 CPU 中数据段使用ds:偏移值 表示逻辑地址。若是要将地址为0200H中的数据放入到ax中,方法为:MOV AL, [0200],注意偏移地址被包围在方括号中,方括号代表运算数表明的是数据的地址而不是数据自己。 数据

    接下来就是数据信息在存储器中的存储方式了,分为两种小端规则和大端规则。所谓小端规则就是高位字节存储到高位地址,低位字节存储到低位地址;大端规则相反,高位字节存储到低位地址,低位字节存储到高位地址。 语言

    IBM PC 的存储映射表:00000H-9FFFFH的640KB空间做为常规存储器,DOS操做系统也存储在这里,A0000H-BFFFFH的128KB空间用做视频显示,C0000H-FFFFFH的256KB用做ROM。只有F0000H-FFFFFH的64KB用做BIOS的ROM。 时间

    前面可知堆栈是用来存储临时信息,堆栈的主要缺点在于访问时间太长,它的访问时间远远长于寄存器的访问时间。8086的堆栈操做是针对十六位的。由于IP老是指向下一条将被执行的指令,并且随着指令的执行它的值老是随之递增;而SP的值老是减少,因此为了防止代码段和堆栈段相互干扰,它们老是被安排在分配给程序的RAM的两端。虽然相向而行可是却不可以相遇,不然会发生冲突,引发程序崩溃。 系统

    对于段地址和偏移地址须要注意点的是若是段地址左移加上偏移地址后大于容许的最大值FFFFFH,那么就会发生折回,从00000H开始继续超过的部分。

    在寻址中,寄存器间接寻址所用的寄存器有SI、DI和BX,这时段寄存器默认为DS。

相关文章
相关标签/搜索