Bộ đề môn: Vi xử lý và lập trình Assembly – CT
(Trong mỗi đáp án các câu lệnh cần giải thích ý nghĩa và chức năng của nó)
1. Chủ đề: Chủ để 5
Câu 1 (3 điểm, mức độ:Trung bình, Thời gian:1200 giây)
Hãy viết chương trình Assembly để nhập vào từ bàn phím hai số a,b có một chữ số. Tính y=(a+b)*2. In kết quả ra màn hình dưới dạng nhị phân?
Trả lời:
.MODEL TINY
.CODE
ORG 100H
BD:
JMP XX
tb1 DB 0Ah,0Dh,"NHAP A=:$"
tb2 DB 0Ah,0Dh,"NHAP B=:$"
tb3 DB 0Ah,0Dh,"Ket qua dạng nhị phân la : V=(A+B)*2=$"
XX:
MOV AH,09H
LEA DX,tb1
INT 21H
MOV AH,01H
INT 21H
AND AL,0FH
MOV BL,AL
MOV AH,09H
LEA DX,tb2
INT 21H
MOV AH,01H
INT 21H
AND AL,0FH
ADD BL,AL
SHL BL,01H
MOV AH,09H
LEA DX,tb3
INT 21H
MOV AH,02H
MOV CL,08H
MOV DL,00
SHL BL,1
ADC DL,30H
INT 21h
NT 20H
END BD
Câu 2 (3 điểm, mức độ:Khó, Thời gian:1200 giây)
Hãy viết chương trình Assembly để nhập vào từ bàn phím hai số a,b có một chữ số. Tính y=(a+b)*2. In kết quả ra màn hình dưới dạng hexa?
Trả lời:
.MODEL TINY
.CODE
ORG 100H
BD:
JMP XX
tb1 DB 0Ah,0Dh,"NHAP A=:$"
tb2 DB 0Ah,0Dh,"NHAP B=:$"
tb3 DB 0Ah,0Dh,"Ket qua la: V=(A+B)*2=$"
XX:
MOV AH,09H
LEA DX,tb1
INT 21H
MOV AH,01H
INT 21H
AND AL,0FH
MOV BL,AL
MOV AH,09H
LEA DX,tb2