Danh mục

Chương 5: Truy cập trực tiếp bộ nhớ

Số trang: 2      Loại file: pdf      Dung lượng: 69.76 KB      Lượt xem: 17      Lượt tải: 0    
10.10.2023

Phí tải xuống: 5,000 VND Tải xuống file đầy đủ (2 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Các hàm truy cập theo địa chỉ phân đoạn:Hàm pokeb(): Dùng để gửi một kí tự value vào bộ nhớ tại địa chỉ phân đoạn off. Nguyên mẫu của hàm trong dos.h là: void pokeb (unsigned, unsigned off, char value)
Nội dung trích xuất từ tài liệu:
Chương 5: Truy cập trực tiếp bộ nhớ Ch−¬ng 5 : truy cËp trùc tiÕp bé nhí §1.C¸c hµm truy cËp theo ®Þa chØ ph©n ®o¹n1. Hµm pokeb() : Dïng ®Ó göi mét kÝ tù value vµo bé nhí t¹i ®Þa chØ ph©n ®o¹n off .Nguyªn mÉu cña hµm trong dos.h lµ : void pokeb(unsigned seg,unsigned off , char value)2. Hµm peekb() : NhËn mét byte t¹i ®Þa chØ seg:off . Nguyªn mÉu cña hµm trong dos.h lµ : char peekb(unsigned seg,unsigned off)3. Hµm poke() : Göi mét sè nguyªn value vµo bé nhí t¹i ®Þa chØ seg:off . Nguyªn mÉu cñahµm trong dos.h lµ : void poke(unsigned seg,unsigned off , int value)4. Hµm peek() : NhËn mét word t¹i ®Þa chØ seg:off . Nguyªn mÉu cña hµm trong dos.h lµ : void peek(unsigned seg,unsigned off )5. Hµm movedata() : Sao n byte tõ ®Þa chØ seg_gui:off_gui ®Õn ®Þa chØ seg_nhan:off_nhan .Nguyªn mÉu cña hµm trong menu.h lµ : void movedata(unsigned seg_gui,unsigned off_gui , unsigned seg_nhan,unsignedoff_nhan , int n) §2. §æi tõ ®Þa chØ ph©n ®o¹n sang ®Þa chØ thùc1. §æi tõ ®Þa chØ thùc : §Ó ®æi tõ ®Þa chØ thùc sang ®Þa chØ ph©n ®o¹n ta dïng macro sau : unsigned FP_SEG(®Þa chØ thùc) unsigned FP_OFF(®Þa chØ thùc)2. §æi tõ ®Þa chØ ph©n ®o¹n : §Ó ®æi tõ ®Þa chØ ph©n ®o¹n sang ®Þa chØ thùc ta dïng macro : void far *MK_FP(seg:off)VÝ dô : Sau khi thùc hiÖn c¸c c©u lÖnh: char buf[100] unsigned ds,dx; ds= FP_SEG(buf) dx= FP_OFF(buf)th× ds:dx chøa ®Þa chØ cña n¶mg buf . Sau khi thùc hiÖn c©u lÖnh : char *pchar; pchar = (char *) MK_FP(0xb800:0)th× pchar trá tíi ®Çu bé nhí mµn h×nh . Khi ®ã ta cã thÓ dïng c¸c lÖnh g¸n ®Ó truy cËp trùctiÕp tíi bé nhí mµn h×nh .Ch−¬ng tr×nh 5-1 : LËp ch−¬ng tr×nh x¸c ®Þnh ®Þa chØ cña mét ng¾t .#include #include #include void main() { unsigned char far *p; int n,k; unsigned seg,off; clrscr(); p=(unsigned char far*)MK_FP(0,0); 58 while(1) { printf(\nSo hieu ngat(Bam 0 de ket thuc): ); scanf(%d,&n); if (n==0) break; k=(n-1)*4; off=p[k]+256*p[k+1]; seg=p[k+2]+256*p[k+3]; printf(\nDia chi cua ngat %x : %x,seg,off); } } Sè hiÖu cña ng¾t ®−îc ®¸nh sè tõ 0 nh−ng n ®−îc nhËp tõ 1 , mçi ng¾t chiÕm 4 bytenªn ta cã k=(n-1)*4; 59

Tài liệu được xem nhiều: