Chỉ thông qua thamh ghi Tham khảo: Slide 6, Bài học số 2 3 Bài 3: Liên kết ngôn ngữ Assembly với các ngôn ngữ bậc cao Cần viết 1 chương trình con để giải quyết cùng một vấn đề.. Có và
Trang 11
Bài 1: Ngôn ngữ Assembly và cách lập
trình
Bước nhảy của các lệnh nhảy có điều kiện phải
Chọn một câu trả lời:
a 64k
b Không giới hạn
c 128 byte
Tham khảo: Slide số 29, Bài học số 1
Các lệnh trong nhóm di chuyển dữ liệu khi thực hiện có
làm thay đổi trạng thái các bit cờ không?
Chọn một câu trả lời:
a Tùy tình huống
b Không
c Có
Tham khảo: Trang số 2 phần phụ lục A, Tài liệu học tập
“Lập trình hệ thống”, Bản Text
Các thanh ghi của máy tính 32 bit có độ dài bao nhiêu bit?
Chọn một câu trả lời:
a Tất cả đều có độ dài 32 bit
b Tất cả các thanh ghi đều có độ dài 32 bit trừ các
thanh ghi đoạn (segment) vẫn là 16 bit
c Tất cả đều có độ dài 16 bit
Tham khảo: Slide số 10, Bài học số 1
Có thể sử dụng dạng cơ số nào để thể hiện 1 hằng số
trong lập trình Assembly?
Chọn một câu trả lời:
a Tất cả các dạng cơ số nêu trên
b Dạng nhị phân (cơ số binary)
c Dạng bát phân (cơ số 8)
d Dạng hexa (cơ số 16)
e Dạng thập phân (cơ số 10)
Tham khảo: Trang số 22, Tài liệu học tập “Lập trình hệ
thống”, Bản Text
Có thể sử dụng mấy dạng directive điều khiển segment
trong khi viết chương trình hợp ngữ ?
Chọn một câu trả lời:
a 3 dạng
b Chỉ 1 dạng đơn giản
c 2 dạng: đơn giản và chuẩn
d Chỉ 1 dạng chuẩn
Tham khảo: Slide số 31, Bài học số 1
CX chứa số lần lặp của lệnh LOOP Vậy CX có thể là một giá trị
Chọn một câu trả lời:
a 1≤CX≤32767
b Tất cả các phương án
c Bất kỳ số nào
d CX≥0 Tham khảo: Trang 26 phần phụ lục A, Tài liệu học tập “Lập trình hệ thống”, Bản Text
Directive nào xác lập biến 2 byte ? Chọn một câu trả lời:
a DD
b DW
c DB Tham khảo: Slide số 32, Bài học số 1
Đây là loại khai báo biến gì ? DATA
A DW 10 dup(?) Chọn một câu trả lời:
a A là biến số có độ dài 10 byte
b A là biến số 2 byte được gán giá trị ban đầu là 10
c A là 1 trường số có 10 thành phần mà mỗi thành phần là 2 byte không xác lập giá trị ban đầu
Tham khảo: Slide số 33, Bài học số 1
Hai thanh ghi nào trong các tổ hợp sau trỏ đến địa chỉ vùng nhớ chứa mã lệnh sẽ được thi hành kế tiếp ? Chọn một câu trả lời:
a SS:SP
b CS:IP
c ES:DI
d DS:SI Tham khảo: Slide số 9, Bài học số 1
Khi viết một chương trình hợp ngữ có thể sử dụng 2 loại directive điều khiển segment là dạng đơn giản
(.MODEL, STACK, DATA, CODE) và dạng chuẩn (SEGMENT, GROUP, ASSUME) Loại nào có thể xử lý mọi tình huống về điều khiển segment ?
Trang 2Chọn một câu trả lời:
a Cả hai dạng
b Dạng chuẩn
c Dạng dơn giản
Tham khảo: Slide số 37, Bài học số 1
Khi viết một chương trình hợp ngữ sử dụng directive điều
khiển segment dạng đơn giản và có khai báo biến thì
người lập trình có phải đưa phần địa chỉ segment của dữ
liệu vào thanh ghi DS ?
Chọn một câu trả lời:
a Tùy tình huống
b Có và nhờ 2 lệnh sau :
mov reg16,data
mov DS,reg16
c Có và nhờ 2 lệnh sau :
mov reg16,@data mov DS,reg16
d Không, hệ điều hành sẽ tự đưa
Tham khảo: Slide số 33, Bài học số 1
Khi viết một chương trình hợp ngữ sử dụng directive điều
khiển segment dạng chuẩn và có khai báo biến thì người
lập trình có phải đưa phần địa chỉ segment của dữ liệu vào
thanh ghi DS ?
Chọn một câu trả lời:
a Có và nhờ 2 lệnh sau :
mov reg16,@data mov DS,reg16
b Tùy tình huống
c Không, hệ điều hành sẽ tự đưa
d Có và nhờ 2 lệnh sau :
mov reg16,data
mov DS,reg16
Tham khảo: Slide số 38, Bài học số 1
Lệnh AND AX,AX có nghĩa gì không?
Chọn một câu trả lời:
a Giá trị AX không đổi song dựng trạng thái các bit cờ,
phục vụ các lệnh nhảy có điều kiện
b Vô nghĩa
c Xóa trạng thái các bit cờ
d Tất cả các phương án
Tham khảo: Slide 21, Bài học số 1
Lệnh nhảy JMP là loại lệnh nhảy gì và có bước nhảy bao
nhiêu byte?
Chọn một câu trả lời:
a Có điều kiện và bước nhảy là không giới hạn
b Không điều kiện và có bước nhảy 64 k Tham khảo: Slide số 28, Bài học số 1
Lệnh SAR AX,1 (dịch phải một lần nội dung có trong thanh ghi AX) có nghĩa gì?
Chọn một câu trả lời:
a Chia đôi giá trị có trong AX nếu AX chứa số nguyên
b Tất cả các phương án
c Chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên
d Chỉ chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên dương
Tham khảo: Slide số 24, Bài học số 1
Lệnh SHR AX,1 (dịch phải một lần nội dung có trong thanh ghi AX) có ý nghĩa gì?
Chọn một câu trả lời:
a Chia đôi giá trị có trong AX nếu AX chứa số nguyên dương
b Chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên dương
c Chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên
d Tất cả các phương án Tham khảo: Slide số 23, Bài học số 1
Lệnh SHL AX,1 (dịch trái một lần nội dung có trong thanh ghi AX) có ý nghĩa gì?
Chọn một câu trả lời:
a Chia đôi giá trị có trong AX
b Nhân đôi giá trị có trong AX với điều kiện bit cao nhất là 0 (AX chứa số nguyên dương)
c Nhân đôi giá trị có trong AX
d Tất cả các phương án Tham khảo: Slide số 23, Bài học số 1
Thường có mấy dạng biểu diễn địa chỉ một ô nhớ ? Chọn một câu trả lời:
a 1 dạng duy nhất là lôgic
b 2 dạng: dạng lôgic và dạng vật lý
c 1 dạng duy nhất là vật lý Tham khảo: Slide số 10, Bài học số 1
Toán hạng 2 byte có thể chứa một số nguyên có giá trị bao nhiêu?
2
Trang 3Chọn một câu trả lời:
a Từ số 0 đến số 65535
b Từ số -32768 đến số 0
c Từ số -32768 đến số 32768
d Từ -32768 đến 32767
e Từ số -32767 đến số 32768
Tham khảo: Ví dụ ở trang 52, Tài liệu học tập “Lập trình hệ
thống”, Bản Text
Trong các lệnh MUL/IMUL (16bit với 16 bit) thì một số
hạng nhân có bắt buộc nằm trong AX hay không ?
Chọn một câu trả lời:
a Có
b Không
c Tùy tình huống
Tham khảo: Slide số 19, Bài học số 1
2
Bài 2: Chương trình con và Chương
trình đa tệp thuần túy Assembly
Chương trình đa tệp thuần túy hợp ngữ phải sử dụng các
directive nào để các nhãn dùng (các nhãn mà các module
đều dùng) chung hiểu nhau ?
Chọn một câu trả lời:
a Chỉ sử dụng directive PUBLIC
b Tất cả các phương án
c Chỉ sử dụng directive EXTRN
Tham khảo: Slide 32, Bài học số 2
Chương trình đa tệp thuần túy hợp ngữ thì module nào
khai báo PUBLIC cho tên chương trình con mà các
module đều dùng ?
Chọn một câu trả lời:
a Module nào cũng được
b Module sử dụng chương trình con (module gọi
chương trình con)
c Module viết chương trình con
Tham khảo: Slide 32, Bài học số 2
Chương trình đa tệp thuần túy hợp ngữ thì với nhãn là tên
các biến nhớ thì việc khai báo PUBLIC các nhãn dùng
chung đó được tiến hành ở đâu ?
Chọn một câu trả lời:
a Chỉ ở module chương trình con
b Chỉ ở module của chương trình chính
c Ở module nào cũng được
Tham khảo: Slide 32, Bài học số 2
Chương trình đa tệp thuần túy hợp ngữ thì với nhãn là tên các biến nhớ thì việc khai báo EXTRN các nhãn dùng chung đó được tiến hành ở đâu ?
Chọn một câu trả lời:
a Ở module nào cũng được
b Chỉ ở module chương trình con
c Chỉ ở module của chương trình chính Tham khảo: Slide 32, Bài học số 2
Chương trình con và macro thì loại nào cho phép có đối? Chọn một câu trả lời:
a Chương trình con
b MACRO
c Cả hai Tham khảo: Slide 3 và 12, Bài học số 2 Chương trình con và macro thì loại nào thực hiện nhanh hơn?
Chọn một câu trả lời:
a MACRO
b Chương trình con
c Bằng nhau Tham khảo: Slide 15, Bài học số 2 Chương trình con và macro thì loại nào tiết kiệm vùng nhớ?
Chọn một câu trả lời:
a MACRO
b Bằng nhau
c Chương trình con Tham khảo: Slide 15, Bài học số 2 Directive INCLUDE chèn nội dung 1 tệp ngoài vào chương trình đang viết Nếu sử dụng directive INCLUDE nhiều lần nội dung 1 tệp ngoài vào chương trình thì trong nội dung của tệp ngoài có cho phép có nhãn nhảy hay không ? Chọn một câu trả lời:
a Có
b Không
c Tùy tình huống Tham khảo: Suy luận từ tên nhãn là duy nhất trong một chương trình
Giả thiết có 1 đoạn chương trình như sau : DATA
A DW 100 dup(?) CODE
Trang 4LEA BX,A
Vậy nội dung thanh ghi BX chứa gì ?
Chọn một câu trả lời:
a Giá trị A[0]
b Phần địa chỉ OFFSET của A[99] (địa chỉ thành phần
cuối cùng của trường)
c Phần địa chỉ OFFSET của A[0] (địa chỉ thành phần
đầu tiên của trường)
Tham khảo: Suy luận từ khai báo một trường số và Bài tập
ở trang 93,94 của Tài liệu học tập “Lập trình hệ thống”,
Bản Text …
Khối lệnh trong thân MACRO có cho phép có nhãn nhảy
hay không ?
Chọn một câu trả lời:
a Không
b Có trong bất kỳ tình huống nào
c Có song nhãn đó phải được khai báo sau directive
LOCAL
Tham khảo: Slide 14, Bài học số 2
Liên kết giữa ngôn ngữ bậc cao và hợp ngữ theo cách
Inline Assembly thực hiện như thế nào ?
Chọn một câu trả lời:
a Chèn khối lệnh ngôn ngữ bậc cao vào chương trình
được viết bằng hợp ngữ
b Chèn khối lệnh hợp ngữ vào chương trình được viết
bằng ngôn ngữ bậc cao
Tham khảo: Slide 3, Bài học số 2
Một chương trình dạng COM có bắt buộc sử dụng
directive ORG 100h không?
Chọn một câu trả lời:
a Không cần
b Tùy tình huống
c Bắt buộc phải có
Tham khảo: Slide 18, Bài học số 2
Một chương trình dạng COM có thể chứa bao nhiêu phân
đoạn (seggment) và đó là phân đoạn nào?
Chọn một câu trả lời:
a 2 phân đoạn và đó là code segment và data
segment
b 1 phân đoạn duy nhất và đó là code segment
c phân đoạn và đó là code, data và stack segment Tham khảo: Slide 17, Bài học số 2
Một chương trình dạng COM, nếu có khai báo biến thì biến sẽ được cấp phát ô nhớ của vùng nhớ dành cho phân đoạn (seggment) nào?
Chọn một câu trả lời:
a Phân đoạn vùng nhớ dành cho dữ liêu (data segment)
b Phân đoạn vùng nhớ dành cho mã máy của CT (code segment)
c Phân đoạn vùng nhớ dành cho ngăn xếp (stack segment)
Tham khảo: Slide 17, Bài học số 2 Một chương trình dạng EXE có thể chứa ít nhất bao nhiêu phân đoạn (segment) ?
Chọn một câu trả lời:
a 1 phân đoạn
b 2 phân đoạn
c 3 phân đoạn Tham khảo: Slide 17, Bài học số 2 Thay vì phải viết đi viết lại nhiều lần 1 khối lệnh trong 1 chương trình thì sử dụng directive INCLUDE để chèn khối lệnh đó từ 1 tệp ngoài vào chương trình đang viết Hãy cho biết khi sử dụng directive INCLUDE như vậy thì có tiết kiệm được vùng nhớ hay không khi chèn khối lện đó nhiều lần?
Chọn một câu trả lời:
a Tùy tình huống
b Có
c Không Tham khảo: Suy luận cơ chế thực hiện từ Slide 16, Bài học số 2
Trong chương trình đa tệp khi có 1 tệp sai khi dịch thì trước khi liên kết phải dịch lại như thế nào ?
Chọn một câu trả lời:
a Chỉ cần dịch lại tệp có sai khi dịch
b Dịch lại tất cả các tệp Tham khảo: Slide 38, Bài học số 2 Trong hai cách trở về DOS từ một chương trình hợp ngữ sau:
Cách 1: MOV AH,4CH INT 21H
Cách 2: INT 20H thì chương trình dạng COM có thể sử dụng cách nào?
4
Trang 5Chọn một câu trả lời:
a Cách 2
b Cả hai cách
c Cách 1
Tham khảo: Slide 18, Bài học số 2
Trong hợp ngữ một công việc được thể hiện bằng một
chương trình con có thể thay bằng 1 macro hoặc ngược
lại được không?
Chọn một câu trả lời:
a Tùy tình huống
b Được
c Không
Tham khảo: Suy luận từ bài học về CT con và MACRO
Với chương trình hợp ngữ được viết theo khai báo
directive điều khiển segment dạng chuẩn thì khi viết
chương trình con không khai báo tường minh NEAR/FAR
thì mặc định sẽ là gì?
Chọn một câu trả lời:
a Tùy tình huống
b NEAR
c FAR
Tham khảo: Slide 4, Bài học số 2
Với chương trình hợp ngữ được viết theo khai báo
directive điều khiển segment dạng đơn giản, khi viết
chương trình con không khai báo tường minh NEAR/FAR
thì trong các trường hợp khai báo sau chương trình con là
NEAR khi nào ?
Chọn một câu trả lời:
a Loại nào cũng được
b .MODEL large/
medium/ huge
c .MODEL tiny/
small/compact
Tham khảo: Slide 4, Bài học số 2
Với chương trình thuần túy hợp ngữ (chương trình chính
và chương trình con đều là hợp ngữ) thì việc chuyển giao
tham số giữa chương trình chính và chương trình con
thường có thể tiến hành như thế nào ?
Chọn một câu trả lời:
a Thông qua ngăn xếp
b Chỉ thông qua biến nhớ
c Thông qua thamh ghi, biến nhớ
d Chỉ thông qua thamh ghi
Tham khảo: Slide 6, Bài học số 2
3
Bài 3: Liên kết ngôn ngữ Assembly với các ngôn ngữ bậc cao
Cần viết 1 chương trình con để giải quyết cùng một vấn
đề Anh A “Tôi sẽ viết chương trình con không đối” Anh B
“Tôi sẽ viết chương trình con có đối” Ai đúng, ai sai ? Chọn một câu trả lời:
a Cả hai cùng có thể
b Anh A đúng
c Anh B đúng Tham khảo: Suy luận từ nguyên lý lập trình (bất kỳ ngôn ngữ nào)
Chương trình con thuần túy hợp ngữ (cả chương trình chính lẫn chương trình con đều là hợp ngữ) thì không có đối Vậy khi liên kết ngôn ngữ bậc cao với ngôn ngữ Assembly thì ngôn ngữ bậc cao có thể giả thiết chương trình con Assembly có đối hay không? Ai qui định số lượng đối và kiểu đối ?
Chọn một câu trả lời:
a Có và số lượng đối và kiểu đối do hợp ngữ quyết định
b Không
c Có và số lượng đối và kiểu đối do ngôn ngữ bậc cao giả thiết
Tham khảo: Slide 13, Bài học số 3 Khi liên kết ngôn ngữ C/C++ với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ C/C++ và tệp của hợp ngữ, với giả thiết chương trình con viết bằng hợp ngữ có đối thì khi C/ C++ gọi chương trình con đó các tham số thực sẽ được đưa vào ngăn xếp theo thứ tự như thế nào ?
Chọn một câu trả lời:
a Từ phải sang trái
b Từ trái sang phải
c Tùy tình huống Tham khảo:Slide 25, Bài học số 3 Khi liên kết với ngôn ngữ bậc cao với ngôn ngữ Assembly thì địa chỉ lệnh tiếp theo được cất vào ngăn xếp gồm mấy byte?
Chọn một câu trả lời:
a 4 byte
b 2 byte
c Nếu chương trình con là NEAR thì 2 byte, còn nếu chương trình con là FAR thì 4 byte
Tham khảo: Suy luận, Slide 14, Bài học số 3
Trang 6Khi liên kết ngôn ngữ bậc cao với hợp ngữ theo cách viết
riêng biệt tệp ngôn ngữ bậc cao và tệp của hợp ngữ thì
các nhãn dùng chung (ngôn ngữ bậc cao và hợp ngữ đều
dùng) Vậy nhãn ở đây là gì ?
Chọn một câu trả lời:
a Tên nhãn nhảy
b Tên ký hiệu (symbol) thay cho 1 hằng số
c Tên biến nhớ, tên chương trình con và tên ký hiệu
thay cho 1 hằng số
d Tên chương trình con
e Tên biến nhớ
Tham khảo:Slide 8 và suy luận, Bài học số 3
Khi liên kết ngôn ngữ bậc cao với hợp ngữ theo cách viết
riêng biệt tệp ngôn ngữ bậc cao và tệp của hợp ngữ thì
với các nhãn dùng chung (ngôn ngữ bậc cao và hợp ngữ
đều dùng) hợp ngữ có cần khai báo tường minh PUBLIC
để cho phép ngôn ngữ bậc cao dùng các nhãn đó ?
Chọn một câu trả lời:
a Tùy tình huống
b Tùy tình huống
c Cần
Tham khảo:Slide 9, Bài học số 3
Khi liên kết ngôn ngữ bậc cao với hợp ngữ theo cách viết
riêng biệt tệp ngôn ngữ bậc cao và tệp của hợp ngữ thì
với các nhãn dùng chung (ngôn ngữ bậc cao và hợp ngữ
đều dùng) ngôn ngữ bậc cao có cần khai báo tường minh
PUBLIC để cho phép hợp ngữ dùng các nhãn đó ?
Chọn một câu trả lời:
a Tùy tình huống
b Không cần vì bất kỳ một khai báo nào của n/n bậc
cao đều cho phép các module khác dùng
c Cần
Tham khảo:Slide 8, Bài học số 3
Khi liên kết ngôn ngữ bậc cao với hợp ngữ theo cách viết
riêng biệt tệp ngôn ngữ C/C++ bậc cao và tệp của hợp
ngữ thì với các nhãn dùng chung (ngôn ngữ C/C++ và hợp
ngữ đều dùng), ngôn ngữ C/C++ có cần khai báo tường
minh EXTERNAL (extern) để xin phép dùng các nhãn mà
hợp ngữ đã xác lập và cho phép ?
Chọn một câu trả lời:
a Cần
b Tùy tình huống
c Không cần Tham khảo:Slide 8, Bài học số 3 Khi liên kết ngôn ngữ bậc cao với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ bậc cao và tệp của hợp ngữ, với giả thiết hàm do hợp ngữ viết có đối thì chương trình con của hợp ngữ thường sử dụng nhất thanh ghi nào làm con trỏ để thâm nhập vào các biến (tham số thực đã được đưa vào ngăn xếp) ?
Chọn một câu trả lời:
a SP
b BP
c BX, SI hoặc DI Tham khảo:Slide 14, Bài học số 3 Khi liên kết ngôn ngữ bậc cao với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ bậc cao và tệp của hợp ngữ thì trong module hợp ngữ phải sử dụng directive nào để xin phép dùng một nhãn mà ngôn ngữ bậc cao đã xác lập và cho phép ?
Chọn một câu trả lời:
a Không cần directive nào cả
b Directive EXTRN
c Directive PUBLIC Tham khảo:Slide 9, Bài học số 3 Tên hàm Assembly khi liên kết với ngôn ngữ C và với ngôn ngữ C++ có khác nhau không?
Chọn một câu trả lời:
a Có: Khi liên kết với C thì tên hàm Assembly thêm dấu_ (underscore) trước tên hàm, còn với C++ thì thêm dấu @ trước tên hàm và $q… sau tên hàm
b Không, cả hai trường hợp đều thêm dấu _ (underscore) trước tên hàm
Tham khảo: Slide 9, 15, Bài học số 3 Tên hàm Assembly khi liên kết với ngôn ngữ C++ với trường hợp hàm có 1 đối là tham biến thì thêm gì sau
@tên hàm?
Chọn một câu trả lời:
a Thêm $qpi với đối là con trỏ NEAR (ví dụ:
@tênhàm$qpi) hoặc $qni với đối là con trỏ FAR (ví dụ:
@tênhàm$qni)
b Thêm $qi (ví dụ: @tênhàm$qi)
c Không thêm gì cả
d Thêm $qv (ví dụ: @tênhàm$qv) Tham khảo: Slide 9, Bài học số 3
6
Trang 7Tên hàm Assembly khi liên kết với ngôn ngữ C++ với
trường hợp hàm không đối thì thêm gì sau tên hàm?
Chọn một câu trả lời:
a Thêm $qv (ví dụ: @tênhàm$qv)
b Không thêm gì cả
c Thêm $qni (ví dụ: @tênhàm$qni)
d Thêm $qi (ví dụ: @tênhàm$qi)
Tham khảo: Slide 9, Bài học số 3
Tên hàm Assembly khi liên kết với ngôn ngữ C++ với
trường hợp hàm có 1 đối là tham trị thì thêm gì sau @tên
hàm?
Chọn một câu trả lời:
a Thêm $qi (ví dụ: @tênhàm$qi)
b Thêm $qni (ví dụ: @tênhàm$qni)
c Thêm $qv (ví dụ: @tênhàm$qv)
d Không thêm gì cả
Tham khảo: Slide 9, Bài học số 3
Thường có mấy cách để liên kết ngôn ngữ bậc cao với
hợp ngữ ?
Chọn một câu trả lời:
a 1
b 2
c 3
Tham khảo: Slide 2, Bài học số 3
Tính giá trị an bằng cách liên kết ngôn ngữ C/C++ với hợp
ngữ theo cách viết tách biệt tệp C/C++ và tệp Assembly
theo sự phân công sau:
Module C/C++ thực hiện các nhiệm vụ sau :
Nhận a, n từ bàn phím
Gọi chương tình con tính an do module hợp ngữ viết
Hiện kết quả
Module Assembly thực hiện nhiệm vụ sau : viết chương
trình con tính an
Với giả thiết hàm con tính an do Assembly viết không đối
thì chúng ta phải khai báo các biến a, n ở đâu?
Chọn một câu trả lời:
a Biến cục bộ
b Biến toàn cục (biến ngoài)
c Khai báo ở đâu cũng được
Tham khảo:Slide 20, Bài học số 3
Khi liên kết ngôn ngữ C/C++ với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ C/C++ và tệp của hợp ngữ thì trong module hợp ngữ có phải thêm dấu gì trước các biến
dùng chung với C/C++ ? (SAI)
Chọn một câu trả lời:
a Thêm dấu _ (dấu underscore) trước tên biến và thêm ở mọi nơi mà biến đó xuất hiện trong module hợp ngữ
b Không cần thêm gì
c Thêm dấu $ (SAI)
Khi liên kết ngôn ngữ C++ với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ C++ và tệp của hợp ngữ thì trong module hợp ngữ có phải thêm dấu gì trước tên chương
trình con ? (SAI)
Chọn một câu trả lời:
a Thêm @ vào trước tên chương trình con
b Thêm dấu _ (dấu underscore) vào trước tên chương
trình con (SAI)
c Không cần thêm gì Tính giá trị an bằng cách liên kết ngôn ngữ C/C++ với hợp ngữ theo cách viết tách biệt tệp C/C++ và tệp Assembly theo sự phân công sau:
Module C/C++ thực hiện các nhiệm vụ sau : Nhận a, n từ bàn phím
Gọi chương tình con tính an do module hợp ngữ viết Hiện kết quả
Module Assembly thực hiện nhiệm vụ sau : viết chương trình con tính an
Với giả thiết hàm do Assembly viết có 2 đối (a, n sẽ là tham số thực của hàm) thì trong module Assembly (viết hàm) có phải xin phép được dùng giá trị các biến a và n
(sử dụng directive EXTRN) hay không? (SAI)
Chọn một câu trả lời:
a Có thể và không bắt buộc (SAI)
b Bắt buộc phải có
c Không, hàm viết bằng Assembly phải vào ngăn xếp lấy giá trị a và n
Tính giá trị an bằng cách liên kết ngôn ngữ C/C++ với hợp ngữ theo cách viết tách biệt tệp C/C++ và tệp Assembly theo sự phân công sau:
Trang 8Module C/C++ thực hiện các nhiệm vụ sau:
Nhận a, n từ bàn phím
Gọi chương tình con tính an do module hợp ngữ viết
Hiện kết quả
Module Assembly thực hiện nhiệm vụ sau: viết chương
trình con tính an
Với giả thiết hàm do Assembly viết có 2 không đối (a, n sẽ
là tham số thực của hàm) thì trong module C/C++ a, n phải
khai báo ở đâu?
Chọn một câu trả lời: (SAI)
a Khai báo ở đâu cũng được
b Khai báo cục bộ trong main()
c Khai báo biến toàn cục (biến ngoài) (SAI)
4
Bài 4: Ngắt - cơ chế xác lập và kích
hoạt
Bảng vectơ ngắt chứa gì và nằm ở đâu?
Chọn một câu trả lời:
a Chứa địa chỉ đầu của các chương trình con phục vụ
ngắt và nằm ở RAM
b Chứa mã máy của các chương trình con phục vụ
ngắt và nằm ở ROM BIOS
c Chứa mã máy lệnh đầu tiên của các chương trình
con phục vụ ngắt và nằm ở ROM hoặc RAM đều được
Tham khảo: Slide 5, Bài học số 4
Biết rằng 1 chương trình con phục vụ ngắt của hệ thống
thường có nhiều chức năng Vậy muốn sử dụng 1 chức
năng nào đó của 1 ngắt hệ thống thì theo qui định số chức
năng sẽ được đặt vào đâu?
Chọn một câu trả lời:
a Thanh ghi AH
b Bất kỳ thanh ghi nào tùy người lập trình chọn
c Thanh ghi AL
Tham khảo: Slide 17, Bài học số 4
Byte có địa chỉ bao nhiêu của vùng dữ liệu ROM BIOS cho
biết các thông tin liên quan đến DMA, số lượng cổng
COM, số lượng cổng LPT, cổng joystick và cổng máy in
nối tiếp ?
Chọn một câu trả lời:
a 0:410h
b 0:400h
c 0:411h
Tham khảo: Slide 11, Bài học số 4 Byte có địa chỉ bao nhiêu của vùng dữ liệu ROM BIOS cho biết các thông tin liên quan đến ổ mềm (có hay không và nếu có thì bao nhiêu ổ), FPU, số lượng kRAM có thêm trên mainboard và loại card điều khiển màn hình ? Chọn một câu trả lời:
a 0:400h
b 0:411h
c 0:410h Tham khảo: Slide 10, Bài học số 4 Các ngắt của BIOS có số ngắt bao nhiêu và mã máy của chương trình con phục vụ ngắt nằm ở đâu?
Chọn một câu trả lời:
a Số ngắt từ int 20h đến int 0ffh và mã máy CT con phục vụ ngắt nằm ROM BIOS
b Số ngắt từ int 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở ROM BIOS
c Số ngắt từ int 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở RAM
d Số ngắt từ int 20h đến int 0ffh và mã máy CT con phục vụ ngắt nằm RAM
Tham khảo: Slide 6, Bài học số 4 Các ngắt của DOS có số ngắt bao nhiêu và mã máy của chương trình con phục vụ ngắt nằm ở đâu?
Chọn một câu trả lời:
a Số ngắt từ int 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở ROM BIOS
b Số ngắt từ int 20h đến int 0ffh và mã máy CT con phục vụ ngắt nằm RAM
c Số ngắt từ int 20h đến int 0ffh và mã máy CT con phục vụ ngắt nằmROM BIOS
d Số ngắt từ int 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở RAM
Tham khảo: Slide 6, Bài học số 4 Chức năng nào của ngắt INT 10h cho phép hiển thị nhiều lần1 ký tự có màu sắc lên màn hình tại vị trí con trỏ đứng ? Chọn một câu trả lời:
a Chức năng 8h
b Chức năng 0Eh
c Chức năng 9h Tham khảo: Slide 27, Bài học số 4 Chức năng nào trong các chức năng sau của ngắt INT 10h cho phép xác lập chế độ (mode) cho màn hình ?
8
Trang 9Chọn một câu trả lời:
a Chức năng 0Fh
b Chức năng 3h
c Chức năng 0h
d Chức năng 2h
Tham khảo: Slide 26, Bài học số 4
Chức năng nào của ngắt INT 10h cho phép hiển thị 1 ký tự
dạng teletype lên màn hình tại vị trí con trỏ đứng (không
làm thay đổi các thuộc tính của màn hình) ?
Chọn một câu trả lời:
a Chức năng 9h
b Chức năng 0Eh
c Chức năng 8h
Tham khảo: Slide 27, Bài học số 4
Chức năng nào của ngắt int 21h cho phép nhận 1 ký tự từ
bàn phím?
Chọn một câu trả lời:
a 0Ah
b 1h
c 9h
Tham khảo: Slide 20, Bài học số 4
Chức năng nào của ngắt int 21h cho phép nhận 1 xâu ký
tự từ bàn phím và để vào trong 1 vùng đệm (cho phép
đánh sai và sửa)?
Chọn một câu trả lời:
a 9h
b 1h
c 0Ah
Tham khảo: Slide 21, Bài học số 4
Có mấy phương pháp đưa địa chỉ đầu của chương trình
con phục vụ ngắt vào vị trí tương ứng của bảng vectơ ngắt
?
Chọn một câu trả lời:
a Chỉ có cách gián tiếp nhờ chức năng 25h của ngắt
int 21h
b Chỉ có cách trực tiếp
c Cả hai cách
Tham khảo: Slide 9, Bài học số 4
Độ lớn của bảng vectơ ngắt và vị trí của bảng vectơ ngắt? Chọn một câu trả lời:
a 1024 byte và nằm ở đầu vùng nhớ
b 128 byte và nằm ở đầu vùng nhớ
c 512 byte và nằm ở cuối vùng nhớ
d 256 byte và nằm ở cuối vùng nhớ Tham khảo: Slide 5, Bài học số 4
Độ lớn vùng dữ liệu ROM BIOS và địa chỉ đầu vùng dữ liệu ROM BIOS?
Chọn một câu trả lời:
a 1024 byte RAM và địa chỉ đầu là 0:100h
b 256 byte RAM và địa chỉ đầu là: 0:400h
c 128 byte RAM và địa chỉ đầu là 0:0h Tham khảo: Slide 10, Bài học số 4
Làm thế nào để xác định địa chỉ đầu của chương trình con phục vụ ngắt ?
Chọn một câu trả lời:
a Nhờ directive OFFSET và SEG
b Nhờ directive OFFSET
c Nhờ directive SEG Tham khảo: Slide 8, Bài học số 4 Muốn xác lập một ngắt người lập trình phải tiến hành các bước cần thiết gì ?
Chọn một câu trả lời:
a Tất cả các phương án
b Chỉ cần viết chương trình con phục vụ ngắt
c Đặt địa chỉ đầu của chương trình con phục vụ ngắt vào vị trí tương ứng của bảng vectơ ngắt
Tham khảo: Slide 8, Bài học số 4 Ngắt BIOS int 10h là ngắt gồm các chức năng liên quan đến thiết bị nào ?
Chọn một câu trả lời:
a Bàn phím
b Ổ đĩa
c Màn hình Tham khảo: Slide 26, Bài học số 4 Ngắt BIOS int 16h là ngắt gồm các chức năng liên quan đến thiết bị nào ?
Chọn một câu trả lời:
a Ổ đĩa
Trang 10b Màn hình
c Bàn phím
Tham khảo: Slide 18, Bài học số 4
Ngắt nào của DOS có các chức năng liên quan đến các
thiết bị của máy tính?
Chọn một câu trả lời:
a Hầu hết đều do ngắt int 21h của DOS nắm giữ
b Mỗi một thiết bị có một ngắt DOS riêng
Tham khảo: Slide 17, Bài học số 4
Ở chế độ văn bản màn hình có bao nhiêu dòng ?
Chọn một câu trả lời:
a 80
b 40
c 25
Tham khảo: Slide 25, Bài học số 4
Với máy tính có CPU của hãng Intel hoặc tương thích thì
khi khởi động máy tính các thanh ghi CS và IP trỏ đến địa
chỉ nào ?
Chọn một câu trả lời:
a CS=0 và IP=0
b CS=0 và IP=FFFFh
c CS=FFF0h và IP=F000h
d CS=F000h và IP=FFF0h
Tham khảo: Slide 2, Bài học số 4
Vùng dữ liệu ROM BIOS là gì?
Chọn một câu trả lời:
a Là vùng nhớ chứa các thông tin về máy tính đang
dùng
b Là vùng nhớ chứa mã máy các chương trình con
phục vụ ngắt của BIOS
c Là vùng nhớ chứa mã máy của các chương trình
kiểm tra khi máy tính khởi động
Tham khảo: Slide 10, Bài học số 4
Con trỏ (cursor) có ở chế độ (mode) nào của màn hình ?
(SAI)
Chọn một câu trả lời:
a Cả văn bản và đồ họa (SAI)
b Văn bản
c Đồ họa
5
Bài 5: Các ngắt làm việc với thư mục, tệp tin và thời gian hệ thống
Các thiết bị vào/ra chuẩn của máy tính có thể coi là một tệp với các thẻ tệp (file handle) mặc định Số thẻ tệp có giá trị bao nhiêu mặc định cho thiết bị vào chuẩn (bàn phím)? Chọn một câu trả lời:
a 2
b 3
c 1
d 4
e 0 Tham khảo: Slide 7, Bài học số 5 Các thiết bị vào/ra chuẩn có thể coi là một tệp với các thẻ tệp (file handle) mặc định Số thẻ tệp có giá trị bao nhiêu mặc định cho thiết bị ra chuẩn (màn hình)?
Chọn một câu trả lời:
a 2
b 4
c 3
d 1
e 0 Tham khảo: Slide 7, Bài học số 5 Chức năng nào của ngắt INT 21h cho phép đọc tệp? Chọn một câu trả lời:
a Chức năng 40h
b Chức năng 3Ch
c Chức năng 3Dh
d Chức năng 3Eh
e Chức năng 3Fh Tham khảo: Slide 10, Bài học số 5 Chức năng nào của ngắt INT 21h cho phép ghi tệp? Chọn một câu trả lời:
a Chức năng 3Fh
b Chức năng 3Dh
c Chức năng 3Ch
d Chức năng 3Eh
e Chức năng 40h
10