8086與儲存器

2021-10-01 04:35:04 字數 2734 閱讀 2370

選中80h位址,允許cpu對介面的讀操作。

選中0ffh埠,允許cpu對介面進行寫操作。

選擇乙個範圍f800h~ffffh,其中,偶位址為#1,奇位址為#0;

27c128是一種16k8位的sram晶元,由14位位址線和8位資料線組成。兩片27c128可擴充套件總容量至32kb 。其中u7片選擇偶位址,u8片選擇奇位址,組成16k16位的暫存器組。8086通過隱藏最後乙個位址的方法,將乙個字的大小擴充套件至16位,而每乙個位址只有8位。

程式中將程式段xyz的段位址存放在資料段暫存器ds中,再將xyz的偏移位址存放在暫存器bx中,即ds:bx指向xyz的首位址。用附加段暫存器es指向0ffffh這一段基址,暫存器bx指向0,即從0ffff0h這一位置開始寫入。提取ds:bx中的資料寫入es:bx中,每執行一次,偏移位址加2,指向下一偏移量。

同上一段**,此次寫入的段基址改為0f800h。

xyz程式是通過ds:bx即0ffeeh:0000h存放的位址f80000h,而f8000h中存放的是abc進而執行abc。

abc是系統程式,將此程式複製乙份到0f8000h中,將0f8000h位址存放到0ffee0h中,xyz程式是通過0ffeeh指向0f8000h,再將xyz程式複製乙份到0ffff0h中。

在此電路中,用d觸發器充當80h埠。

在此電路中,用三態門充當0ffh埠。

;將系統的起始位址0f8000h存放到定義的雙字單元0ffeeh

mov ax,0ffeeh

mov ds,ax ;定義ds指向段位址為0ffeeh

mov bx,0

mov ax,0

mov word ptr [bx],ax ;將ds段中0偏移量的位址賦值為0

mov word ptr [bx],ax ;將ds段中0偏移量的位址賦值為0

mov ax,0f800h

inc bx ;bx的單元位址加一

inc bx ;bx的單元位址加一

mov word ptr [bx],ax ;此時bx為2,將ds段中2偏移量的位址賦值為0f800h

;將啟動跳轉程式寫到0ffffh

mov cx,10 ;迴圈10次

mov ax,seg xyz

mov ds,ax ;將xyz的段首位址存放s到ds中

mov bx,offset xyz ;將xyz的偏移位址存放到bx中

mov ax,0ffffh

mov es,ax ;es段位址設定為0ffffh

mov di,0 ;es偏移量di為0

x1:mov ax,word ptr [bx] ;把ds:[bx]位置的資料存放到ax

mov es:word ptr[di],ax ;把ax中的資料存放到es:[di]中

add bx,2 ;ds段偏移量bx加2

add di,2 ;es段偏移量di加2,繼續迴圈,將ds:[bx]賦給es:[di]

loop x1

;將系統功能程式寫入0f8000h(bios->eprom)

mov cx,10 ;迴圈10次

mov ax,seg abc

mov ds,ax ;將abc的段首位址存放到ds中

mov bx,offset abc ;將abc的偏移位址存放到bx中

mov ax,0f800h

mov es,ax ;es段位址設定為0f800h

mov di,0 ;es偏移量di為0

x2:mov ax,word ptr [bx] ;把ds:[bx]位置的資料存放到ax

mov es:word ptr [di],ax ;把ax中的資料存放到es:[di]中

add bx,2 ;ds段偏移量bx加2

add di,2 ;es段偏移量di加2,繼續迴圈,將ds:[bx]賦給es:[di]

loop x2

xyz:mov ax,0ffeeh

mov ds,ax

mov bx,0

jmp dword ptr [bx]

abc:in al,0ffh

out 80h,al

jmp abc

endless:

jmp endless

code ends

end start

8086儲存器的分段組織與管理

1 熟悉8086儲存器的分段管理方式。2 掌握儲存單元位址的兩種描述方式 實體地址和邏輯位址,以及從邏輯位址到實體地址的換算方法。記憶體是設定在主機內部的儲存器,能被cpu直接訪問,主要用來存放當前執行的程式和所需的數 據,以便隨時向cpu提供資訊。它與cpu的聯絡最密切,若把cpu比作生產成品的工...

8086儲存器組織以及運算元定址方式

時鐘週期 時鐘週期是cpu的基本時間計量單位,由cpu主頻決定,數值上等於cpu主頻的倒數。乙個時鐘週期又稱為乙個t狀態,因此基本匯流排週期可以用t1 t2 t3 t4表示。ale 位址鎖存訊號,t1結束的時候,電平由高跳變至低,將位址鎖存起來,由位址鎖存器給cpu提供位址,t1時ale為高電平 a...

8086暫存器介紹

8086 有14個16位暫存器,這14個暫存器按其用途可分為 1 通用暫存器 2 指令指標 3 標誌暫存器和 4 段暫存器等4類。1 通用暫存器有8個,又可以分成2組,一組是資料暫存器 4個 另一組是指標暫存器及變址暫存器 4個 資料暫存器分為 ah al ax accumulator 累加暫存器,...