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
Với 2 cách để liên kết ngôn ngữ Assembly (hợp ngữ) với ngôn ngữ bậc cao là Inline Assembly và viết tách biệt tệp hợp ngữ và tệp ngôn ngữ bậc cao thì cách nào tốt hơn và hay dùng hơn?
A. Cách nào cũng như nhau.
B. Cách Inline tốt hơn và hay dùng hơn
C. Cách viết tách biệt 2 tệp của 2 loại ngôn ngữ tốt hơn và hay dùng hơn vì tận dụng được sức mạnh của 2 chương trình dịch và sức mạnh các lệnh của 2 loại ngôn ngữ.
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)?
Hàm API để hiển thị thông báo trên màn hình có tên là?
A. MessageScreen
B. Alert
C. Toast
D. MessageBox
E. MsgBox
Thông điệp được phát sinh và đưa vào chương trình khi nào?
A. Người dùng tương tác trên giao diện hoặc hệ thống tự phát sinh khi cần
B. Người dùng tác động lên giao diện chương trình
C. Hệ thống tự phát sinh vào những thời điểm cần thiết
D. Hệ thống tự phát sinh tùy ý
E. Thông điệp không bao giờ được gửi đến chương trình
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 ?
A. Ở module nào cũng được
B. Chỉ ở module của chương trình chính
C. Chỉ ở module chương trình con
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?
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)
Giả thiết có 1 đoạn chương trình như sau :
.DATA
A DW 100 dup(?)
.CODE
PS:
LEA BX,A
Vậy nội dung thanh ghi BX chứa gì ?
A. Phần địa chỉ OFFSET của A[99] (địa chỉ thành phần cuối cùng của trường)
B. Phần địa chỉ OFFSET của A[0] (địa chỉ thành phần đầu tiên của trường)
C. Giá trị A[0]
MACRO của hợp ngữ có cho phép có đối hay không? Có phải bắt buộc có đối không?
A. Bắt buộc phải có đối
B. Không có đối
C. Có thể có đối hoặc không có đối
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
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
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
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 ?
A. CS:IP
B. ES:DI
C. DS:SI
D. SS:SP
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ì?
A. Tất cả các phương án
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. Chia đôi giá trị có trong AX
D. Nhân đôi giá trị có trong AX
Bước nhảy của các lệnh nhảy có điều kiện phải
A. Không giới hạn
B. 64k
C. 128 byte
Lệnh nhảy JMP là loại lệnh nhảy gì và có bước nhảy bao nhiêu byte?
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