1. Trang chủ
  2. » Công Nghệ Thông Tin

BT Cấu Trúc máy tính có lời giải

11 1,4K 14

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 23,26 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BÀI TẬP1 Bài tập: Lập trình hợp ngữ Assembly file có phần mở rộng là .COM sử dụng ngắt INT 10h/AH=0 để đặt chế độ màn hình là 02h... Quá trình cứ lặp liên tục cho đến khi bạn ấn phím ESC

Trang 1

BÀI TẬP

1 Bài tập: Lập trình hợp ngữ Assembly file có phần mở rộng là COM sử

dụng ngắt INT 10h/AH=0 để đặt chế độ màn hình là 02h Sau đó, sử dụng ngắt INT 10h/AH=13h để hiển thị lên màn hình máy tính dòng chữ: “HOC VIEN KTQS” có thuộc tính là nền đỏ chữ vàng (4Eh) bắt đầu tại vị trí cột

15, dòng 20

org 100h

Begin:

;dat mode man hinh:

mov ah,00h

mov al,02h

int 10h

;hien thi dong chu:

mov al,00

mov ah,13h

mov cx,13

mov bl,4eh

lea bp,str

;vi tri con tro:

mov dh,0fh

mov dl,14h

int 10h

;ket thuc:

int 20h

str db "HOC VIEN KTQS"

ret

2 Bài tập: Lập trình hợp ngữ Assembly file có phần mở rộng là COM sử

dụng ngắt INT 10h/AH=0 thiết lập chế độ màn hình 03.Sau đó, sử dụng ngắt INT 10h/AH=13h để hiển thị lên màn hình bắt đầu tại vị trí cột 30, dòng 12, chuỗi ký tự “CAU TRUC MAY TINH” có thuộc tính chữ màu đỏ, nền màu vàng (1110_0100b)

org 100h

;dat mode man hinh:

mov ah,00h

mov al,03h

int 10h

;hien thi dong chu:

Trang 2

mov al,00

mov ah,13h

mov cx,17

mov bl,0e4h

lea bp,str

;vi tri con tro:

mov dh,0ch

mov dl,1eh

int 10h

;ket thuc:

int 20h

str db "CAU TRUC MAY TINH"

ret

3 Bài tập: Viết chương trình hợp ngữ sử dụng ngắt INT 14h/AH=00 để thiết

lập tham số truyền của cổng COM1: tốc độ truyền 4800 baud, độ dài dữ liệu

7 bit, 1 bit dừng (1 stop bit), kiểm tra lỗi bằng bit bậc chẵn (Even Parity) Sau đó, kiểm tra thanh ghi đệm phát rỗng (bit D5=1 của từ trạng thái cổng COM) thì sử dụng ngắt INT 14h/AH=01 để gửi chuỗi ký tự “Hello!” ra cổng COM1

org 100h

DATA DB "HELLO","$"

;che do cong com1

mov ah,00

mov dx,00

mov al,82h; 110=4800;11=BAC CHAN;0=1 BIT DUNG;10=7 BI

int 14h

;thiet lap duong truyen:

mov al,80h

mov dx,3fbh

out dx,al

;gui so chia:

mov ax,18h

mov dx,3f8h

out dx,al

mov al,ah

inc dx

out dx,al

;thiet lap tham so truyen:

mov al,82h

Trang 3

mov dx,03fbh

out dx,al

mov [SI],OFFSET DATA

;hoi bi trang thai cua thanh ghi

mov dx,03fdh

lap1:

mov ah,01

int 14h

in al,dx

and al,20h

cmp al,20h

jnz lap1

mov al,[SI]

cmp al,"$"

je kt

kt:

int 20h

ret

4 Bài tập: Lập trình hợp ngữ Assembly file có phần mở rộng là COM thiết

lập màn hình chế độ đồ họa 13h, sau đó vẽ trên màn hình một đường dọc bắt đầu từ toạ độ cột 62 hàng 60 (62,60) đến toạ độ cột 62 hàng 30 (62,30)

org 100h

; xoa man hinh

mov ax,0600h

mov bh,07h

mov cx,0000 ;toa do dau man hinh

mov dx,184fh

int 10h

;dat che do do hoa cho man hinh

mov ax,0013h

int 10h

;ve duong doc

mov dx,60

mov cx,62

lap:

mov ah,0ch

mov al,01h

int 10h

dec cx

Trang 4

cmp cx,30

jnz lap

;ket thuc

int 20h

ret

5 Bài tập: Lập trình hợp ngữ Assembly file có phần mở rộng là COM sử

dụng ngắt INT 21h/AH=9 hiển thị thông báo: “Nhan phim:” Sau đó, dùng ngắt INT16h/AH=00 để đọc ký tự từ bàn phím và hiện ký tự đó ra màn hình bằng ngắt INT 10h/AH=0Eh Quá trình cứ lặp liên tục cho đến khi bạn ấn phím ESC có mã ASCII là 1Bh chương trình sẽ kết thúc

org 100h

;hien thong bao:

mov ah, 09h

lea dx,tb

int 21h

;doc ki tu tu ban phim:

dkt:

mov ah, 00H

int 16h

jz dkt

;hien kt ra man hinh:

mov ah, 0eh

int 10h

;neu an ESC thi kt:

cmp al,1bh

jz kt

jmp dkt

;ket thuc ct:

kt:

int 20h

tb db "nhan phim:$"

ret

6 Bài tập: Lập trình hợp ngữ Assembly file có phần mở rộng là COM sử

dụng ngắt INT 10h/AH=0 thiết lập màn hình chế độ 0, sau đó sử dụng ngắt INT 10h/AH=09 hiển thị lên màn hình bắt đầu tại ví trí có toạ độ là cột 20 , hàng 12 lần lượt 6 ký tự có mã ASCII như sau: 31h, 32h, 33h, 34h, 35h, 36h, với thuộc tính chữ trắng trên nền đỏ?

org 100h

Trang 5

;sd thanh ghi si làm con dem: mov si,06

;dat che do hien thi:

mov ax,0002h

int 10h

;dat vi tri con tro:

mov dh,0ch

mov dl,14h

call vitri

;hien ki tu co thuoc tinh:

mov al,31h

mov bl,47h

lap:

mov ah,03; vi tri hien thoi con tro int 10h

mov cx,01

mov ah,09

int 10h

inc dl

dec al

;tao 1 khoang trong:

call kt

dec si

jnz lap

int 20h

;dich vi tri con tro:

call vitri

;ct con dat con tro vao vi tri: vitri proc near

mov ah,02h

int 10h

ret

;ct con tao kt:

kt proc near

push ax

push dx

mov ah,02

mov dl,00

int 21h

pop dx

Trang 6

pop ax

ret

7 Bài tập: Lập trình hợp ngữ Assembly file có phần mở rộng là COM thiết

lập tham số truyền cho vi mạch UART 8250 trên máy tính có địa chỉ giải mã

là 3f8h như sau: 7 bit data, 1 bits stop, kiểm tra lẻ, tốc độ truyền là 14.400 bps, với tần số clock là 1,843MHz (Có thể dùng ngắt INT 14h/AH=0 để thiết lập tham số truyền của cổng COM1)

org 100h

;thiet lap duong truyen:dat bit D7 co thanh ghi 3fbh len 1:

mov al,80h

mov dx,3fbh;nap dia chi

out dx,al

;gui so chia

mov ax,08h;toc do truyen 14.400

mov dx,3f8h;dia chi phan thap so chia

out dx,al; chuyen phan cao so chia sang al

inc dx; dia chi phan cao so chia

out dx,al; nap phan cao so chia

;thiet lap tham so truyen:

mov al,82h

mov dx,03fbh ;dia chi thanh ghi dk duong truyen

out dx,al

int 20h

ret

8 Bài tập: Lập trình hợp ngữ Assembly file có phần mở rộng là COM sử

dụng ngắt INT 16h/AH=0 đọc ký tự từ bàn phím Nếu có phím được ấn thì hiện thị thông báo "Phim duoc an la:" và ký tự Sau đó lại quay lại đọc bàn phím Chương trình kết thúc khi ấn phím ESC (mã ASCII là 1Bh)

org 100h

begin:

;hien thong bao:

mov ah, 09h

lea dx,tb

int 21h

;kiem tra co phim an:

mov ah,08

int 21h

;doc ki tu tu ban phim:

Trang 7

mov ah, 00H

int 16h

jz dkt

;hien kt ra man hinh:

mov ah,0eh

int 10h

;neu an ESC thi kt:

cmp al,1bh

jz kt

jmp dkt

jmp begin

;ket thuc ct:

kt:

int 20h

tb db "phim duoc an la:$"

ret

9 Bài tập: Lập trình hợp ngữ Assembly file có phần mở rộng là COM sử

dụng ngắt INT 10h/AH=0 để thiết lập chế độ màn hình 06 (chế độ màn hình

đồ hoạ, độ phân giải 640x200, 2 màu) Sau đó, sử dụng ngắt INT 10h/AH=0Ch để vẽ một đường chéo màu trắng từ điểm ảnh có toạ độ (60,60) đến toạ độ (40,40)

org 100h

; xoa man hinh

mov ax,0600h

mov bh,07h

mov cx,0000 ;toa do dau man hinh

mov dx,184fh

int 10h

;dat che do do hoa cho man hinh

mov ax,0013h

int 10h

;ve duong cheo

mov dx,60

mov cx,60

lap:

mov ah,0ch

mov al,01h

int 10h

Trang 8

dec cx

dec dx

cmp cx,40

jnz lap

ret

10 Bài tập: Lập trình hợp ngữ Assembly file có phần mở rộng là COM sử

dụng ngắt INT 16h/AH=0 liên tục đọc dữ liệu từ bàn phím Nếu ký tự được nhấn là ‘b’ thì bật loa bằng cách đặt 2 bit D1, D0 của cổng ra với địa chỉ 61h đều bằng 1 Sau đó, quay lại đọc dữ liệu bàn phím Nếu có phím bất kỳ được nhấn (không phải phím ‘b’) thì loa tắt bằng cách xóa 2 bit D1, D0 của cổng 61h Rồi quay lại đọc bàn phím

org 100h

dockitu:

mov ah, 00H

int 16h

jz dockitu

cmp al,"b"

jz batloa

mov al,00h

out 61h,al

batloa:

mov bl,00000011b

mov al,bl

out 61h,al

jmp dockitu

ret

11 Bài tập: Viết chương trình hợp ngữ sử dụng ngắt INT 14h/AH=00 để thiết

lập tham số truyền của cổng COM1: tốc độ 4800 baud, độ dài dữ liệu 7 bit, 1 bit dừng (1 stop bit), kiểm tra lỗi bằng bit bậc chẵn (Even Parity) Sau đó, kiểm tra có dữ liệu nhận (bit D0=1 của từ trạng thái cổng COM) thì sử dụng ngắt INT 14h/AH=02 để nhận ký tự từ cổng COM1, rồi cất vào bộ nhớ bắt đầu từ địa chỉ DS:200h Nếu nhận được ký tự Esc (mã ASCII là 1Bh) thì kết thúc chương trình

org 100h

;che do cong com1

mov ah,00

mov dx,00

mov al,82h; 110=4800;11=BAC CHAN;0=1 BIT DUNG;10=7 BI

Trang 9

int 14h

;thiet lap duong truyen:

mov al,80h

mov dx,3fbh

out dx,al

;gui so chia:

mov ax,18h

mov dx,3f8h

out dx,al

mov al,ah

inc dx

out dx,al

;thiet lap tham so truyen:

mov al,82h

mov dx,03fbh

out dx,al

;hoi bi trang thai cua thanh ghi

mov dx,03fdh

lap1:

mov ah,02

int 14h

in al,dx

and al,01h

cmp al,01h

jnz lap1

;nhan so lieu tu cong

mov cx,00

mov dx,03f8h

in al,dx

mov di:[200h],al

inc di

cmp al,1bh

je kt

jnz lap1

kt:

int 20h

ret

12 Bài tập: Lập trình hợp ngữ sử dụng ngắt INT 14h/AH=1 khởi tạo cổng máy

in LPT1 Sau đó kiểm tra trạng thái cổng máy in Nếu trạng thái máy in sẵn

Trang 10

sàng (bit D7=1 trạng thái cổng máy in), thì sử dụng ngắt INT 14h/AH=0 để

in ra chuỗi ký tự “I print a message” Sau đó thoát ra

org 100h

;khoi tao cong may in

mov ah,0

mov dx,0

mov ah,01

int 14h

;dieu khien may in

out dx,al

inc dx

B3:

sub cx,cx

B3_1:

in al,dx

mov ah,al

test al,80h

jnz B4

loop B3_1

dec bl

jnz B3

or ah,01

and ah,0f9h

B4:

mov al,0dh

inc dx

out dx,al

mov al,0ch

out dx,al

mov [SI],OFFSET DATA

;kiem tra bit D7

lap1:

mov ah,01

int 14h

in al,dx

and al,80h

cmp al,80h

jnz lap1

mov al,[SI]

Trang 11

cmp al,"$"

je kt

kt:

int 20h

DATA DB "I print a message","$" ret

Ngày đăng: 18/10/2017, 04:33

TỪ KHÓA LIÊN QUAN

w