Tốn hạng 2 byte có thể chứa một số ngun có giá trị bao nhiêu?
Chọn một câu trả lời:
a. Từ số -32767 đến số 32768
b. Từ số -32768 đến số 0
c. Từ -32768 đến 32767
d. Từ số 0 đến số 65535
e. Từ số -32768 đến số 32768
Phản hồi
Đáp án đúng là: Từ -32768 đến 32767.
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.
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. Không giới hạn
b. 128 byte
c. 64k
Phản hồi
Đáp án đúng là: 128 byte 4 k
Tham khảo: Slide số 29, 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. Xóa trạng thái các bit cờ
b. 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
c. Tất cả các phương án
d. Vô nghĩa
Phản hồi
Đáp án đúng là: 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
Tham khảo: Slide 21, Bài học số 1
Lệnh: LEA BX,m (trong đó m là một biến) có ý nghĩa gì?
Chọn một câu trả lời:
a. Đưa giá trị biến m vào thanh ghi BX
b. Xóa trạng thái các bit cờ
c. Đưa phần địa chỉ segment ô nhớ cấp phát cho biến m vào thanh ghi BX
d. Đưa phần địa chỉ offset ô nhớ được cấp phát cho biến m vào thanh ghi BX. Giá trị trong BX là con trỏ offset
của ô nhớ cấp pháp cho biến
Phản hồi
Đáp án đúng là: Đưa phần địa chỉ offset ô nhớ được cấp phát cho biến m vào thanh ghi BX. Giá trị trong BX là
con trỏ offset của ô nhớ cấp pháp cho biến
Tham khảo: Slide số 16. Bài học số 1
Trang số 5. Phụ lục A. Tài liệu học tập “Lập trình hệ thống”, Bản Text.
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. Tất cả các phương án
b. Chia đơi giá trị có trong AX
c. Nhân đơi giá trị có trong AX
d. 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)
Phản hồi
Đáp án đúng là: 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)
Tham khảo: Slide số 23, 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. CS:IP
b. SS:SP
c. DS:SI
d. ES:DI
Phản hồi
Đáp án đúng là: CS:IP
Tham khảo: Slide số 9, Bài học số 1.
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ả các thanh ghi đều có độ dài 32 bit trừ các thanh ghi đoạn (segment) vẫn là 16 bit
b. Tất cả đều có độ dài 32 bit
c. Tất cả đều có độ dài 16 bit
Phản hồi
Đáp án đúng là: Tất cả các thanh ghi đều có độ dài 32 bit trừ các thanh ghi phân đoạn (segment) vẫn là 16 bit
Tham khảo: Slide số 10, Bài học số 1.
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. 2 dạng: đơn giản và chuẩn
b. Chỉ 1 dạng đơn giản
c. Chỉ 1 dạng chuẩn
d. 3 dạng
Phản hồi
Đáp án đúng là: 2 dạng: đơn giản và chuẩn
Tham khảo: Slide số 31, Bài học số 1.
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. Tùy tình huống
b. Khơng
c. Có
Phản hồi
Đáp án đúng là: Có
Tham khảo: Slide số 19, 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 ?
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
Phản hồi
Đáp án đúng là: Dang chuẩn
Tham khảo: Slide số 37, 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. Có
c. Không
Phản hồi
Đáp án đúng là: Không làm thay đổi trạng thái các bit 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.
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ố ngun
b. Chia đơi làm trịn dưới giá trị có trong AX nếu AX chứa số nguyên
c. Tất cả các phương á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
Phản hồi
Đáp án đúng là: Chia đơi làm trịn dưới giá trị có trong AX nếu AX chứa số nguyên
Tham khảo: Slide số 24, 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à vật lý
b. 1 dạng duy nhất là lôgic
c. 2 dạng: dạng lôgic và dạng vật lý
Phản hồi
Đáp án đúng là: 2 dạng: dạng lôgic và dạng vật lý
Tham khảo: Slide số 10, 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. Bất kỳ số nào
b. Tất cả các phương án
c. 1≤CX≤32767
d. CX≥0
Phản hồi
Đáp án đúng là: Suy luận dựa vào CX có thể chứa một số nguyên dương như thế nào?
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
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
Phản hồi
Đáp án đúng là: 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
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. Khơng, cả hai trường hợp đều thêm dấu _ (underscore) trước tên hàm
b. 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
Phản hồi
Đáp án đúng là: 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
Tham khảo: Slide 9, 15, 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. 3
b. 1
c. 2
Phản hồi
Đáp án đúng là: 2
Tham khảo: Slide 2, Bài học số 32
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. Thêm $qni (ví dụ: @tênhàm$qni)
c. Thêm $qi (ví dụ: @tênhàm$qi)
d. Khơng thêm gì cả
Phản hồi
Đáp án đúng là: Thêm $qv (ví dụ: @tênhàm$qv)
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 $qv (ví dụ: @tênhàm$qv)
b. Thêm $qni (ví dụ: @tênhàm$qni)
c. Khơng thêm gì cả
d. Thêm $qi (ví dụ: @tênhàm$qi)
Phản hồi
Đáp án đúng là: Thêm $qi (ví dụ: @tênhàm$qi)
Tham khảo: Slide 9, Bài học số 3
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
Phản hồi
Đáp án đúng là: Cả hai cùng có thể
Tham khảo: Suy luận từ nguyên lý lập trình (bất kỳ ngôn ngữ nào)
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 $qi (ví dụ: @tênhàm$qi)
b. Thêm $qv (ví dụ: @tênhàm$qv)
c. Khơng thêm gì cả
d. 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)
Phản hồi
Đáp án đúng là: 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)
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ữ 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. Không cần
b. Cần
c. Tùy tình huống
Phản hồi
Đáp án đúng là: Cần
Tham khảo:Slide 8, Bài học số 3
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 ngôn ngữ bậc cao giả thiết
b. Có và số lượng đối và kiểu đối do hợp ngữ quyết định
c. Không
Phản hồi
Đáp án đúng là: 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ữ 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. BP
b. SP
c. BX, SI hoặc DI
Phản hồi
Đáp án đúng là: BP
Tham khảo:Slide 14, Bài học số 3
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. Chỉ thông qua biến nhớ
b. Thông qua ngăn xếp
c. Thông qua thamh ghi, biến nhớ
d. Chỉ thông qua thamh ghi
Phản hồi
Đáp án đúng là: Thông qua thamh ghi, biến nhớ
Tham khảo: Slide 6, 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. Bằng nhau
b. Chương trình con
c. MACRO
Phản hồi
Đáp án đúng là: Chương trình con
Tham khảo: Slide 15, 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. Được
b. Không
c. Tùy tình huống
Phản hồi
Đáp án đúng là: Được
Tham khảo: Suy luận từ bài học về CT con và MACRO
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. MACRO
b. Cả hai
c. Chương trình con
Phản hồi
Đáp án đúng là: MACRO
Tham khảo: Slide 3 và 12, 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
Phản hồi
Đáp án đúng là: 3 phân đoạn
Tham khảo: Slide 17, 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?
Chọn một câu trả lời:
a. Cách 2
b. Cách 1
c. Cả hai cách
Phản hồi
Đáp án đúng là: Cả hai cách
Tham khảo: Slide 18, 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ó
Phản hồi
Đáp án đúng là: 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. phân đoạn và đó là code, data và stack segment
c. 1 phân đoạn duy nhất và đó là code segment
Phản hồi
Đáp án đúng là: 1 phân đoạn duy nhất và đó là code segment
Tham khảo: Slide 17, Bài học số 2
Độ 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. 128 byte RAM và địa chỉ đầu là 0:0h
b. 256 byte RAM và địa chỉ đầu là: 0:400h
c. 1024 byte RAM và địa chỉ đầu là 0:100h
Phản hồi
Đáp án đúng là: 256 byte RAM và địa chỉ đầu là: 0:400h
Tham khảo: Slide 10, 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. 25
b. 40
c. 80
Phản hồi
Đáp án đúng là: 25
Tham khảo: Slide 25, 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. 0Ah
b. 9h
c. 1h
Phản hồi
Đáp án đúng là: 0Ah
Tham khảo: Slide 21, 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:411h
c. 0:400h
Phản hồi
Đáp án đúng là: 0:411h
Tham khảo: Slide 11, 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. 1h
b. 9h
c. 0Ah
Phản hồi
Đáp án đúng là: 1h
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 đổi tên tệp?
Chọn một câu trả lời:
a. Chức năng 41h
b. Chức năng 56h
c. Chức năng 57h
d. Chức năng 42h
e. Chức năng 43h
Phản hồi
Đáp án đúng là: Chức năng 56h
Tham khảo: Slide 12, Bài học số 5
Các bước sử dụng thư viện theo kiểu run-time là?
Chọn một câu trả lời:
a. B1) Nạp thư viện bằng lệnh “LoadLibrary”
B2) Lấy địa chỉ các thành phần muốn dùng bằng lệnh “GetProcAddress”
B3) Sử dụng các thành phần lấy được
B4) Giải phóng thư viện bằng lệnh “FreeLibrary”
b. B1) Nạp thư viện bằng lệnh “LoadLibrary”
B2) Lấy địa chỉ các thành phần muốn dùng bằng lệnh “GetProcAddress”
B3) Sử dụng bất kỳ thành nào trong thư viện
B4) Giải phóng thư viện bằng lệnh “FreeLibrary”
c. B1) Nạp thư viện bằng lệnh “LoadLibrary”
B2) Lấy các thành phần muốn dùng trong thư viện
B3) Sử dụng các thành lấy được
B4) Giải phóng thư viện bằng lệnh “FreeLibrary”
d. B1) Nạp thư viện bằng lệnh “LoadLibrary”
B2) Lấy địa chỉ các thành phần muốn dùng bằng lệnh “GetProcAddress”
B3) Giải phóng thư viện bằng lệnh “FreeLibrary”
e. B1) Nạp thư viện bằng lệnh “LoadLibrary”
B2) Sử dụng các thành trong thư viện
B4) Giải phóng thư viện bằng lệnh “FreeLibrary”
Phản hồi
Đáp án đúng là: B1) Nạp thư viện bằng lệnh “LoadLibrary”
B2) Lấy địa chỉ các thành phần muốn dùng bằng lệnh “GetProcAddress”
B3) Sử dụng các thành phần lấy được
B4) Giải phóng thư viện bằng lệnh “FreeLibrary”
Xem slide 40, Bài học số 6
Để vẽ một hình vng cạnh 100, có hai đường chéo và bên trong có hình trịn nội tiếp ta dùng thứ tự các lệnh
sau (với HDC là )?
Chọn một câu trả lời:
a. Rectangle(,0,0,50,100);
MoveToEx(,0,0,0);
LineTo(,50,100);
MoveToEx(,0,100,0);
LineTo(,50,0);
Ellipse(0,0,50,100);
b. Rectangle(,0,0,100,100);
LineTo(,0,0,100,100);
LineTo(,0,100,100,0);
AngleArc(50,50,50,0,360);
c. Rectangle(,0,0,100,100);
Line (,0,0,100,100);
Line(,0,100,100,0);
AngleArc(50,50,50,0,360);
d. Rectangle(,0,0,100,100);
MoveToEx(,0,0,0);
LineTo(,100,100);
MoveToEx(,0,100,0);
LineTo(,100,0);
AngleArc(0,0,100,0,360);
e. Rectangle(,0,0,100,100);
MoveToEx(,0,0,0);
LineTo(,100,100);
MoveToEx(,0,100,0);
LineTo(,100,0);
AngleArc(50,50,50,0,360);
Phản hồi
Đáp án đúng là: Rectangle(,0,0,100,100);
MoveToEx(,0,0,0);
LineTo(,100,100);
MoveToEx(,0,100,0);
LineTo(,100,0);
AngleArc(50,50,50,0,360);
Xem slide 13, Bài học số 6
Vịng lặp thơng điệp có tác dụng như thế nào?
Chọn một câu trả lời:
a. Biến đổi thông điệp từ dạng thô về dạng tinh
b. Loại bỏ các thông điệp không cần thiết
c. Tiếp nhận các sự kiện diễn ra trên máy
d. Phát sinh thông điệp và gửi đến hệ thống Windows
e. Tiếp nhận các thông điệp được phát sinh và gửi đến chương trình
Phản hồi
Đáp án đúng là: Tiếp nhận các thơng điệp được phát sinh và gửi đến chương trình
Xem slide 7, Bài học số 6
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à?
Chọn một câu trả lời:
a. HINSTANCE, HINSTANCE, LPSTR, int
b. HINSTANCE, HANDLE, LPSTR, int
c. HWND, HINSTANCE, UINT, LPVOID
d. HWND, HINSTANCE, LPSTR, int
e. HINSTANCE, UINT, LPSTR, int
Phản hồi
Đáp án đúng là: HINSTANCE, HINSTANCE, LPSTR, int
Xem slide 5, Bài học số 6
Những thông điệp phát sinh khi người dùng tác động lên thiết bị chuột bao gồm?
Chọn một câu trả lời:
a. WM_CLOSE, WM_LBUTTONDOWN,
WM_RUTTONDOWN
b. WM_MOUSEMOVE, WM_LBUTTONDOWN,
WM_CHAR
c. WM_MOUSE, WM_LEFTDOWN,
WM_RIGHTDOWN
d. WM_MOUSEMOVE, WM_LBUTTONDOWN,
WM_RUTTONDOWN
e. WM_LBUTTONDOWN,
WM_KEYDOWN
WM_RUTTONDOWN
Phản hồi
Đáp án đúng là: WM_MOUSEMOVE, WM_LBUTTONDOWN,
WM_RUTTONDOWN
Xem slide 9, Bài học số 6
Cách để một chương trình ứng dụng truy cập API là?
Chọn một câu trả lời:
a. Viết lệnh gọi hàm API
b. Khai báo API trong chương trình
c. Máy tự động gọi đến API
d. Không thể truy cập API
e. Viết lệnh truy cập đến API
Phản hồi
Đáp án đúng là: Viết lệnh gọi hàm API
Xem slide 3, Bài học số 6
Tài nguyên của một chương trình có tác dụng?
Chọn một câu trả lời:
a. Chứa các hình ảnh và được sử dụng trong chương trình
b. Chứa các dữ liệu cố định và được sử dụng trong hệ điều hành Windows
c. Chứa các dữ liệu cố định và được sử dụng trong chương trình nhanh chóng và thuận tiện
d. Chứa các mã lệnh của chương trình để điều khiển máy thực hiện cơng việc
e. Chứa các dữ liệu sử dụng trong chương trình và có thể thay đổi
Phản hồi
Đáp án đúng là: Chứa các dữ liệu cố định và được sử dụng trong hệ điều hành Windows
Thông điệp được xử lý như thế nào trong chương trình?
Chọn một câu trả lời:
a. Thơng điệp sẽ do máy tự động xử lý
b. Không cần xử lý thông điệp
c. Thơng điệp được xử lý bên trong vịng lặp thông điệp
d. Thông điệp được xử lý bên trong một hàm lập trình theo mẫu quy định
e. Thơng điệp được xử lý bên trong hàm chính (WinMain)
Phản hồi
Đáp án đúng là: Thông điệp được xử lý bên trong một hàm lập trình theo mẫu quy định
Xem slide 7, Bài học số 6
Ngắt nào của BIOS cho phép làm việc với thời gian máy tính?
Chọn một câu trả lời:
a. Ngắt 1Ah
b. Ngắt 16h
c. Ngắt 10h
Phản hồi
Đáp án đúng là: Ngắt 1Ah
Tham khảo: Slide 27, 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 40h
b. Chức năng 3Dh
c. Chức năng 3Fh
d. Chức năng 3Ch
e. Chức năng 3Eh
Phản hồi
Đáp án đúng là: Chức năng 40h
Tham khảo: Slide 10, Bài học số 5
Cách nào thực hiện việc hiện 1 xâu ký tự lên màn hình là dễ dàng nhất và tốt nhất trong lập trình Assembly (hợp
ngữ)
Chọn một câu trả lời:
a. Khai báo xâu kết thúc bằng ‘$’, sau đó dùng chức năng thứ 9 của ngắt int 21h (DOS functions)
b. Dùng chức năng thứ 13h của ngắt int 10h
c. Khai báo xâu kết thúc bằng \0, sau đó viết chương trình hiện các ký tự cho đến khi gặp \0.
Phản hồi
Đáp án đúng là: Khai báo xâu kết thúc bằng ‘$’, sau đó dùng chức năng thứ 9 của ngắt int 21h (DOS functions)
Tham khảo: Slide số 30.Bài học số 4.
Trang số 212. Tài liệu học tập “Lập trình hệ thống”, Bản Text.
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:410h
b. 0:411h
c. 0:400h
Phản hồi
Đáp án đúng là: 0:410h
Tham khảo: Slide 10, Bài học số 4
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. 0
c. 4
d. 1
e. 3
Phản hồi
Đáp án đúng là: 0
Tham khảo: Slide 7, Bài học số 5
Với chức năng đọc tệp (chức năng 3Fh của ngắt INT 21h) thì khi nào biết đã hết tệp?
Chọn một câu trả lời:
a. ZF = 1 (bit cờ Zero = 1)
b. CF = 1 (bit cờ Carry = 1)
c. CF = 0 và số lượng byte cần đọc nằm ở DX:AX=0
d. CF = 0 (bit cờ Carry = 0)
e. ZF = 0 (bit cờ Zero = 0)
Phản hồi
Đáp án đúng là: CF = 0 và số lượng byte cần đọc nằm ở DX:AX=0
Tham khảo: Suy ra từ Slide 10, Bài học số 5
Sau khi đọc nội dung trong 1 tệp thành công (chức năng 3Fh của ngắt int 21h) thì thanh ghi nào cho biết số
lượng byte thực tế đã đọc được?
Chọn một câu trả lời:
a. Thanh ghi AX
b. Thanh ghi CX
c. Thanh ghi DX
d. Thanh ghi BX
Phản hồi
Đáp án đúng là: Thanh ghi AX
Tham khảo: Slide 10, Bài học số 5
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
Phản hồi
Đáp án đúng là: Hầu hết đều do ngắt int 21h của DOS nắm giữ
Tham khảo: Slide 17, 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 mã máy của các chương trình kiểm tra khi máy tính khởi động
b. Là vùng nhớ chứa các thông tin về máy tính đang dùng
c. Là vùng nhớ chứa mã máy các chương trình con phục vụ ngắt của BIOS
Phản hồi
Đáp án đúng là: Là vùng nhớ chứa các thông tin về máy tính đang dùng
Tham khảo: Slide 10, 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. 256 byte và nằm ở cuối vùng nhớ
c. 128 byte và nằm ở đầu vùng nhớ
d. 512 byte và nằm ở cuối vùng nhớ
Phản hồi
Đáp án đúng là: 1024 byte và nằm ở đầu vùng nhớ
Tham khảo: Slide 5, 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. Chỉ cần viết chương trình con phục vụ ngắt
b. Tất cả các phương án
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
Phản hồi
Đáp án đúng là: Tất cả các phương án
Tham khảo: Slide 8, Bài học số 4
Làm thế nào xác định được độ dài 1 tệp?
Chọn một câu trả lời:
a. Đưa con trỏ tệp về cuối tệp và CF = 0 (bit cờ Carry = 0) thì DX:AX=độ dài tệp
b. Đưa con trỏ tệp về cuối tệp và CF = 1 (bit cờ Carry = 1) thì DX:AX=độ dài tệp
Phản hồi
Đáp án đúng là: Đưa con trỏ tệp về cuối tệp và CF = 0 (bit cờ Carry = 0) thì DX:AX=độ dài tệp
Tham khảo: Slide 11, Bài học số 5
Trong các chức năng liên quan đến thư mục (tạo, xóa, chuyển) và tệp (tạo, mở, xóa ...) thì xâu ký tự chứa tên
thư mục hoặc tệp phải kết thúc bằng gì?
Chọn một câu trả lời:
a. Bằng \0
b. Bằng ký tự ‘0’
c. Bằng Enter (0dh)
d. Bằng dấu ‘$’
Phản hồi
Đáp án đúng là: Bằng \0
Tham khảo: Slide 2, 3, 9, … Bài học số 5
Trong các chức năng liên quan đến thư mục (tạo, xóa, chuyển) và tệp (tạo, mở, xóa) thì đơi thanh ghi nào dùng
để chứa địa chỉ đầu xâu ký tự chứa tên thư mục hoặc tệp?
Chọn một câu trả lời:
a. CS:IP
b. DS:DX
c. ES:SI
Phản hồi
Đáp án đúng là: DS:DX
Tham khảo: Slide 2, 3, 9, … Bài học số 5
Với chức năng ghi tệp (chức năng 40h của ngắt INT 21h) thì khi CX=0 (số lượng byte cần ghi vào tệp là 0) có
nghĩa gì?
Chọn một câu trả lời:
a. Nội dung của tệp vẫn giữ nguyên
b. Cắt bỏ phần nội dung của tệp từ nơi con trỏ tệp trở về cuối tệp
c. Khơng ghi gì vào tệp
Phản hồi
Đáp án đúng là: Cắt bỏ phần nội dung của tệp từ nơi con trỏ tệp trở về cuối tệp
Tham khảo: Suy luận
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 3Eh
b. Chức năng 3Fh
c. Chức năng 40h
d. Chức năng 3Ch
e. Chức năng 3Dh
Phản hồi
Đáp án đúng là: Chức năng 3Fh
Tham khảo: Slide 10, Bài học số 5
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. Bàn phím
b. Ổ đĩa
c. Màn hình
Phản hồi
Đáp án đúng là: Bàn phím
Tham khảo: Slide 18, 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 RAM
b. Số ngắt từ int 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở RAM
c. Số ngắt từ int 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở ROM BIOS
d. Số ngắt từ int 20h đến int 0ffh và mã máy CT con phục vụ ngắt nằm ROM BIOS
Phản hồi
Đáp án đúng là: Số ngắt từ int 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở ROM BIOS
Tham khảo: Slide 6, 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
b. Nhờ directive SEG
c. Nhờ directive OFFSET và SEG
Phản hồi
Đáp án đúng là: Nhờ directive OFFSET và SEG
Tham khảo: Slide 8, 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=FFFFh
b. CS=0 và IP=0
c. CS=FFF0h và IP=F000h
d. CS=F000h và IP=FFF0h
Phản hồi
Đáp án đúng là: CS=F000h và
IP=FFF0h
Tham khảo: Slide 2, Bài học số 4
Một chương trình chính của ngơn ngữ Assembly phải kết thúc như thế nào?
Chọn một câu trả lời:
a. Khơng phải làm gì cả.
b. 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. Bình thường như các ngôn ngữ khác.
Phản hồi
Đáp án đúng là: 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
Tham khảo: Các bài tập trong các slide bài giẩng hoặc các bài tập trong Tài liệu học tập “Lập trình hệ thống”,
Bản Text.
Bảng vectơ ngắt chứa gì và nằm ở đâu?
Chọn một câu trả lời:
a. Chứa mã máy của các chương trình con phục vụ ngắt và nằm ở ROM BIOS
b. Chứa địa chỉ đầu của các chương trình con phục vụ ngắt và nằm ở RAM
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
Phản hồi
Đáp án đúng là: Chứa địa chỉ đầu của các chương trình con phục vụ ngắt và nằm ở RAM
Tham khảo: Slide 5, Bài học số 4
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. Dạng hexa
(cơ số 16)
b. Dạng bát phân (cơ số 8)
c. Dạng nhị phân (cơ số binary)
d. Dạng thập phân (cơ số 10)
e. Tất cả các dạng cơ số nêu trên
Phản hồi
Đáp án đúng là: Tất cả các thanh ghi đều có độ dài 32 bit trừ các thanh ghi phân đoạn (segment) vẫn là 16 bit
Tham khảo: Trang số 22, Tài liệu học tập “Lập trình hệ thống”, Bản Text.
Máy tính cấu trúc 16 bit có bao nhiêu thanh ghi?
Chọn một câu trả lời:
a. Có 10 thanh ghi
b. Nhiều thanh ghi
c. 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)
d. Khơng có thanh ghi nào
Phản hồi
Đáp án đúng là: 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).
Tham khảo: Slide số 8, 9, Bài học số 1.
Trang số 9 đến 13, Tài liệu học tập “Lập trình hệ thống”, Bản Text.
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 20h đến int 0ffh và mã máy CT con phục vụ ngắt nằm RAM
b. Số ngắt từ int 20h đến int 0ffh và mã máy CT con phục vụ ngắt nằmROM 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 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở ROM BIOS
Phản hồi
Đáp án đúng là: Số ngắt từ int 20h đến int 0fffh 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
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. Chỉ cần viết chương trình con phục vụ ngắt
b. Tất cả các phương án
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
Phản hồi
Đáp án đúng là: Tất cả các phương án
Tham khảo: Slide 8, Bài học số 4
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ớ?
Chọn một câu trả lời:
a. Tất cả các thanh ghi
b. Chỉ có thể dùng các thanh ghi sau: BX, SI, DI và BP
c. Chỉ dùng thanh ghi DX
d. Các thanh ghi segment
Phản hồi
Đáp án đúng là: Chỉ có thể dùng các thanh ghi sau: BX, SI, DX và BP
Tham khảo: Slide số 16. Bài học số 1.
Trang số 5. 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. DW
b. DB
c. DD
Phản hồi
Đáp án đúng là: DW
Tham khảo: Slide số 32, 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. Không điều kiện và có bước nhảy 64 k
b. Có điều kiện và bước nhảy là không giới hạn
Phản hồi
Đáp án đúng là: 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.
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. Có và nhờ 2 lệnh sau :
mov reg16,data
mov DS,reg16
b. Không, hệ điều hành sẽ tự đưa
c. Có và nhờ 2 lệnh sau :
mov reg16,@data mov DS,reg16
d. Tùy tình huống
Phản hồi
Đáp án đúng là: Có nhờ 2 lệnh sau: mov reg16,@data
mov DS,reg16
Tham khảo: Slide số 33, Bài học số 1.
Người lập trình ngơn ngữ Assembly (hợp ngữ) hay dùng lệnh AND với mục đích gì?
Chọn một câu trả lời:
a. Để đưa giá trị một tốn hạng về 0
b. Xóa trạng thái các bit cờ
c. Để thay đổi giá trị của toán hạng
d. Để đưa giá trị của toán hạng lên 1
e. Để:
Tách bit: Muốn tách bit nào đó (giữ trạng thái bit đó) của 1 tốn hạng thì hãy AND bit đó với 1 và các bit khác với
0.
Dựng cờ: Thực hiện lệnh AND tốn hạng với chính nó sẽ dựng các cờ cho biết trạng thái giá trị của tốn hạng
đó và trên cơ sở các cờ đó thực hiện các lệnh nhảy có điều kiện.
Phản hồi
Đáp án đúng là: Để:
Tách bit: Muốn tách bit nào đó (giữ trạng thái bit đó) của 1 tốn hạng thì hãy AND bit đó với 1 và các bit khác với
0.
Dựng cờ: Thực hiện lệnh AND tốn hạng với chính nó sẽ dựng các cờ cho biết trạng thái giá trị của tốn hạng
đó và trên cơ sở các cờ đó thực hiện các lệnh nhảy có điều kiện.
Tham khảo: Slide số 21. Bài học số 1.
Trang số 16. Phụ lục A. Tài liệu học tập “Lập trình hệ thống”, Bản Text.
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
Phản hồi
Đáp án đúng là: Chỉ cần dịch lại tệp có sai khi dịch
Tham khảo: Slide 38, 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 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. FAR
b. NEAR
c. Tùy tình huống
Phản hồi
Đáp án đúng là: NEAR
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ì chương trình
con có đối khơng?
Chọn một câu trả lời:
a. Có
b. Khơng có
c. Tùy tình huống
Phản hồi
Đáp án đúng là: Khơng có
Tham khảo: Slide số 3. Bài học số 2
Trang số 48, Tài liệu học tập “Lập trình hệ thống”, Bản Text.
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
Phản hồi
Đáp án đúng là: .MODEL tiny/
small/ compact
Tham khảo: Slide 4, Bài học số 2
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 đó)?
Chọn một câu trả lời:
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 ngồ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
Phản hồi
Đáp án đúng là: Có thể thể hiện bằng 3 cách trên
Tham khảo: Slide số 3, 12, 16. Bài học số 2. .
Mục 1.6, 1.7 và 1.8. Tài liệu học tập “Lập trình hệ thống”, Bản Text.
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?
Chọn một câu trả lời:
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. Có thể và khơng bắt buộc
c. Bắt buộc phải có
Phản hồi
Đáp án đúng là: Khơng, hàm viết bằng Assembly phải vào ngăn xếp lấy giá trị a và n
Tham khảo:Slide 24, Bài học số 3
Directive INCLUDE chèn nội dung 1 tệp ngồ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 ngồi 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. Tùy tình huống
c. Có
Phản hồi
Đáp án đúng là: Không
Tham khảo: Suy luận từ tên nhãn là duy nhất trong một chương trình
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
Phản hồi
Đáp án đúng là: MACRO
Tham khảo: Slide 15, 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. Chỉ ở module chương trình con
b. Ở module nào cũng được
c. Chỉ ở module của chương trình chính
Phản hồi
Đáp án đúng là: Ở 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 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. Ở module nào cũng được
c. Chỉ ở module của chương trình chính
Phản hồi
Đáp án đúng là: Ở module nào cũng được
Tham khảo: Slide 32, 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?
Chọn một câu trả lời:
a. Cách 2
b. Cả hai cách
c. Cách 1
Phản hồi
Đáp án đúng là: Cả hai cách
Tham khảo: Slide 18, 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 mã máy của CT (code segment)
b. Phân đoạn vùng nhớ dành cho dữ liêu (data segment)
c. Phân đoạn vùng nhớ dành cho ngăn xếp (stack segment)
Phản hồi
Đáp án đúng là: Phân đoạn vùng nhớ dành cho mã máy của CT (code segment)
Tham khảo: Slide 17, Bài học số 2
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. Có song nhãn đó phải được khai báo sau directive LOCAL
b. Khơng
c. Có trong bất kỳ tình huống nào
Phản hồi
Đáp án đúng là: Có song nhãn đó phải được xác lập bởi directive LOCAL
Tham khảo: Slide 14, Bài học số 2
Vai trò của directive GLOBAL của chương trình dich Turbo Assembler của hãng Borland?