co đb “Co $°
khong db “ Khong $°
M2 db 13,10,°So luong cong LPT ma may tỉnh co la : $” M4 db 13,10,°Dia chỉ cac cong LPT la : $°
space đb“ $° .CODE .CODE PS: mov ax,(@data mov đs,ax CLRSCR
HienString MI ; Hiện thông báo “May tỉnh dang dung co cong LPT khong ?°
in 11h ; Ngắt hệ thông thực hiện việc đưa nội dung ô nhớ 0:411h -> ah
mov al,ah ; Đưa nội dung 0:411h -> al mov cl6
shr al,cl ; al = số lượng công LPT
jnz LI ; Nếu al # 0 (có công LPT thì nhảy)
HienString khong ; còn không thì hiện thông báo “Khong” Jmp Exit ; Nhảy đến nhãn Exit
LI:
HienString co ; Hiện thông báo “Co” mov cl,al
xor ch,ch ; cx = số lượng công LPT (chỉ số vòng lặp hiện địa chỉ) HienString M2 ; Hiện thông báo “So luong cong LPT ma may tỉnh co la : °
add alL30h ; al là mã ASCII số lượng cổng LPT
mov ah,0ch ; Chức năng hiện I ký tự ASCH lên màn hình
ít 10h
HienString M3 ; Hiện thông báo “Dia chỉ cac cong LPT la : °
XOr aX,aX ImOV ۤ,aX ImOV ۤ,aX
lea bx,40§h ; es:bx = 0:408h (nơi chứa địa chí cổng LPT1) L2:
mov ax,es:[bx] ¡ ax = địa chỉ LPT
call HIEN HEXA ; Hiện địa chỉ dạng HEXA lên màn hình
HienString space ; Hiên một số dấu cách
add bx,2 ; bx trỏ đến các byte chứa địa chí công COM tiếp theo
loop L2
Exit:
mov ah,4ch ; Về DOS in 21h
INCLUDE lib3.asm ; lib3.asm chứa chương trình con HIEN_HEXA
END PS Bài 4 Bài 4
Hãy viết chương trình cho biết máy tính bạn đang dùng có card điều khiến màn hình
loại gì (mono hay color)?
Cách giải : Chú ý byte của có địa chỉ 0:410h của vùng dữ liệu ROM BIOS có chứa các thông
tin liên quan đên loại card điêu khiên màn hình, cụ thê như sau :
jmmmmmmmw
{ 1 1... mono
# 1 1... color
Khi chương trình chạy yêu câu có dạng :
Loai card dieu khien man hinh ma may tỉnh co la : Color
INCLUDE libl.asm .MODEL small .STACK 100h .DATA
MI dbLoai card dieu khien man hinh ma may tỉnh co la : $° color db “Color $” mono đb *Mono $° .CODE PS: mov ax,(@data mov đs,ax CLRSCR
HienString MI ; Hiện “Loai card dieu khien man hinh ma may tính co la :”
in 11h ; Ngắt hệ thống thực hiện việc đưa nội dung ô nhớ 0:410h -> al
and al,00110000b ; Tách 2 bit có thông tin liên quan đến loại card đ/k màn hình cmp al,00110000b ; Liệu có phải loại card điều khiển màn hình là mono? Jne LI ; Không phải là card mono thì nhảy đến LI
HienString mono ; còn phải thì hiện thông báo “Mono”
jmp Exit ; Nhảy đến nhãn Exit LI:
HienString color ; Hiện thông báo “Color” Exit:
mov ah,4ch ;Về DOS ¡mt 21h