1. Trang chủ
  2. » Tất cả

25. Lập trình hệ thống - IT17.012

17 20 3

Đ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 527,15 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ỉ 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 1

1

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 2

Chọ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 3

Chọ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 4

LEA 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 5

Chọ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 6

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ì

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 7

Tê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 8

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 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 9

Chọ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 10

b 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

Ngày đăng: 06/08/2020, 13:55

TỪ KHÓA LIÊN QUAN

w