Một chương trình chính của ngôn ngữ Assembly phải kết thúc như thế nào?
A. Bình thường như các ngôn ngữ khác.
B. Không phải làm gì cả.
C. Kết thúc phải trở về DOS với:
Chương trình dạng .EXE là:
mov ah,4ch
int 21h
Chương trình dạng .COM là:
int 20h
Máy tính cấu trúc 16 bit có bao nhiêu thanh ghi?
A. Không có thanh ghi nào
B. Có tất cả 14 thanh ghi không kể thanh ghi xử lý lệnh. Đó là: 1 thanh ghi cờ, 8 thanh ghi đa năng (AX, BX, CX, DX, SI, DI, BP, và SP), 1 thanh ghi con trỏ lệnh IP và 4 thanh ghi segment (CS, DS, ES và SS)
C. Có 10 thanh ghi
D. Nhiều thanh ghi
Các thanh ghi segment của máy tính cấu trúc 32 bit có độ dài bao nhiêu bit?
A. 8 bit
B. 32 bit
C. Tất cả các thanh ghi segment của máy tính 32 bit đều có độ dài 16 bit
D. 64 bit
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?
A. Không, hàm viết bằng Assembly phải vào ngăn xếp lấy giá trị a và n
B. Bắt buộc phải có
C. Có thể và không bắt buộc
Khi liên kết ngôn ngữ bậc cao C/C++ với hợp ngữ theo cách viết tách biệt tệp ngôn ngữ bậc cao và tệp của hợp ngữ thì tệp ngôn ngữ bậc cao C/C++ cần những khai báo gì với các nhãn dùng chung?
A. Cần khai báo tường minh PUBLIC và extern
B. Không cần khai báo gì.
C. Chỉ cần khai báo tường minh extern, không cần khai báo tường minh PUBLIC vì với các ngôn ngữ bậc cao nói chung và C/C++ nói riêng, bất kỳ một khai báo nào đều là PUBLIC rồi.
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 ?
A. Thêm dấu _ (dấu underscore) vào trước tên chương trình con
B. Không cần thêm gì
C. Thêm @ vào trước tên chương trình con
Trong chương trình hợp ngữ có một khối lệnh giống nhau lặp lại nhiều lần. Có mấy cách giúp người lập trình hợp ngữ viết gọn chương trình (đỡ viết đi viết lại khối lệnh đó)?
A. Có thể thể hiện bằng 3 cách trên
B. Thể hiện khối lệnh đó bằng một MACRO
C. Khối lệnh đó được thể hiện trong một tệp ngoài, sau đó dùng direcive INCLUDE để chèn khối lệnh đó vào chương trình đang viết
D. Thể hiện khối lệnh đó bằng một chương trình con
Hàm chính (WinMain) của chương trình trên Windows có 4 tham số với kiểu tương ứng là?
A. HINSTANCE, HANDLE, LPSTR, int
B. HWND, HINSTANCE, UINT, LPVOID
C. HINSTANCE, UINT, LPSTR, int
D. HINSTANCE, HINSTANCE, LPSTR, int
E. HWND, HINSTANCE, LPSTR, int
Cách liên kết Inline Assembly có ưu, nhược gì?
A. Ưu: Dễ viết.
Nhược:
Không cho phép có nhãn nhảy trong khối lệnh chèn vào C/C++. Suy ra khối lệnh Assembly yếu,
Các lệnh Assembly “dịch nhờ” chương trình dịch của C/C++ do vậy đôi lúc sinh ra sai sót khi dịch.
B. Dễ viết song chương trình chạy chậm
C. Chạy nhanh song khó viết
Người lập trình ứng dụng của ngôn ngữ Assembly (hợp ngữ) có thể dùng các thanh ghi nào làm con trỏ offset (thanh ghi chứa phần địa chỉ offset) của một ô nhớ?
A. Chỉ có thể dùng các thanh ghi sau: BX, SI, DI và BP
B. Chỉ dùng thanh ghi DX
C. Các thanh ghi segment
D. Tất cả các thanh ghi
Có mấy cách chuyển giao tham số giữa chương trình chính (thường do C/C++ đảm nhiệm) với chương trình con (thường do Assembly đảm nhiệm)?
A. Chỉ thông qua ngăn xếp
B. Chỉ thông qua biến nhớ
C. Có thể chuyển giao tham số theo 2 cách:
Cách 1: Thông qua khai báo biến toàn cục và sử dụng directive PUBLIC và EXTRN (với hợp ngữ) và extern (với C/C++),
Cách 2: Thông qua ngăn xếp khi ngôn ngữ C/C++ giả thiết hàm do Assembly có đối và khi gọi chương trình con, ngôn ngữ C/C++ đưa tham số thực vào ngăn xếp và hàm Assembly sẽ vào ngăn xếp lấy các giá trị đó ra mà dùng.
D. Chuyển giao qua thanh ghi
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 ?
A. Cả hai dạng
B. Dạng dơn giản
C. Dạng chuẩn
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ì?
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
C. Chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên dương
D. Tất cả các phương án
Toán hạng 2 byte có thể chứa một số nguyên có giá trị bao nhiêu?
A. Từ số 0 đến số 65535
B. Từ số -32768 đến số 32768
C. Từ số -32768 đến số 0
D. Từ số -32767 đến số 32768
E. Từ -32768 đến 32767