tubro c訪問 4GB記憶體

2021-04-02 01:40:24 字數 4466 閱讀 3380

#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...