1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng tin học đại cương C++ (chương 5)

2 331 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 163,02 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

CH NG 5: TRUY C P TR C TI P B

§1 CÁC HÀM TRUY C P THEO Đ A CH PHÂN ĐO N

1 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 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 t i đ a ch seg:off Nguyên

m u c a hà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 hàm trong dos.h là:

void peek(unsigned seg,unsigned off )

5 Hàm movedata(): Sao n byte t i đ 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, unsigned off_nhan, int n)

§1 Đ I T Đ A CH PHÂN ĐO N SANG Đ A CH TH C

1 Đ i t đ a ch th c: Đ i t đ i ch th c sang đ a ch phân đo n ta dùng

macro sau:

unsigned FP_SEG(dia chi thuc)

unsigned FP_OFF(dia chi thuc)

2 Đ i t đ a ch phân đo n: Đ i t đ a ch phân đo n sang 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 m ng buf

Sau khi th c hi n câu l nh:

51

Trang 2

char *pchar;

pchar = (char *) MK_FP(0xb800:0)

thì pchar tr t i b nh màn hình Khi đó ta có th dùng các l nh đ truy

c 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 <dos.h>

#include <conio.h>

#include <stdio.h>

void main()

{

unsigned char far *p;

int n,k;

unsigned seg,off;

clrscr();

p=(unsigned char far*)MK_FP(0,0);

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 m i ng t đ c đánh s t 0 nh ng n đ c nh p t 1, m i

ng t chi m 4 byte nên:

k = (n 1)*4;

52

Ngày đăng: 17/06/2015, 14:11

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w