#include
#define a** __emit__
#define int __int__
#define byte unsigned char
#define word unsigned int
#define dword unsigned long
void setfs(void)
void disablea20(void)
byte readbyte(dword adr)
void writebyte(dword adr, byte val)
/*assemble source file:
code segment
assume cs:code
0100h
_setfs:
start: call $ + 3
jmp main
gdt dd 0,0
csll dw 0ffffh
csbl dw 0
csbm db 0
csa db 9ah
cslh db 0fh; 0cfh
csbh db 0
dsll dw 0ffffh
dsbl dw 0
dsbm db 0
dsa db 92h
dslh db 0fh; 0cfh
dsbh db 0
vgdtr dw $ - gdt - 1
vbase dd 0
; get ip
main: pop bx
sub bx,3
push ds
push cs
pop ds
; redirection
add [bx + offset $cseg - offset start],bx
add [bx + offset $csbl - offset start],bx
add [bx + offset $csbm - offset start],bx
add [bx + offset $csbh - offset start],bx
add [bx + offset $gdt - offset start],bx
add [bx + offset $vbase - offset start],bx
add [bx + offset $vgdtr - offset start],bx
add [bx + offset $psa - offset start],bx
add [bx + offset $rsa - offset start],bx
db 6ah,00h ; push 00h
push cs
db 66h
pop ax ; pop eax
db 2eh,0a3h
$cseg dw offset cseg - offset start
; mov word ptr cs:cseg,ax
db 66h
db 0c1h,0e0h,04h ; shl eax,4
db 2eh,0a3h
$csbl dw offset csbl - offset start
; mov csbl,ax
db 66h
push ax ; push eax
db 66h
push ax ; push eax
pop ax
pop ax
db 2eh,0a2h
$csbm dw offset csbm - offset start
; mov csbm,al
db 2eh,88h,26h
$csbh dw offset csbh - offset start
; mov csbh,ah
db 66h
pop ax ; pop eax
db 66h,05h
$gdt dw offset gdt - offset start
; add eax,offset gdt
dw 0
db 66h
db 2eh,0a3h
$vbase dw offset vbase - offset start
; mov dword ptr vbase,eax
db 0fh,01h,16h
$vgdtr dw offset vgdtr - offset start
; lgdt vgdtr
cli; enable a20 line
in al,92h
or al,2
out 92h,al
; enter protect mode
db 66h,0fh,20h,0c0h ; mov eax,cr0
or al,1
db 66h,0fh,22h,0c0h ; mov cr0,eax
db 0eah
$psa dw $ + 4 - offset start
dw 8
; modify fs
db 6ah,10h ; push 10h
db 0fh,0a1h ; pop fs
; exit protect mode
db 66h,0fh,20h,0c0h ; mov eax,cr0
and al,0feh
db 66h,0fh,22h,0c0h ; mov cr0,eax
db 0eah
$rsa dw $ + 4 - offset start
cseg dw 0
stipop ds
_disablea20:
cliin al,92h
and al,0fdh
out 92h,al
sti_readbyte:
; adr -> edi
db 66h
mov di,[bp+4] ; mov edi,[bp+4]
db 67h,64h
; return al
mov al,[bx] ; mov al,fs:[edi]
_writebyte:
; adr -> edi
db 66h
mov di,[bp+4] ; mov edi,[bp+4]
; val -> al
mov al,[bp+8]
db 67h,64h
mov [bx],al ; mov fs:[edi],al
code ends
end start
*/// test:
void main(void)
_ax = 0;
int(22);
_ax = 3;
int(16);
disablea20();
}
4G全城體驗
截止目前,杭州全城開通4g基站近600個,完成了杭州主城區以及下沙 濱江 蕭山 餘杭中心區域的td lte覆蓋,覆蓋面積達191平方公里,覆蓋人口約365萬,已初步具備了4g網路試商用的條件。至年底,將建設4g基站2000個,實現杭州八城區800萬人群的全覆蓋。據中國移動技術人員表示,目前已成功實現...
4G以上(含4G)記憶體與32位Linux系統
32位的桌面版ubuntu 估計其他發行版桌面版也是 預設不支援4g的記憶體,現如今有兩種方法,一種是安裝server版本的核心,另一種是啟用pae page address extension 實體地址擴充套件 即安裝pae核心。傳統的ia32架構只有32位地址匯流排,只能讓系統容納不超過4gb的...
國內4G頻段劃分
國內4g頻段劃分 2015年 4g網路建設如火如荼地進行,換手機大家幾乎都買的4g手機,那麼看到如下引數怎麼知道手機所支援的網路呢?sim 1 4g tdd lte td38 39 40 41 4g fdd lte lte1 3 4 7 3g td scdma umts td34 39,wcdma1...
4G 頻段的分配
1 tdd lte 國內使用的tdd包括b38 b39 b40 b41,其中b38是b41的子集,國內運營商頻段劃分如下 其中移動b40 聯通電信b41頻段為室內補充頻段。聯通電信定製機均不支援b40頻段,基本可以解讀為該頻段目前被聯通電信保留,不排除未來使用的可能。上面說過了,b38是b41的子集...
寒冬之後,4G報春
受歐債危機影響,2012年全球經濟整體陷入低迷,通訊行業也不能獨善其身,全球五大通訊裝置製造商 愛立信 華為 阿爾卡特朗訊 諾基亞西門子 中興通訊的半年報答卷均不能令人興奮,電信寒冬似乎已經到來。根據相關資料,諾基亞西門子第二季度運營虧損約2.78億美元 阿爾卡特朗訊則淨虧損2.54億歐元 愛立信2...