《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。

相關文章
相關標籤/搜索