Các hàm nhập/xuất DOS, ngắt 21h: Hàm 1: Nhập ký tự từ bàn phím Input: ah = 1; Call interrupt: int 21h Output: al = mã ASCII ký tự Ví dụ: Mov ah, Int 21h ; Ký tự nhập có mã ASCII lưu al Hàm 2: Hiển thị ký tự lên vị trí trỏ hình Input: ah = 2, dl = mã ASCII (của ký tự cần hiển thị) Call interrupt: int 21h Output: al = last character output Ví dụ: Mov ah, Mov dl, ‘A’ Int 21h Hàm 9: Hiển thị xâu (kết thúc ‘$’) ký tự lên vị trí trỏ hình Input: ah = 9, dx = offset xâu (lea dx, string_name) Call interrupt: int 21h Output: al = 24h Ví dụ: str db ‘Khoe de xay dung bao ve to quoc!$’ … Mov ah, Lea dx, str Int 21h Bài tập: Sử dụng hàm nhập xuất làm việc với stack sau: Nhập chuỗi ký tự từ bàn phím lưu mã ASCII chúng vào stack, kết thúc việc nhập ấn Enter Hiển thị chuỗi ký tự nhập theo chiều ngược lại dòng Khung chương trình dịch *.COM: Org Jmp 100h Start ; Khai báo liệu ten_chuoi db ‘abc, xyz … $’ Start: … … Ret Khung chương trình dịch *.EXE: Model Small Stack 100h Data ; Khai bao du lieu o day Code Main_proc_name Proc Mov ax, @Data ; Khoi tao Mov ds, ax ; doan du lieu … Mov ah, 4ch ; Ham 4ch de ket thuc chuong trinh Int 21h ; Ket thuc chuong trinh Main_proc_name Endp ; Chuong trinh (neu co), cau truc nhu sau: Sub_proc_name Proc … Sub_proc_name Endp End Mainproc_name