Lập trình ghép nối thiết bị

LÝ THUYẾT

Câu 1. địa chỉ của ô nhớ là gì?

-Coi các bộ nhớ như là ma trận vuông n cấp thì mỗi ô là một ô nhớ địa chỉ của ô nhớ chính là thứ tự của ô nhớ

-Địa chỉ của ô nhớ là chỉ số và thứ tự của ô nhớ đư nhà sản xuất quy định

-Không phải lưu trữ vì địa chỉ ô nhớ được nhà sản xuất lưu trữ sẵn

Câu 2. máy ảo là gi?

Một máy ảo trong khoa học máy tính là phần mềm tạo ra một môi trường giữa hệ nền máy tính và người dùng cuối trong đó người dùng cuối có thể thực thi phần mềm.

Có một vài định nghĩa về máy ảo. Các máy ảo có thể là các phần cứng nằm trong cùng một máy tính chảy các hệ điều hành khác nhau. Chúng cũng có thể là các phần mềm để thực hiện riêng biệt các ứng dụng, như máy ảo Java. Ngoài ra máy ảo cũng có thể nói đến môi trường ảo và các nghĩa ít dùng khác.

Câu 3. trang màn hình là gì?

- Tuỳ loại card màn hình khác nhau mà độ phân giải khác nhau, dung lượng bộ nhớ đệm khác nhau => số trang màn hình khác nhau.

- Màn hình chỉ hiển thị được một lượng thông tin nhất định của một trang nhớ trong RAM màn

hình. Trang màn hình thực chất là một trang nhớ RAM màn hình.

Câu 4. trạng thái hiện thời của CPU là gì?

- Chính là các giá tri hiện thời thuộc tập thanh ghi của CPU đó.

Câu 5. số hiệu ngắt có phải là địa chỉ của vector ngắt ko? cách tính địa chỉ ngắt từ số hiệu ngắt?

- Bảng vector ngắt có 256 ô, được đánh số thứ tự từ 00h, 01h, ... đến FFh. Số thứ tự của từng ô trong bảng vector ngắt được gọi là số hiệu ngắt.

- Nội dung mỗi ô chứa địa chỉ logic của một chương trình phục vụ ngắt xác định, các địa chỉ này được gọi là vector ngắt.

- Vậy số hiệu ngắt không phải là địa chỉ của vector ngắt, chỉ là số thứ tự của vector ngắt trong bảng vector ngắt.

-Từ số hiệu ngăt Cpu truy cập vào bảng vector ngắt để tìm đên ô nhớ tương ứng đọc nội dung ô nhớ lấy đ/c của c tr con phục vụ ngăt

-Các vector ngắt được ghép nối với nhau kết từ đầu vùng bộ nhó tạo thành bảng vector ngắt

-Vị trí của vector ngắt được xác định =số ngắt *4

Câu 6. Tại sao vector boot lại được nạp vào địa chỉ 7C00 của Ram ?

- Khi boot phải nạp vào vùng nhớ có địa chỉ bắt đầu là 07C00h vì 07C00h là vùng nhớ mặc định của Master boot. Khi boot ROM trên BIOS khởi động nó sẽ copy hệ điều hành lên RAM tại địa chỉ của master boot record. Sau khi copy lên nó sẽ trao quyền điều khiển cho hệ điều hành mới.

Câu 7: chương trình con khi khai báo vi lệnh sẽ thực hiện nhanh hơn hay chậm hơn so với Ram ? giai thich?

Khi gọi chương trình con có sự chuyển điều khiểm nên khi bắt đầu c tr con phải lưu lại thồng tin trạng thái của c tr gọi khi kết thúc phải phục hổi thông tin trạng thái c tr chính và trả điều khiển cho c tr chính

Khi sử dụng c tr con sẽ làm chậm tốc độ thực hiện của c tr

Vì vậy chương trình con khi khai báo vi lệnh sẽ thực hiện chậm hơn so với Ram

Câu 8: xác định giá trị của thanh ghi IP trước và sau khi thực hiên xong chương trình con

Địa chỉ của thanh IP sau khi thực hiện chương trình con

NEAR:chương trình con được gọi thì đ/c offset (16bit) được lấy từ ngăn xếp để gán cho thanh IP

Far :lấy đ/c offset trong ngăn xếp được lấy để gán cho thanh IP

Câu 9. cho biết máy phát xung nhịp có fin=64MHz và số đếm trong chế độ 0 là N= 64, t0=10^-3 s . Hỏi: một nhịp của đồng hồ hệ thống <=> bao nhiêu nhịp của máy phát xung?

- Chu kỳ của xung ở đầu ra của bộ đếm là: T out = N.t0 = 64.10^-3.

- Chu kỳ của máy phát xung là: T in = 1/ fin = 1/( 64.10^6)= 1,5625.10^-6.

=> Tout / Tin = 4,096.10^6.

- Vậy một nhịp của đồng hồ hệ thống tương đương 4,096.10^6 nhịp của máy phát xung.

Câu 10. Mục đích của PIC 8259A sử dụng để làm gì ?

- PIC (Programmable Interrupt Controller): Bộ điều khiển ngắt.

- PIC 8259A được dùng trong họ PC-IBM để tạo đồng hồ hệ thống.

- PIC 8259A có 2 lối vào và 1 lối ra.

+ Một lối vào gọi là lối vào điều khiển IR0 nối với lối ra OUT0 của bộ đếm 0, lối vào này có tác dụng điều khiển thời điểm bắt đầu đếm.

+ Một lối vào gọi là lối vào nhịp CLK0, lấy tín hiệu từ máy phát xung nhịp.

+ Lối ra của PIC 8259A nối với lối vào TNTR của CPU 8086.

Câu 11. Cho biết xung nhịp của lối vào CLK0 được cung cấp 1 tần số fin nào đó và giá trị của bộ đếm là N = 1000. tính f out?

f out = f in / N

Xung ở lối ra sẽ có tần số f0/1000

Xung nhịp thời gian sẽ có tần số f0/1000 (lần /s)

Câu 12. cho biết lối vào CLK0 của bộ đếm đến 0 trong chế độ 2 có tần số f0 số đếm n, xác định thời gian cập nhạt của đồng hồ hệ thống?

Tần số vào f0

Xung ở lối ra sẽ có tần số là f(out)=f0/n

-Cho biết lối vào CLK0 của bộ đếm 0, chế độ 2 có tần số fin =1,19318MHz, số đếm N = 65536, xác định thời gian cập nhật của đồng hồ hệ thống?

- Giá trị trong bộ đếm cho biết đếm bao nhiêu chu kỳ xung nhịp ở lối vào sẽ có tín hiệu ở lối ra.

=> fout = fin / N = 1,19318MHz / 65536 = 18,206Hz.

- Sườn lên của mỗi xung ra sẽ tạo ngắt cứng trong PIC 8259, lối ra INTR của PIC 8259 gây ra ngắt mềm 08h của hệ điều hành để cập nhật đồng hồ hệ thống 18,206 lần/s.

Câu 13: mô tả quá trình lấy thời gian thức với vi mạch MC 146818

-MC 146818 có 64 chân, muốn đọc ghi 1 trong 64 thanh ghi trên cần dùng cả 2 thanh ghi : Thanh ghi lệnh 70ḥ , Thanh ghi dữ liệu (71h)

- thanh ghi lệnh 70h sẽ lưu trữ nội dung của lệnh mà CPU đang thực hiện( 70h cho biết số hiệu của thanh ghi nội nào sẽ được truy cập đánh số hiệu từ 0-63).

- thanh ghi nội là các ô nhớ bên trong CPU chứa dữ liệu tương tự như ô nhớ trong bộ nhớ.

Câu 14. Bản chất của thiết bị tạo âm thanh trong MT là gì ?

- Mạch tạo âm thanh gồm các thành phần:

+ máy phát xung nhịp của đồng hồ hệ thống.

+ bộ chia tần số (là bộ đếm 2 của PIT 8253/8354).

+ một bit của cửa ra cổng song song 8255 port để đưa tín hiệu ra loa.

- Tiến trình phát âm với tần số xác định:

+ CPU ghi lời điều khiển(B6h) ra cổng 43h của 8253/8354

+ Ghi 2 byte của số đếm(N) vào cổng 42h của 8253/8354 để phân chia tần số.

+ Đưa tín hiệu điều khiển cổng 61h để đóng mạch 8255. Đưa tín hiệu ra loa khi bộ đếm đạt tới 0000h.

Câu 15. với cùng 1 tần số của máy phát xung nhịp muốn điều khiển tần số của máy phát âm thanh cần phải làm gì ?

- Cùng một tần số của máy phát xung nhịp, muốn điều khiển tần số của máy phát âm thanh cần phải thay đổi số đếm N trong bộ chia tần số (bộ đếm 2 của PIT 8253/8354).

Câu 16. các thanh ghi nối lưu trữ thời gian của chip MC146818 là 8 hay 16 bit(16)

8 bit

Câu 17. phân biệt FAT16, FAT 32 ?

- FAT16: Với HĐH MS-DOS, hệ thống tập tin FAT (FAT16 - để phân biệt với FAT32) được công bố vào năm 1981 đưa ra một cách thức mới về việc tổ chức và quản lý tập tin trên đĩa cứng, đĩa mềm. Tuy nhiên, khi dung lượng đĩa cứng ngày càng tăng nhanh, FAT16 đã bộc lộ nhiều hạn chế. Với không gian địa chỉ 16 bit, FAT16 chỉ hỗ trợ đến 65.536 liên cung (clusters) trên một partition, gây ra sự lãng phí dung lượng đáng kể (đến 50% dung lượng đối với những ổ đĩa cứng trên 2 GB).

- FAT32: được giới thiệu trong phiên bản Windows 95 Service Pack 2 (OSR 2), được xem là phiên bản mở rộng của FAT16. Do sử dụng không gian địa chỉ 32 bit nên FAT32 hỗ trợ nhiều cluster trên một partition hơn, do vậy không gian đĩa cứng được tận dụng nhiều hơn. Ngoài ra với khả năng hỗ trợ kích thước của phân vùng từ 2GB lên 2TB và chiều dài tối đa của tên tập tin được mở rộng đến 255 ký tự đã làm cho FAT16 nhanh chóng bị lãng quên. Tuy nhiên, nhược điểm của FAT32 là tính bảo mật và khả năng chịu lỗi (Fault Tolerance) không cao.

Câu 18. Chỉ số của điểm nhập trong bảng FAT có bằng với chỉ số cluster đầu tiên của file hay không ?

- Số hiệu cluster đầu tiên (địa chỉ cluster đầu tiên) cùa file trong vùng dữ liệu cũng là số thứ tự của điểm nhập của file trong bảng FAT. ( slide 22, bài lập trình với file và đĩa)

BÀI TẬP

Đề 1. Câu 8

Giả sử file thư mục AT3a đã tồn tại trên ổ đĩa.Viết chương trình thực hiện công việc sau:

-khj người dùng nhấn phím 'h' hoặc 'H' sẽ ẩn thư mục trên

-Khj người dùng nhấn phím 's' hoặc 'S' sẽ hiển thị thư mục trên.

-khj người dùng nhấn phím 'x'hoặc 'X' sẽ kết thúc chương trình

-Nếu người dùng nhấn phím khác,hiển thị thông báo yêu cầu nhập lại

Thuật toán: Nhập vào 1 phím, so sánh phím nhập vào với h, s, x. Nếu = h thì nhảy đến label An, để ẩn thư mục. Nếu = s thì nhảy đến label Hien, để làm hiện thư mục. Nếu =x thì nhảy đến label Dung kết thúc chương trình. Nếu phím được nhập khác cả 3 phím trên lại quay lại nhập và so sánh từ đầu, label BD.

Ở label An, sau khi ẩn thư mục xong phải nhảy đến label Dừng bằng lệnh (JMP Dung), nếu ko thì nó sẽ thực hiện label Hien, như vậy nó sẽ làm hiện thư mục luôn.

Chú ý trước khi chạy, vào C:\emu8086\MyBuild tạo folder AT3a trước nha.

.MODEL SMALL

.STACK 100h

.DATA

MSG DB 'Nhaplai!$'

FNAME DB 'C:\emu8086\MyBuild\AT3a',0

.CODE

Main PROC

;đưa địa chỉ segment của MSG và FNAME vào DS thông qua AX

MOV AX, @DATA

MOV DS, AX

BD:

MOV AH,01h

INT 21h

;so sanh

CMP AL,'h'

JE An

CMP AL, 'H'

JE An

CMP AL, 's'

JE Hien

CMP AL, 'S'

JE Hien

CMP AL, 'x'

JE Dung

CMP AL, 'X'

JE Dung

; in ra thông báo nhập lại

LEA DX, MSG

MOV AH, 9

INT 21h

JMP BD

An:

MOV AH, 43h

MOV AL, 1

LEA DX, FNAME

MOV CX, 2

INT 21h

JMP Dung

Hien:

MOV AH, 43h

MOV AL, 1

LEA DX, FNAME

MOV CX, 0

INT 21h

Dung:

MOV AH, 4Ch

INT 21h

Main ENDP

END Main

Đề 2. Câu 8

Viết chương trình thực hiện công việc sau:

-Khj người dùng nhấn chuột trái ẩn con trỏ trên màn hình

-khj người dùng nhấn chuột phải để hiển thi con trò trên màn hình

-Khj người dùng nhấn đồng thời 2 phím chuột trái và phải thì thông báo :

"Hai phím chuột được nhấn " và kết thúc chương trình.

.MODEL SMALL

.STACK 100h

.DATA

MSG DB 'Hai phim chuot duoc nhan$'

.CODE

MAIN PROC

MOV AX, @DATA

MOV DS, AX

MOV AX, 00h ; kích hoạt chuột

INT 33h

BD:

MOV AX, 03h ; đọc trạng thái chuột

INT 33h

;kiểm tra trạng thái các phím chuột

CMP BX, 1

JE An

CMP BX, 2

JE Hien

CMP BX, 3

JE Dung

JMP BD

An:

MOV AX, 02h

INT 33h

JMP BD

Hien:

MOV AX, 01h

INT 33h

JMP BD

Dung:

LEA DX, MSG ; in ra thông báo

MOV AH, 9

INT 21h

MOV AH, 4Ch

INT 21h

MAIN ENDP

END MAIN

Đề 2: 7.Cho bảng FAT như hình dưới đây

0 1 2 3 4 5 6 7 8 9

0 3 6 4 2 FF 9 FF 0 7

Biết điểm nhập của một file nào đó trong thư mục

cho biết chỉ số cluster đầu tiên của file là 1.

Cho biết chuỗi cluster được phân bố cho file này.

Biết dung lượng một sector là 512byte,mỗi cluster gồm 10 sector.

tính dung lượng của file trên.(8 * 10 * 512 byte)

-chuỗi cluster: 1-3-4-2-6-9-7-FF (8 cluster tất cả)

-tính dung lượng của file trên.(8 * 10 * 512) byte.

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: #cuong#đẻ