
14-12-2008, 04:23
|
|
|
|
חבר מתאריך: 07.11.08
הודעות: 52
|
|
DWORD זה Double Word ולא "Data Word", כמו ש-QWORD זה Quad Word.
מילת מכונה (Word) ב-PC-ים היום היא 4 בתים (במעבדי 32-ביט) או 8 בתים (במעבדי 64-ביט), אבל המושגים נשארו מעידן מעבדי 16-ביט של אינטל, ולכן כשמדברים על גדלים Word בד"כ מציינת 2 בתים. לכן, DWORD מציינת 4 בתים - 2 מילות מכונה.
דוגמה מהקרנל של לינוקס:
קוד PHP:
#define PRINT_LMIP_byte(_h, _lseq, _n) \ asd_printk(STR_8BIT, #_n, LmSEQ_##_n(_lseq)-LmSCRATCH(_lseq), \ asd_read_reg_byte(_h, LmSEQ_##_n(_lseq))) #define PRINT_LMIP_word(_h, _lseq, _n) \ asd_printk(STR_16BIT, #_n, LmSEQ_##_n(_lseq)-LmSCRATCH(_lseq), \ asd_read_reg_word(_h, LmSEQ_##_n(_lseq))) #define PRINT_LMIP_dword(_h, _lseq, _n) \ asd_printk(STR_32BIT, #_n, LmSEQ_##_n(_lseq)-LmSCRATCH(_lseq), \ asd_read_reg_dword(_h, LmSEQ_##_n(_lseq))) #define PRINT_LMIP_qword(_h, _lseq, _n) \ asd_printk(STR_64BIT, #_n, LmSEQ_##_n(_lseq)-LmSCRATCH(_lseq), \ (unsigned long long)(((unsigned long long) \ asd_read_reg_dword(_h, LmSEQ_##_n(_lseq))) \ | (((unsigned long long) \ asd_read_reg_dword(_h, LmSEQ_##_n(_lseq)+4))<<32)))
ובווינדוס:
קוד PHP:
typedef unsigned long DWORD, *PDWORD, *LPDWORD;
|