Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Hỏi về con trỏ near far

  1. #1
    Ngày gia nhập
    09 2008
    Nơi ở
    tphcm
    Bài viết
    0

    Wink Hỏi về con trỏ near far

    C Code:
    1. #include "stdio.h"
    2. #include "conio.h"
    3. void main()
    4. {
    5.       printf("AA");
    6.       unsigned int far *p;
    7.       p=(unsigned int far *) 0xB8000000;
    8.       *p= 0x0742;
    9. }
    màn hình xuất hiện BA thay vì AA mình ko hiểu tại sao?? ai biết giải thích giùm mình với! mình chạy trên Borland C.



    lưu ý: Tiêu đề bài viết và bài viết phải có dấu, code bỏ trong tag code. đọc nội qui để biết thêm chi tiết
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 30-09-2008 lúc 09:42 PM.

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    0xB8000000 là địa chỉ của buffer màn hình ở chế độ text. 0x0742 gồm có 8 bit thấp là 0x42 ( mã ascii của ký tự 'B' ) và 8 bit cao 0x07 là màu chữ xám nền đen. *p = 0x0742 tức là in vào tọa độ (0,0) ký tự 'B' có màu xám nền đen.
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 30-09-2008 lúc 09:51 PM.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    09 2008
    Nơi ở
    tphcm
    Bài viết
    0

    vậy là chữ B ghi đè lên chữ A phải hông bạn

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    0

    cho mình hỏi thêm vì sao với đoạn code trên chạy ở LCC-win32 thì không chạy được vậy?

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    win32 quản lý bộ nhớ bằng protected mode khác với mô hình bộ nhớ trong dos real mode. Trong win32 ko có buffer cho màn hình text, chỉ có buffer cho màn hình đồ họa và địa chỉ trong đoạn code trên cũng ko còn đúng nữa.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  6. #6
    Ngày gia nhập
    10 2008
    Bài viết
    0

    Mặc định Hỏi về con trỏ near far

    Vậy trên LCC có các tác động khác để cho ra kết quả giống BC3.1 được không?
    Nếu có thì viết code thế nào

    PS: Để tìm hiểu thêm về vấn đề này, có thể tìm đọc ở những tài liệu nào vậy? Có thể cho mình xin tên một vài quyển sách (hoặc ebook) về vấn đề này không
    Đã được chỉnh sửa lần cuối bởi NapoleonVN : 06-10-2008 lúc 12:03 AM.

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trích dẫn Nguyên bản được gửi bởi NapoleonVN Xem bài viết
    Vậy trên LCC có các tác động khác để cho ra kết quả giống BC3.1 được không?
    Nếu có thì viết code thế nào

    PS: Để tìm hiểu thêm về vấn đề này, có thể tìm đọc ở những tài liệu nào vậy? Có thể cho mình xin tên một vài quyển sách (hoặc ebook) về vấn đề này không
    Trong DOS dùng chế độ văn bản còn trong win dùng chế độ đồ hoạ, cấu trúc bộ nhớ của 2 bên cũng khác xa nhau thì sao làm được. Nhưng nếu bạn đang dùng console trong win thì có thể dùng hàm api WriteConsole để được kết quả giống như vậy.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn