www.tinhgiac.com de thi vi xu ly 5 bo tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các...
Trang 1ĐỀ 1
Câu 1:
a.Cho biết sự khác nhau giữa câu lệnh hợp ngữ và chỉ dẫn hợp ngữ
b.Chỉ ra các dòng bị lỗi cú pháp trong đoạn chương trình sau:
jmp cont
Buf DB 2,0,0,9,1,9,9,8
Cont:
mov ds,cs
lea bx,Buf
mov al,[bx]
inc al,2
xlat
c.Hãy điều chỉnh lại các dòng lỗi cú pháp trên sao cho khi thực hiện hết đoạn chương trình thì được kết quả thanh ghi AL=1.Với điều kiện mỗi dòng lỗi cú pháp chỉ được thay bằng tối đa hai dòng mới
d Cho biết ý nghĩa của chương trình sau :
Model Small
Code
ORG 100h
Start:
mov dx,0
mov bl,1
mov cl,10
Process:
mov al,bl
mul al
add dx,ax
add bl,3
cmp bl,3
jbe Process
mov ah,02
int 21h
int 20h
End start
Câu 2:
Viết thủ tục tính tổng S=2*12+3*22+4*32+5*42+ +n*(n-1)2
Thủ tục nhận tham số vào CL là giá trị của n và trả ra kết quả DX là giá trị của tổng S
Trang 2Câu 3:
Viết thủ tục mã hóa một chuỗi theo cách sau :ký tự thứ j của chuỗi được XOR với con số (j mod 256) thủ tục nhận các tham số :CX là chiều dài chuỗi và DS ,SI là segment và offset của chuỗi
Trang 3
ĐỀ THI II
Câu 1:
Ngoài cacùh dùng lệnh "mov AX,0", hãy chỉ tất cả các cách làm cho thanh ghi
AX mang giá trị 0 mà anh/chị biết, mỗi cách chỉ được tương ứng với một lệnh hợp ngữ duy nhất
Câu 2:
Hãy chỉ ra các chỉ thị bị lỗi cú pháp trong những chỉ thị sau:
lap:
and ax,cx
cmp ax,cx
shr ax,cx
mov word ptr[bx],1A2B h;
mov [cx],A1B2 h
mul ax,3
div dx,ax
sup ax,1001b
int 21h
jmp lap
int 21h
Câu 3:
Cho biết ết quả thực hiện của chương trình:
model small
Code
Mov ah,1
Int 21h
Mov dl,al
Mov cx,5
Add dl,cl
Inc ah
lap:
Int 21h
Dec dl
loop lap
Mov ah,4Ch
Int 21h
End
Trang 4ĐỀ THI III
Câu 1:
Kích thước của đoạn lệnh mã máy được dịch từ một chương trình hợp ngữ nguồn sẽ tăng hay giảm nếu ta thay đổi chiều dài của:
Tên hằng
Tên biến
Tên nhãn
Tên thủ tục
Câu 2:
Hãy chỉ ra các chỗ bị lỗi cú pháp trong các chỉ thị sau:
Mov word ptr{si},cs
Mov al,byte ptr{cx}
Cmp dx,as
Add dl,1A9h
Mov ah,1001h
Mov dx,9 A 1h
Int 21h
Câu 3:
Cho biết kết quả thực hiện của chương trình:
MODEL SMALL
CODE
ORG 100h
START : JMP CONT
MESS1 DB'HELLO ! $'
MESS2 DB'GOOD BYE ! $'
FINISH DB 0
DISP 1:
LEA DX,MESS1
JMP OUTSCR
DISP 2:
LEA DX,MESS2
JMP OUTSCR
CONT :
MOV AH,1
INT 21h
CMP AL,27
JNE DISP1
MOV FINISH,1
JMP DISP2
Trang 5OUTSCR :
MOV AH,9
INT 21H
CMP FINISH,1
JE QUIT
JMP CONT
QUIT:
INT 20h
END START
Câu 4 :
Viết chương trình nhập vào số nguyên dương n xuất ra màn hình gía trị của tổng :
S=(n-1)*12+(n-2)*22+ +1*(n-1)2
Câu 5 :
Viết chương trình xuất ra màn hình h dòng , mỗi dòng là một chuỗi m ký tự Với h và m chính là giờ và phút hiện tại của máy , chuỗi ở dòng thứ k (1<=k<=h ) có ký tự bắt đầu là chữ số ( k mod 10 ) , ký tự kế tiếp là chữ số kế tiếp ( với quy định kế sau chữ số '9' lại làchữ số '0' )
Ví dụ , nếu giờ hệ thống hiện là 3:15 AM thì phải xuất 3 dòng , mỗi dòng 15 ký tự như sau :
123456789012345
234567890123456
345678901234567
Cho biết để lấy giờ của máy có thể dùng chức năng 2Ch của ngắt 21h , ngắt trả về giờ và phút của hai thanh ghi CH và CL
Trang 6
ĐỀ THI IV
Câu 1 :
a.) Cho biết sự khác nhau giữa lệnh hợp ngữ và chỉ dẫn hợp ngữ
b.) Chỉ ra các dòng bị lỗi cú pháp trong đoạn chương trình sau :
JMT CONT
BUF DB 2,0,0,9,1,9,9,8
CONT:
MOV DS, CS
LEA BX, BUF
MOV AL, [BX]
INC AL, 2
XLAT
c.) Hãy điều chỉnh lại các dòng lỗi cú pháp trên sao cho khi thực hiện hết đoạn chương trình thì được kết quả thanh ghi AL=1 Với điều kiện mỗi dòng lỗi cú pháp chỉ được thay bằng tối đa hai dòng mới
d.) Cho biết ý nghĩa của chương trình hợp ngữ sau :
.MODEL SMALL
CODE
ORG 100h
START :
MOV DX, 0
MOV DL, 1
MOV CL, 10
Process :
MOV AL, BL
MUL AL
ADD DX, AX
ADD BL, 3
CMP BL, CL
JBE Process
MOV AH , 2
INT 21h
INT 20h
END START
Câu 2 :
Viết thủ tục tính tổng S= 2*12+3*22+4*32 +5*42 + +n*( n-1)2
thủ tục nhận tham số vào CL là giá trị của n và trả ra kết quả DX là giá trị của tổng S
Câu 3 :
Trang 7Viết thủ tục mã hoá một chuỗi theo cách sau : Ký tự thứ j của chuỗi được XOR với con số ( j mod 256 ) Thủ tục nhận các tham số : CX là chiều dài chuỗi và DS,
SI là Segment và Offset của chuỗi
ĐỀ THI V
Câu 1:
Cho biết địa chỉ vật lý tương ứng của địa chỉ logic B800h: 3998d
Có tồn tại một địa chỉ logic khác cùng chỉ tới vị trí trên hay không ? Nếu có hãy chỉ ra địa chỉ logic đó , nếu không hãy giải thích vì sau
Câu 2:
Cho biết các lệnh sai cú pháp trong đoạn lệnh sau:
MOV AH,AL
XCHG AL,AX
ADD [BX],AL
ADD [BX],AX
SUB DS:[DI],BX
SUB ES:[SI+BX],BX
SUB 1,AX
Câu 3:
Cho chương trình hợp ngữ :
.MODEL SMALL
.CODE
ORG 100h
START: JMP MAIN
MSG:
EQUMSG DB " 0 SO DU",13,10
ABVMSG DB "0 SO THUA",13,10
BELMSG DB "0 SO THIEU",13,10
DB "$"
CHECK PROC
MOV SI,1
MOV BX,0
CREPEAT:
PUSH AX
MOV DX,0
DIV SI
Trang 8CMP DX,0
JNE CONT
ADD BX,SI
CONT:
POP AX
INC SI
CMP AX,SI JNE CREPEAT CMP AX,BX
E CEQUAL
JB CBELOW MOV DX,1
JMP CEND CBELOW:
MOV DX,-1 JMP CEND CEQUAL:
MOV DX,0
CEND:
RET
CHECK ENDP
MAIN:
MOV AX,20 MREPEAT:
INC AX
CALL CHECK CMP DX,0
JE MEQUAL CMP DX,-1
JE MBELOW INC ABVMSG[0] JMP MCONT MBELOW:
INC BELMSG[0] JMP MCONT MEQUAL:
INC EQUMSG[0] MCONT:
CMP AX,30
JB MREPEAT MOV AH,9
Trang 9LEA DX,MSG
INT 21h
INT 20 h
END START
a Hãy cho biết ý nghĩa của chương trình trên ( chương trình thực hiện công việc gì?)
b Hãy cải tiến chương trình theo hứong tối ưu hoá thời gian( chương trình sau khi cải tiến vẫn thực hiện được công việc trên nhưng chạy nhanh hơn)
Câu 4:
Viết thủ tục đếm số lần xuất hiện của một con số (1 byte) trong một vùng nhớ Thủ tục nhận các tham số : AL là số cần tìm, CX là kích thước ( số byte) vùng nhớ và DS,SI là segment và offset của vùng nhớ , kết quả trả về của thủ tục được lưu ở CX
Câu 5 :
Viết chương trình có thể dịch ra file COM thực hiện công việc nhập vào môt số nguyên a (ở hệ thập phận và có giá trị trong khoảng từ 2 đến 36), sau đó nhập vào một số ơ hệ a và xuất ra số thập phân tương ứng
Ví dụ :
Nhập :
a: 16
số hệ a: DE1
Xuất :
số thập phân tương ứng : 3553
Trang 10•• Vi X• Lí
Đề 1:
1 Viết chương trình Assembler nhập 12 byte số liệu từ cổng có địa chỉ 90h và lưu vào vùng nhớ đệm có địa chỉ bắt đầu 6000h nến nhận được 55h thì dừng nhập số liệu tìm số lớn nhất trong các số trên và gán giá trị này vào thanh ghi E chương trình bắt đầu bằng địa chỉ 2500h dịch bằng tay ct trên ra mã máy
2 Viết chương trình Assembler tính tổng S= 1+2+3+…+n với n=120 lưu kết quả vào ô nhớ liên tiếp có địa chỉ bắt đầu 6500h biết chương trình bắt đầu từ địa chỉ 2000h dịch chương trình ra mã máy
3 Thiết kế bộ nhớ dùng μp8085A và yêu cầu 2x EPROM 4Kx8=8Kx8
bắt đầu từ địa chỉ 6000h và 2 xSRAM 2Kx8=4Kx8 bất đầu ở địa chỉ tiếp theo
Đề 2:
1 Thiết kế bộ nhớ dùng cho hệ μp8085A và yêu cầu 2x EPROM 4Kx8=8Kx8
bắt đầu từ địa chỉ 8000h và 2 xSRAM 2Kx8=4Kx8 bất đầu ở địa chỉ tiếp theo
2 Viết chương trình Assembler nhập 15 byte số liệu từ cổng có địa chỉ 08h và lưu vào vùng nhớ đệm có địa chỉ bắt đầu 6000h tìm số nhỏ nhất trong các số trên và gán giá trị này vào thanh ghi B chương trình bắt đầu bằng địa chỉ 2000h dịch bằng tay ct trên ra
mã máy
3 Viết chương trình Assembler tính tổng S= 2+4+6+…+2n với n=120 lưu kết quả vào ô nhớ liên tiếp có địa chỉ bắt đầu 6000h biết chương trình bắt đầu từ địa chỉ 2000h dịch chương trình ra mã máy
Đề 3:
1 Trình bày sơ đồ khối cấu trúc bên trong của vi xử lí 8085A và giối thiệu thanh ghi đa năng của nó
2 Thiết kế bộ nhớ dùng cho hệ μp8085A và yêu cầu 1x EPROM 8Kx8=8Kx8
bắt đầu từ địa chỉ 4000h và 3 xSRAM 2Kx8=6Kx8 bất đầu ở địa chỉ tiếp theo
3 Viết chương trìng gán 10 byte số liệu tuỳ ý bằng giả lệnh DB vào các ô nhớ có địa chỉ bắt đầu là 3000h Đếm các số dương và đếm các số có giá trị lớn hơn 05h trong các số trên lưu 2 kết quả vào 2 ô nhớ liên tiếp có địa chỉ bắt đầu là 3015h biết rằng chương trình bắt đầu ở địa chỉ 2000h Dịch băng tay ra mã máy