ĐỀ CƯƠNG ĐÁP ÁN LẬP TRÌNH HỆ THỐNG VÀ GHÉP NỐI THIẾT BỊ ASSEMBLY,ĐẦY ĐỦ CODE - Pdf 15

Mục lục
1
Câu 1:So sánh tốc độthực hiện của chương trình khi sử dụng chương trình con
khi khai báo là near và far trong Assembly?
NEAR: chương trình con được gọi thì địa chỉ offset(16 bit) được lấy từ ngăn xếp để
gán cho thanh ghi IP. Chương trình con và chương trình gọi nó trên cùng một
đoạn(segment).
FAR: thì chỉ lấy địa chỉ Segment offset trong ngăn xếp được lấy để gán cho thanh
ghi CS và IP. Chương trình con và chương trình chính trong các đoạn khác nhau.
 Như vậy khi sử dụng chương trình con khai báo near thì chương trình sẽ thực
hiện nhanh hơn.
Câu 2: phân biệt giữa file và thư mục con. Phân biệt điểm nhập file trong thư
mục và điểm nhập file trong FAT?
-Thư mục con: dưới mỗi thư mục gốc chứa các thu mục con và file trực thuộc.
trong thư mục con lại có thư mục con của nó là file trực thuộc nó. Mỗi thư mục con
chỉ có 1 tên duy nhất.
-File là nơi lưu trữ thông tin bao gồm dữ liệu, chương trình, văn bản…mỗi file có
một tên riêng phân biệt, bao gồm 2 phần: phần tên và phần mở rộng (.exe, .doc, .txt,
.iso, …).
*,Điểm nhập file trong thư mục:
Dos tạo một điểm nhập 32byte cho mỗi file trong thư mục. Cấu trúc mỗi điểm
nhập:
-07: Tên file, byte 0 dùng làm byte trạng thái
-8-10: Phần mở rộng
-11: Thuộc tính
-12-21: Để mở rộng
-22-23: Giờ tạo (h:m:s)
-25: Ngày tạo (y:m:d)
-26-27: Số hiệu cluster đầu tiên
28-31: Kích thước file theo byte
=> Vừa là địa chỉ cluster đầu tiên của file trong vùng dữ liệu vừa là số thứ tự của

thống là gì
PIT: programmable Interval Timer: bộ đếm khoảng thời gian lập trình được.
Nhiệm vụ: đếm khoảng thời gian từ một thời điểm nào đó.
Trong họ PC-IBM, PIT 8253/8354 thường dùng để:
- Tạo xung đồng bộ hệ thống: cho xung định thời gian bởi bộ đếm 0 với lối ra
OUT0, lối vào từ máy xung nhịp.
- Tạo xung điều khiển ngắt để điều khiển việc làm tươi DRAM bởi bộ đếm 1.
- Tạo xung âm thanh ra loa hay báo thức bởi bộ đếm 2 với lối ra OUT0
4
Câu 6:Phân loại ngắt?
 Cách 1: Phân loại dựa vào việc kích hoạt ngắt: có ngắt cứng, ngắt mềm, ngắt
lôgic( ngoại lệ)
 Ngắt cứng: sử dụng làm phương pháp vào / ra dữ liệu, trong đó thiết bị vào /
ra (thiết bị vật lý: bàn phím, máy in , đồng hồ nhịp thời gian v.v ) chủ động
khởi động quá trình vào / ra. Quá trình phục vụ ngắt cứng được kích hoạt
bằng một tín hiệu vật lý từ bên ngoài.
 Ngắt mềm: là ngắt được kích hoạt bằng các chương trình để gọi các chương
trình con phục vụ ngắt thông qua chỉ thị INT.
 Ngắt lôgic(Ngoại lệ): là ngắt do chính CPU phát ra khi nó gặp lỗi. Ví dụ phép
chia cho 0, tràn bộ nhớ
 Cách 2: Theo sự nhận biết ngắt của CPU: ngắt che được và ngắt không che được
 Ngắt che được(Maskable): có thể thiết lập để CPU nhận biết hoặc không thể
nhân biết được ngắt dựa vào cờ IF. Nếu IF=1, CPU có thể nhận biết ngắt,
IF=0, CPU không thể nhận biết được; nghĩa là khi có yêu cầu ngắt CPU vẫn
làm việc bình thường
 Ngắt không che được( Non Maskable): CPU luôn nhận biết được khi có yêu
cầu ngắt, việc thiết lập cờ IF không ảnh hưởng gì
Câu 7:PIC 8259 sửdụng đểlàm gì. Nhiệm vụcủa các chân IR0, IR1, … IR7,
INTR, INTA của PIC 8259?
 PIC 8259 là một vi mạch điện tử khả trình được thiết kế để giúp CPU thực

đầy chưa; tính dung lượng ổ đĩa lãng phí?
Khi kích thước file nhỏ hơn Cluster, DOS vẫn dành cho file cả một Cluster.
Theo đề bài thì trên đĩa có 8 file chiếm 8 Cluster vậy dung lượng cần dung
cho 8 file này là 8*10=80 KB. 80+20=100 KB vậy theo cách quản lí của DOS
thì ổ đĩa đã đầy.
Dung lượng ổ đĩa lãng phí là: 80-8*5=40KB.
câu 10: bản chất địa chỉ ô nhớ là gì? Không gian địa chỉ vật lí của mỗi hệ thống
máy tính phụ thuộc vào cái gì?
- Coi các bộ nhớ như là ma trận vuông cấp n thì mỗi ô là một đị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ớ được 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.
- Không gian địa chỉ vật lí của mỗi hệ thống máy tính phụ thuộc vào độ
rộng address bus
6
Câu 11: Mỗi file có bao nhiêu điểm nhập file trong thưmục. Giảsử1 file có kích
thước 155KB, biết kích thước một cluster là 10KB. Xác định dung lượng cần
thiết trên ổ đĩa đểlưu trữ file?
- Mỗi file có một điểm nhập file trong thư mục có kích thước 32byte.
- Vì kích thước của file nhỏ hơn kích thước 1 cluser nên ta chia file này
thành nhiều file nhỏ có kích thước nhỏ hơn hoặc bằng cluser. Ở đây chia
file thành 15 file có kích thước mỗi file là 10KB và một file còn lại có kích
thước 5 KB. Vậy cần phải dùng 16 cluser do đó dung lượng cần thiết trên ổ
đĩa để lưu trữ file là 16*10=160 KB.
Câu 12: Phân biệt đơn vị lưu thông tin giữa ổ đĩa và RAM?
- -Ổ đĩa:Thông tin tổ chức trên các mặt đĩa theo các rãnh, rãnh được chia
thành các cung.
- Dung lượng đĩa = số mặt * số rãnh trên một mặt * số cung trên một rãnh *
số byte trên một cung.

2. Ví dụ: địa chỉ bắt đầu của chuỗi tại offset 56 thì sẽ bắt đầu in chuỗi từ vị trí
58.
Chức năng 09h của ngắt 21 sẽ in chuỗi cho đến khi gặp kí tự kết thúc $ thì
dừng lại nhưng ở đây khi nhập vào chức năng 0Ah k thể tự đống thêm kí tự $.
Như vậy không thể in ra chuỗi vì 2 lí do: thiếu kí tự kết thúc chuỗi($) và vùng
nhớ chứa xâu không thay đổi.
Câu 17. Sử dụng bộ đếm 2 của PIT (Programable Interval Timer) để tạo âm
thanh, tính min, max của số đếm N sao cho âm thanh tạo ra có thể nghe được
biết ngưỡng nghe của người từ 16Hz đến 20000Hz và tần số máy phát xung là
1GHz

- Ta có : f(out)=16Hz-20000Hz và f(máy phát xung)=1GHz
 N(min)=10^9/16=62500000
 N(max)=10^9/20000=50000
8
Câu 18: Cho biết ổ đĩa mềm có dung lượng chưa sửdụng là 100KB, kích thước
mỗi cluster là 2 sectors, kích thước mỗi sector là 7.5KB. Cho một file có kích
thước 95KB. Hỏi có thể lưu trữfile này trên ổ đĩa mềm không. Giải thích
- Cluster là đơn vị lưu trữ lôgic nhỏ nhất. Mỗi file được chia thành
các đơn vị lưu trữ lôgic nhỏ hơn là cluster. Một file có ít nhất một
cluster
- Do đó không thể lưu trữ file trên đĩa mềm
o Kích thước một cluster = 2*7.5KB
o Số cluster cần thiết để lưu trữ file = [95/15] = 7
o Số cluster còn trống = lấy cận dưới (100/15) = 6
Câu 19. Trong chương trình sử dụng nhiều Macro có ảnh hưởng đến tốc độ
thực hiện không. Giải thích
Nếu trong chương trình sử dụng nhiều Macro thì nó sẽ không ảnh hường tới tốc độ
thực hiện bởi vì macro là tên thay thế cho một nhóm các câu lệnh có nhiều đoạn mã
giống nhau trong một chương trình , nó được chèn thẳng vào chương trình tại vị trí

 Có 256 ô, các ô được đánh số thứ tự từ 00h, 01h, …FFH.Số thứ tự của
từng ô trong bảng đượ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 phuc vụ ngắt
xác định, các địa chỉ này còn được gọi là véc tơ ngắt .Vector ngắt là các
biến bộ nhớ dài 4 bytes mà có khả năng chứa được một địa chỉ lôgic đầy
đủ gồm 2 byte segment và 2 byte offset
 Các vector ngắt được xếp nối tiếp nhau kể từ đầu của vùng bộ nhớ tạo
thành bảng vector ngắt .Chiều dài của bảng vector ngắt là 256*4=1024
hay 400h. Bảng vector ngắt sẽ nằm trong vùng bộ nhớ có địa chỉ vật lý
từ 00000h đến 003FFh
Quá trình phục vụ ngắt là quá trình gọi và thực thi các chương trình con phục vụ
ngắt( Interup Routines)
 Các chương trình phục vụ ngắt đều có đặc điểm: Hầu hết đã được viết
sẵn (là các ctr của hệ điều hành )và Địa chỉ của các ctr con này phải
được đặt ở một vùng nhớ xác định gọi là bảng véc tơ ngắt
Mô tả tiến trình thực hiện khi ngắt xảy ra.
 Tiến trình ngắt:
1. Công việc chính đang thực hiện
2. Lưu trữ trạng thái CPU và địa chỉ trở về của ctr chính (trạng thái CPU
được quy định bởi giá trị trong tập thanh ghi của CPU). Yêu cầu ngắt.
3. Thực hiện chương trình con phục vụ ngắt
4. Khôi phục trạng thái ctr chính
5. Tiếp tục thực hiện ctr chính
11
Câu 23: Mô tả quá trình hoạt động của máy từ khi bắt đầu nhấn nút bật máy
đến khi nạp xong hệ điều hành. Tại sao Boot sector luôn được nạp vào địa chỉ
7C00h?
1. Mô tả quá trình hoạt động của máy từ khi bắt đầu nhấn nut bật máy đến khi
nạp xong hệ điều hành.
- sau khi nguồn được cung cấp cho máy tính.

và tất cả các thanh ghi đoạn đều phải chỉ tới vùng PSP này. Vì thếđịa chỉ bắt
đầu của tập tin COM phải có địa chỉđộ dời là 100h.
2. Dạng EXE:
- Chương trình lớn và nằm ở nhiều đoạn khác nhau.
- Có thể gọi các chương trình con dạng Far.
- Kích thước tập tin tùy ý.
- Có header ởđầu tập tin để chứa các thông tin điều khiển cần thiết.
- Thi hành chậm hơn tập tin dạng COM.
- Tập tin dạng EXE, không dùng lệnh ORG 100h ởđầu chương trình.
• Tại sao với chương trình dịch ra dạng EXE đầy đủ đã có chỉ thị Assume chỉ
dẫn nạp địa chỉ đoạn dữ liệu vào thanh DS mà trong chương trình vẫn phải
nạp lại địa chỉ đoạn dữ liệu vào thanh DS :
Assume: lệnh này cho biết một đoạn nào đó thuộc loại gì. Ví dụ: assume
ds:data, cs:code dùng để báo cho hợp ngữ biết đoạn có tên data là đoạn ds và
đoạn có tên code là đoạn cs và như vậy mỗi lần liên hệ đến một nhãn, biến thì
ta phải báo cho biết đoạn của chúng (vd : assume ds :nhan cho biết nhan thuộc
đoạn ds)
Vì vậy khi khai báo assume thì chỉ cho biết cái đoạn mình khai báo
thuộc CS,DS,SS,ES nên trong đoạn chương trình ta phải nạp địa chỉ đoạn dữ
liệu vào thanh ghi DS thông qua AX.
13
Câu 25. Bản chất của việc lập trình trao đổi thông tin giữa CPU và khối ghép
nối thiết bị là gì. Trình bày nguyên lý lập trình điều khiển thiết bị ngoại vi
thông qua khối ghép nối, minh hoạ bằng việc mô tả hoạt động lập trình trực
tiếp bàn phím
TL: ????
Bản chât là trao đổi thông tin giữa mỗi chip của khối ghép nối luôn đăcn trưng bởi
tập lệnh và các thanh ghi giao diện (thanh ghi trạng thái, lệnh, dữ liệu). CPU muốn
ra lệnh cho khối ghép nối thực hiện công việc chỉ cần đưa chỉ thị ra địa chỉ thanh
ghi lệnh (của khối ghép nối) muốn trao đổi thông tin cần đọc ghi từ địa chỉ thanh

của CPU đó.
- Bản chất của quá trình chuyển điều khiển chương trình: CPU lưu lại trạng thái
hiện thời của thanh ghi vào ngăn xếp -> nạp giá trị mới là địa chỉ mã lệnh đầu tiên
của chương trình con . Sau khi thực hiện xong sẽ quay lại chương trình chính( nạp
lại giá trị ở ngăn xếp)
Câu 29. Giả sử ổ đĩa có dung lượng 1000KB trong đó 200KB dành cho bảng
FAT, Sector Boot và thư mục gốc. Kích thước mỗi Cluster là 100KB. Theo
cách quản lý của DOS, tính số lượng tối đa các file có thể lưu trữ trên ổ đĩa
TL:
Dung lượng dành cho phần data là: 1000-200= 800 kb
 Số file tối đa có thể lưu trữ trên ổ đĩa : 800: 100= 8 ( file).
15
Câu 30. Mô tả quá trình nhận dữ liệu giữa thiết bị ngoại vi và máy vi tính
theo chế độNibble ở hình dưới đây:
TL: Các giai đoạn nhận dữ liệu giữa TBNV và MVT:
1-máy chủ báo sẵn sàng nhận bằng cách đưa hostbusy về 0
2-TBNV đặt nibble đầu tiên lên các tín hiệu trạng thái
3-TBNV báo nibble có giá trị bằng cách đặt PtrClk=0
4-Máy chủ đưa hostbusy =1 báo đã nhận nibble và chưa sẵn sàng nhận nibble
mới
5-TBNV đưa PtrClk =1 để báo cho máy chủ
6- các bước 1-5 lặp lại cho nibble sau
Câu 31. Biết tần số của máy phát xung là 1GHZ, tính tần số của đồng hồ hệ
thống khi số đếm N = 1000. Mô tả hoạt động của bộ đếm 1 và xác định chu kỳ
làm tươi DRAM của bộ đếm 1 trong PIT (Progamable Interval Timer) khi số
đếm N = 100(phần tính chu kỳ làm tươi cần xem lại)
TL:
-Tần số của đồng hồ hệ thống:
Fout= Fin/N= 10^9: 1000= 1 MHz
-Hoạt động của bộ đếm 1:

được xác định bằng địa chỉ tương đối (offset) hay là khoảng cách từ ô nhớ đến địa
chỉ đầu của đoạn. Mà địa chỉ vật lý là địa chỉ xác định vị trí thực của 1 ô nhớ => ta
chuyển từ địa chỉ logic sang địa chỉ vật lý như công thức trên.
18
Câu 35. Ngắt 1Ah của BIOS có chức năng 04h sử dụng để lấy thời gian thực.
Sau khi thực hiện chức năng này, các tham số ra như sau: CH=00100011,
CL=00110011, DH=00010010, DL=00000011. Cho biết ngày, tháng, năm hiện
tại.
TL: các thanh ghi chứa giá trị thế kỷ, năm , ngày , tháng theo mã BCD nên:
CH = 0010 0011 và CL= 0011 0011 => năm : 2233
DH= 0001 0010 => tháng: 12
DL= 0000 0011=> ngày: 3
Ngày tháng năm hiện tại : 3-12-2233
Câu 36. Mô tả hoạt động của bàn phím. Ngắt 09h do CPU hay chip bàn phím
thực hiện. Bộ đệm bàn phím (typehead buffer) chứa trong bàn phím hay trong
RAM
TL:
-Hoạt động:
Khi nhấn một phím và chương trình thi hành đang đọc nó; tiến trình như sau:
1. Bàn phím gửi ngắt 09h đến CPU yêu cầu trao đổi tin
2. Chương trình phục vụ ngắt 09h đọc từ cổng vào/ra và chứa vào trong bộ đệm.
3. Chương trình hệ thống hoặc ứng dụng có thể sử dụng các ngắt của hệ điều
hành để đọc các giá trị này
-Bộ đệm bàn phím (type head buffer ) chứa trong bàn phím.
-Ngắt 09h do CPU thực hiện.
19
Bài 1. Ẩn hiện file
inxau macro x
mov ah,09h
lea dx,x

cmp al,'s'
je hien
cmp al,'x'
je xoa
cmp al,'X'
je xoa
jmp nhap
tao:
mov ah,3ch
lea dx,FileName
mov cx,00h
int 21h
20
mov bx,ax
mov ah,3eh
int 21h
jmp nhap
xoa:
mov ah,41h
lea dx,FileName
int 21h
jmp nhap
hien:
mov ah,43h
mov al,1
lea dx,FileName
mov cx,0
int 21h
inxau b3
jmp nhap

.code
main proc
mov ax,@data
mov ds,ax
mov ax,00h
int 33h
inxau b1
batdau:
mov ax,03h
int 33h
cmp bx,01h
jz an
cmp bx,02h
jz hien
cmp bx,03h
jz cahai
jmp batdau
hien:
mov ax,01h
int 33h
inxau b2
jmp batdau
an:
mov ax,02h
int 33h
inxau b3
jmp batdau
22
cahai:
inxau b4

print so2
print so3
batdau:
print so4
mov ah,01h
int 21h
cmp al,'1'
je veduongthang
cmp al,'2'
je vehinhchunhat
cmp al,'3'
je ketthuc
jmp batdau
veduongthang:
mov ah,00h
mov al,13h
int 10h
mov cx,100
mov dx,100
mov ah,0ch
mov al,04h
lap:
int 10h
inc cx
cmp cx,200
24
jl lap
jmp batdau
vehinhchunhat:
mov ah,00h

end
25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status