選中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 累加暫存器,...