1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo Sơ lược về bộ nhớ màn hình-Danh sách liên kết

17 493 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 345,5 KB

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

Nội dung

Chương 1: Vấn đề bộ nhớ màn hình trong textmode1.1 Sơ lược về Video RAM, các dạng địa chỉ segment, offset, v.v… 1.1.1 Sơ lược về Video RAM: Thuật ngữ Video RAM VRAM được dùng để chỉ tất

Trang 1

Nhận xét của GVHD

Trang 2

Mục lục

Trang

Lời giới thiệu 3

Chương 1: Vấn đề bộ nhớ màn hình trong textmode 4

Sơ lược về Video RAM, các dạng địa chỉ 4

Cách truy cập trực tiếp bộ nhớ 6

Cấu trúc bộ nhớ màn hình ở textmode 10

Cách tính địa chỉ của một ví trí (x, y ) trên màn hình 12

Cách cắt và lưu một vùng hay toàn bộ màn hình 12

Chương 2: Danh sách liên kết đơn – đôi và ứng dụng 12

Khái niệm và mô tả 12

Các đặc trưng, ưu khuyết điểm khi thao tác 13

Cài đặt cụ thể trong C, với thuộc tính Info có kiểu là chuỗi 14

Nêu các lĩnh vực ứng dụng 15

Tài liệu tham khảo 16

Bảng phân công công việc cụ thể 16

Trang 3

Lời nói đầu

Trong hầu hết các chương trình ứng dụng hiện nay, các chức năng thường được hiển thị dưới dạng một MENU tạo thuận lợi cho người sử dụng.

Nhóm 07 chúng tôi tham gia nghiên cứu đề tài 07 về bộ nhớ màn hình và danh sách liên kết nhằm tạo ra một MENU như trình soạn thảo C.

Trong quá trình tham gia nghiên cứu đề tài này, nhóm 07 chúng tôi đã nhận được sự giúp đỡ tận tình của tất cả các bạn trong lớp, và đặc biệt là sự giúp đỡ của thầy CVHT Nguyễn Trần Thi Văn.

Tuy nhiên chúng tôi không thể tránh khỏi những sai sót Rất mong những ý kiến đóng góp nhiệt tình của tất cả các bạn.

Nhóm 07

Trang 4

Chương 1: Vấn đề bộ nhớ màn hình trong textmode

1.1 Sơ lược về Video RAM, các dạng địa chỉ (segment, offset, v.v…)

1.1.1 Sơ lược về Video RAM:

Thuật ngữ Video RAM (VRAM) được dùng để chỉ tất cả các loại bộ nhớ truy xuất

ngẫu nhiên (RAM), để lưu dữ liệu hình ảnh cho màn hình hiển thị của máy tính Tất cả

các loại VRAM đều được cải biến đặc biệt từ RAM động (DRAM).

Theo truyền thống, chuẩn DRAM thường sử dụng cho video cards thì không đủ

băng thông để sử dụng card màn hình ở độ phân giải cao với tốc độ làm tươi có thể chấp nhận được Khi truy xuất thông tin vào video memory thì máy tính phải thực hiện hai thao tác: bộ xử lý thì ghi thông tin mới vào bộ nhớ, và RAMDAC đọc nó nhiều lần trên một giây để mà gởi tín hiệu video đến màn hình.

Để khắc phục hạn chế này, một loại bộ nhớ mới đã được tạo ra là video RAM (VRAM) Giống như tên của nó, bộ nhớ này đặc biệt thích hợp cho việc sử dụng video systems VRAM thật sự là vùng nhớ đệm (buffer) giữa bộ vi xử lý máy tính và hệ thống hiển thị (display), và thường được gọi là frame buffer (bộ nhớ đệm khung hình) Khi

chuẩn bị được gởi tới màn hình, các hình ảnh trước tiên sẽ được CPU đọc như là dữ liệu

từ 1 dạng bộ nhớ chính nào đó rồi mới được ghi vào VRAM Từ VRAM, các dữ liệu

hình ảnh đó được RAMDAC (một công cụ chuyển đổi từ digital sang analog dùng RAM) chuyển đổi thành các tín hiệu analog để gởi đến cơ cấu hiển thị như các bóng đèn hình

CRT hay LCD Thông thường, VRAM được đóng gói dưới dạng các con chip rời và nằm ngay trên card tăng tốc đồ họa Hầu hết các loại VRAM đều có 2 cổng: trong khi CPU đang ghi 1 hình ảnh mới vào VRAM, thì màn hình đọc dữ liệu từ VRAM để làm mới nội dung hiển thị của mình Khác nhau cơ bản giữa VRAM và chuẩn DRAM đó là

VRAM là một cổng đôi dual-ported Điều này có nghĩa là nó có hai con đường truy xuất,

và có thể được ghi và đọc một cách đồng thời Thuận lợi của điều này là nó làm cho tốc

độ xử lý của video card rất lớn: nhiều lần trên một giây những hình ảnh trên màn hình được xử lý và được ghi vào bộ nhớ, đồng thời nhiều lần trên giây bộ nhớ này đọc và gởi

nó đến màn hình Cổng đôi thì cho phép những thao tác này thực hiện.

Note: Đừng nhầm lẫn thuật ngữ "video RAM" với “video memory”.

Khác với memory trong hệ thống và do nhu cầu về đồ hoạ ngày càng cao, các hãng chế tạo graphic card đã chế tạo VRAM riêng cho video card của họ mà không cần dùng memory của hệ thống chính VRAM chạy nhanh hơn vì ứng dụng công nghệ Dual Port nhưng đồng thời giá thành cũng đắt hơn rất nhiều

Đối với các máy họ IBM dải ô nhớ từ A0000h đến BFFFFh của bộ nhớ 1MB

được dành cho RAM Video Nhưng không phải toàn bộ các ô nhớ này luôn được sử dụng, nó còn phụ thuộc vào chế độ làm việc văn bản hay đồ họa và độ phân giải của thẻ Video.

Trang 5

Ví dụ: Ở chế độ làm việc văn bản có màu của VGA (Video Graphics Array) thì địa chỉ làm việc với màn hình bắt đầu từ địa chỉ B80000h.

Trong chế độ văn bản (textmode ) các ký tự được truy cập theo từng ma trận

Hình ảnh ma trận gồm một lưới hình chữ nhật các điểm (ví dụ 640*480) Độ phân giải (số điểm ảnh trong màn hình) thường cho dưới dạng h*v, trong đó h là số lượng pixcel theo dòng và v là số lượng pixcel theo cột.

Độ phân giải = số điểm ngang*số điểm dọc*số màu (số bit màu)

Ví dụ: 800*600*16 bits=960 000 bytes 1Mb

1024*768*32 bits=3 145 728 bytes 4Mb

Ma trận điểm ảnh này được bố trí theo chiều ngang và chiều đứng và tạo thành một hộp ký tự Mỗi hộp ký tự chỉ dùng để hiển thị một ký tự và kích thước ma trận của hộp ký tự phụ thuộc vào từng loại thẻ video.

IBM PC hỗ trợ 3 loại màn hình cơ cản có tên tùy thuộc vào loại Card màn hình cắm trên Bus mở rộng trên Mainboard như: Monochrome cho hiển thị text đơn sắc; CGA (Color Graphic Adaptor) cho phép hiển thị text và đồ họa; EGA (Enhanced Graphics Adaptor) hiển thị text và đồ họa với độ phân giải cao hơn Ngoài ra còn có card VGA (Video Graphics Array), SVGA

1.1.2 Các dạng địa chỉ:

1.1.2.1 Segment:

Segment (Đoạn): Một đoạn bộ nhớ là một khối gồm 2 16 ô nhớ liên kết nhau Mỗi đoạn được đánh dấu bằng địa đoạn,địa chỉ đoạn đầu tiên là 0, địa chỉ đoạn lớn nhất là F000h Bên trong mỗi đoạn của ô nhớ được xác định bằng một địa chỉ tương đối là Offset Như vậy trong mỗi đoạn bytes đầu tiên có Offset là 0, bytes cuối cùng có Offset là FFFFh.

Số lượng các ngăn nhỏ mà bộ xử lý có thể truy nhập được phụ thuộc trực tiếp vào kích thước của một thanh ghi đặc biệt-thanh ghi địa chỉ Mỗi ngăn nhỏ chỉ có thể được gọi thông qua một giá trị tương ứng được đặt trong thanh ghi địa chỉ do vậy thanh ghi quyết định số lượng ngăn nhỏ của bộ nhớ Đối với các bộ vi xử lý trước 8088 thanh ghi địa chỉ la 16 bit Nó chỉ có thể nhận được các giá trị trong khoảng từ 0 đến 65535và

do vậy không thể địa chỉ hoá bộ nhớ lớn hơn 65536 ngăn (ngăn nhỏ 0 cũng phải được tính) Nếu chúng ta muốn truy cập hơn 1 triệu ngăn nhỏ thì phải có thanh ghi địa chỉ kích thướt lớn hơn 16 bit Cần phải có 20 bit để đạt được 1 vùng địa chỉ là 1 Mb (2 20

byte=1024 Kb=1Mb) Cách giải quyết có vẻ không đến nỗi là phức tạp về nguyên tắc chỉ cần thêm 1 thanh ghi địa chỉ chỉ 20 bit.

Giải pháp tối ưu này về nguyên tắc là 8088 không có thêm một thanh ghi địa chỉ đặc biệt nào mỗi khi truy cập bộ nhớ nó sẽ tạo địa chỉ trên cơ sở của hai thanh ghi 16 bit bình thường hai thanh ghi này tổ hợp với nhau để tạo thành một số 20 bit hoặc lớn hơn.

1.1.2.2 Offset:

Một trong hai thanh ghi nào luôn luôn được tạo thành từ một trong bốn thanh ghi mảng (DS, ES, CS, SS) Đó chính là địa chỉ Segment của mảng nhớ Một đoạn nhớ (Segment ) là một khối gồm 2 16 byte liên tiếp nhau Mỗi đoạn được đánh dấu bằng địa chỉ đoạn bắt đầu là 0, đia chỉ lớn nhất là FFFFh MP 8088 lấy số thứ hai từ một thanh ghi khác hoặc từ một ngăn nhỏ và đó là địa chỉ Offset của mảng nhớ Tuy nhiên, hai giá trị này không phải được cộng với nhau 1 cách bình thường vì theo cách này ta

Trang 6

chỉ nhận được một số 17 bit và lớn nhất sự tổ hợp này phức tạp hơn nhiều Địa chỉ Offset cung cấp cho ta vị trí chính xác của ngăn nhớ trong một mảng Bởi lẻ thanh ghi Offset không thể có kích thước lớn hơn 16 bit, nên một đoạn có kích thước 2 16 bytes có nghĩa là 64 Kb.

Địa chỉ được tính từ tổ hợp của hai đia chỉ mảng và Offset được gọi là địa chỉ vật lý Nó chỉ ra địa chỉ tuyệt đối của ngăn nhớ còn bản thân địa chỉ mảng và địa chỉ Offset được gọi là địa chỉ logic.

Để xác định một địa chỉ vật lý trong 1 Mb bộ nhớ (20 bit), người ta dùng hai địa chỉ là địa chỉ đoạn và địa chỉ Offset trong đoạn kết hợp lại với nhau:

Đoạn: offset trong đoạn (segment: offset)

Khi lập trình người ta chỉ cần sử dụng địa chỉ vật lý cụ thể trong bộ nhớ do CPU tự đổi:

Ví dụ: 3456:0C3D Đoạn 3456h Offset 0C3Dh

Cách chuyển đổi địa chỉ logic sang địa chỉ vật lý

Để chuyển đổi một địa chỉ logic sang địa chỉ vật lý người ta dịch trái địa chỉ segment 4 bit (tương đương với việc nhân cho 16 hay 10h) rồi cộng với đia chỉ offset

Ví dụ:

4B3C: 1234 (địa chỉ logic) (địa chỉ vật lý)

4B3C

+ 12 34

4C5F4 (địa chỉ vật lý)

1.1.2.3 Cách ghi địa chỉ bộ nhớ

Mỗi địa chỉ bộ nhớ máy tính PC trong chế độ thực bao gồm hai phần, thể hiện bằng số nguyên không dấu, thường viết dưới dạng mã hệ 16 Hai phần viết cách nhau một dấu hai chấm(:) Phần đứng trước dấu hai chấm gọi là phần địa đoạn (segment) Phần đứng sau dấu hai chấm gọi là độ lệch (offset) Ví dụ:

0xB800:0x0000

Là địa chỉ đầu vùng nhớ màn hình văn bản, trong đó 0xB800 là địa chỉ segment,

và 0x0000 là địa chỉ offset.

Sở dĩ thể hiện phức tạp như vậy là vì bộ nhớ máy tính PC chuẩn ở chế độ thực có thể đánh địa chỉ được tối đa là 1Mb Để đánh địa chỉ được cho từng byte một phải cần một số nguyên 20 bit Nhưng các thanh ghi của CPU 80286 của Intel chỉ có độ dài 16 bit.

Vì vậy bắt buộc phải dùng 2 thanh ghi và tách địa chỉ bộ nhớ làm 2 phần để ghi lên hai thanh ghi đó Phần segment đánh số các ô nhớ có địa chỉ tuyệt đối là bội số của 16 Phần offset ghi độ chuyển dịch của một ô nhớ so với một địa chỉ segment đã chọn.Từ hai giá trị này có thể tính ra địa chỉ tuyệt đối của một ô nhớ như sau:

Địa chỉ tuyệt đối= Địa chỉ segment*16+Địa chỉ offset Mỗi ô nhớ trong bộ nhớ có một địa chỉ tuyệt đối duy nhất, nhưng có thể được viết dưới dạng nhiều cách khác nhau, tuỳ thuộc vào địa chỉ segment Còn đối với cùng địa chỉ segment thì việc đánh địa chỉ là nhất quán Tất cả các ô nhớ được ghi điạ chỉ offset căn cứ vào một địa chỉ segment tạo nên một vùng nhớ được gọi là một segment, hay một đoạn Tuy vậy nhưng với thanh ghi 16 bit, chỉ có thể mã hoá được tối 65536 địa chỉ offset khác nhau Không thể có độ dịch chuyển nào lớn hơn giá trị đó, hay nói cách khác, dung lượng của một segment không thể vượt qua giá trị 65536 byte, hay 64 Kb.

Trang 7

1.2 Cách truy nhập trực tiếp bộ nhớ: các hàm peek (), poke (), MK_FP, FP_SEG, FP_OFF, …

1.2.1 Tổ chức bộ nhớ của máy tính:

Bộ nhớ làm việc dưới hệ điều hành DOS đuợc chia làm 3 phần chính:

Hình 2: Sơ đồ bộ nhớ của máy tính PC.

1.2.1.1 Vùng nhớ quy ước:

Là vùng nhớ có dung lượng 640 Kb, bắt đầu từ địa chỉ tuyệt đối 0x00000 hay địa chỉ 0x0000:0x0000 theo cách viết mà ta đã trình bày Vùng này có thể chia thành hai vùng chính:

Đoạn từ 0x0000:0x0000 đến 0x0000:0x06FF dùng để chứa các thông tin được chương trình khởi động(BOOT) và hệ điều hành nạp lên trong quá trình khởi động, trong đó có:

Bảng vectơ ngắt chiếm 4K, từ 0x0000:0x0000 đến 0x0000:03FF

Các thông tin chung của ROMBIOS, DOS và của các thiết bị chiếm 3K, từ 0x0000:0x0400 đến 0x0000:06FF.

Từ địa chỉ 0x0000:0x0700 đến 0x9FFF:0x000F chứa phần thường trú của COMMAND.COM và các trình thường trú khác ( trình điều khiển chuột, trình cảnh

XXXXX Tuỳ theo kích thước bộ nhớ và

bộ vi xử lý

EMB

Bộ nhớ HMA

FFFF:FFFF

FFFF:000F

FC00:0000

Phần thường trú của hệ điều

hành(DOS)

4) V ùn

FBFF:000F

F000:0000

48 Kb dành riêng

EFFF:000F

C000:0000 192 Kb ROM mở rộng Vùng bộ nhớ

phân trang BFFF:000F

A000:0000

128 Kb Bộ nhớ các card điều

khiển 8 bit

9FFF:000F

0000:0000

Phần thường trú của DOS và chương trình người dùng

0000:06FF 0000:0500 Thông tin chung của ROM-BIOS

và DOS về các thiết bị 0000:04FF

0000:0400 Thông tin của ROM-BIOS 0000:03FF

0000:0000

Các vectơ ngắt

Trang 8

báo virus, bộ gõ tiếng Việt…); phần còn lại dành cho chương trình người dùng Người lạp trình có thể tung hoành trong vùng này một cách tương đối an toàn Nhưng chỉ lỡ xâm phạm vào vùng nhớ của các trình thường trú, hoặc làm sai lạc giá trị các vùng trước đó thì sẽ thấy ngay các chuyện kỳ quặc hoặc treo máy Dung lượng của vùng nhớ quy ước là 9FFF 16 x 16 10 +000F 16 + 1 = 655360 10 hay 640 Kb.

1.2.1.2 Vùng nhớ cao(UMA)

Là phần còn lại 384 Kb của 1Mb trừ đi 640 Kb Là vùng nhớ của các card điều khiển hay ánh xạ vùng nhớ trên các thiết bị, của ROM mở rộng, và của ROM-BIOS Đặc biệt trong vùng này có phần bộ nhớ của card màn hình hoặc để ánh xạ bộ nhớ màn hình, là địa chỉ rất thú vị dành cho người lập trình Phần nào còn bỏ ngỏ thì các phiên bản DOS

về sau thường gửi các trình thường trú của mình lên đó để dành thêm dung lượng làm việc cho người dùng ở phần vùng nhớ quy ước.

1.2.1.3Vùng HMA

Khi dùng tới 20 bit để ghi địa chỉ thì thực tế số byte có thể đánh địa chỉ sẽ nhỉnh hơn

1 Mb một chút Cụ thể như sau:

Băng này ghi được 2 20 – 2 4 =1048576 – 16 =1048560 byte

Thanh ghi đoạn (segment)

Băng này ghi được 2 16 = 65536 byte

Thanh ghi offset Tổng cộng ghi được 1114096 byte =1048560 + 65536= 1 Mb + 64 Kb - 16 byte.

Hình 1 Cách sử dụng hai thanh ghi để đánh địa chỉ của máy tính PC.

Ta sẽ có thêm “thiếu 16 byte đầy 64 Kb”nữa Vùng này gọi là vùng nhớ HMA.

1.2.2 Con trỏ gần và con trỏ xa:

Một chương trình khi được nạp vào bộ nhớ RAM để sẵn sàng chạy thường được tổ chức như sau:

Phần mã trong một đoạn được gọi là đoạn mã, có địa chỉ đoạn đặt tại thanh ghi CS Phần dữ liệu tĩnh, các biến toàn cục được đặt trong một đoạn gọi là đoạn dữ liệu, có địa chỉ đoạn đặt tại thanh ghi DS.

Phần dữ liệu tạm thời, dữ liệu cục bộ đặt trong đoạn ngăn xếp, có địa chỉ đoạn đặt tại thanh ghi SS.

Một biến tĩnh hay biến toàn cục bất kỳ do đó có địa chỉ offset16 bit được tính căn cứ vào địa chỉ đoạn ghi trong thanh ghi DS Tổng dung lượng các biến này không vượt quá 64Kb.

Một con trỏ nếu có giá trị chỉ trong phạm vi 16 bit có nghĩa là nó trỏ vào một ô nhớ thuộc đoạn dữ liệu, với địa chỉ đoạn ngầm hiểu là địa chỉ đoạn dữ liệu ghi trong DS Con trỏ này được gọi là con trỏ gần (near) Phần bộ nhớ còn dư, sau khi bố trí các biến tĩnh

và biến cục bộ trong đoạn dữ liệu được gọi là phần heap gần.

Cũng có thể khai thác các biến con trỏ gần với địa chỉ đoạn ngầm hiểu trong thanh ghi CS, thanh ghi SS Lúc đó, con trỏ cũng chỉ là 16 bit.

Ngoài phần bộ nhớ được tổ chức dành riêng cho chương trình như trên, phần bộ nhớ tự do còn lại của RAM được gọi là vùng heap xa Giá trị của một con trỏ trỏ tới vùng này không còn có thể căn cứ vào địa chỉ đoạn trong các thanh ghi DS, CS, hay SS được nữa, và do đó phải được mã hoá bằng 32bit, với 16 bit ghi địa chỉ đoạn, 16 bit ghi địa chỉ offset Con trỏ như vậy gọi là con trỏ xa(far).

1.2.3 Các hàm truy cập trực tiếp bộ nhớ:

1.2.3.1 Hàm poke( ), pokeb( ) <DOS.H>

Trang 9

Công dụng:

■ poke gửi giá trị nguyên vào bộ nhớ tại địa chỉ phân đoạn segment:offset ■ pokeb gửi giá trị kí tự value vào bộ nhớ tại địa chỉ phân đoạn

segment:offset

Khai báo (declaration):

■ void poke(unsigned segment, unsigned offset, int value);

■ void pokeb(unsigned segment, unsigned offset, char value);

Giá trị trả về: None

1.2.3.2 Hàm peek( ), peekb( ) <DOS.H>

Công dụng: ■ peek nhận một số nguyên từ bộ nhớ tại địa chỉ phân đoạn segment:offset ■ peekb nhận một kí tự từ bộ nhớ tại địa chỉ phân đoạn segment:offset

Khai báo (declaration):

■ int peek(unsigned segment, unsigned offset);

■ char peekb(unsigned segment, unsigned offset);

Giá trị trả về: ■ peek trả về dữ liệu kiểu word tại địa chỉ phân đoạn segment:offset

■ peekb trả về dữ liệu kiểu word tại địa chỉ phân đoạn segment:offset

1.2.3.3 Hàm movedata ( ): <MEM.H, STRING.H> Công dụng: Sao n byte từ địa chỉ nguồn (srcseg:srcoff) đến địa chỉ đích Khai báo (declaration):

■void movedata(unsigned srcseg, unsigned srcoff,unsigned destseg, unsigned destoff, size_t n);

Giá trị trả về: None 1.2.3.4 Hàm FP_OFF ( ),FP_SEG( ), MK_FP( ) Công dụng:

■ FP_OFF là một macro nhận hoặc đặt địa chỉ offset ■ FP_SEG là một macro nhận hoặc đặt địa chỉ segment ■ MK_FP tạo một con trỏ far

Khai báo:

■ unsigned FP_OFF(void far *p);

■ unsigned FP_SEG(void far *p);

■ void far *MK_FP(unsigned seg, unsigned ofs);

Giá trị trả về:

■ FP_OFF trả về giá trị số nguyên đại diện cho giá trị của offset ■ FP_SEG trả về giá trị số nguyên đại diện cho giá trị của segment

■ MK_FP trả về một con trỏ

1.2.4 Cách chuyển đổi địa chỉ:

Để chuyển từ địa chỉ thực sang địa chỉ phân đoạn ta dùng các macro sau:

unsigned FP_SEG(địa_chỉ_thực) unsigned FP_OFF(địa_chỉ_thực)

Để chuyển ngược lại ta dùng các macro: void far *MK_FP(đoạn, độ_lệch)

Ví dụ sau khi thực hiện các câu lệnh:

char buf [100];

unsigned ds,dx;

Trang 10

ds= FP_SEG(buf);

dx= FP_OFF(buf);

thì ds:dx chứa địa chỉ của mảng buf.

Ngược lại, giả sử tại es: bx chứa địa chỉ của một vùng nhớ nào đó Để thu được địa chỉ thực của vùng nhớ này tại con trỏ pchar ta làm như sau:

Char *pchar;

Pchar=(char*)MK_FP(es,bx);

Ví dụ sau khi thực hiện các câu lệnh:

Char *pchar;

Pchar=(char*)MK_FP(0xb800:0);

Thì pchar trỏ tới địa chỉ đầu của bộ nhớ màn hình Khi đó ta có thể sử dụng các lệnh gán để truy cập trực tiếp tới bộ nhớ màn hình.

1.3 Cấu trúc bộ nhớ màn hình ở textmode: địa chỉ bắt đầu, kích thước, cách lưu trữ, giá

trị và ý nghĩa của byte thuộc tính,… )

1.3.1 Bộ nhớ màn hình (Display memory)

Bộ nhớ màn hình là vùng bộ nhớ dùng để chứa dữ liệu trực tiếp hiện ra màn hình, dữ liệu trong bộ nhớ màn hình thay đổi sẽ trực tiếp thay đổi trên màn hình Ở chế

độ văn bản (text mode ), bộ nhớ chủ dành cho bộ nhớ màn hình được bắt đầu từ địa chỉ

B800:0000 Ở chế độ đồ hoạ (graphics mode) bộ nhớ chủ dành cho bộ nhớ màn hình

được bắt đầu từ địa chỉ A000:0000 Với màn hình VGA kích thước chuẩn của bộ nhớ

màn hình là 256Kb.

1.3.2 Địa chỉ bắt đầu bộ nhớ màn hình:

Bộ nhớ màn hình bắt đầu từ địa chỉ: 0xB800:0x0000

Ngày đăng: 06/05/2015, 14:58

HÌNH ẢNH LIÊN QUAN

Hình 2: Sơ đồ bộ nhớ của máy tính PC. - báo cáo Sơ lược về bộ nhớ màn hình-Danh sách liên kết
Hình 2 Sơ đồ bộ nhớ của máy tính PC (Trang 7)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w