Nhập xuất số nhị phân (Binary)

Một phần của tài liệu Tài liệu GIÁO TRÌNH LẬP TRÌNH HỆ THỐNG docx (Trang 82 - 83)

Số nhị phân nhập từ bàn phím là 1 chuỗi ký tự bao gồm các ký số ‘0’ và ‘1’. Mỗi ký số đó được đưa vào máy tính ở dạng mã ASCII (8 bit), phải được xử lý lại thành dạng 1 bit. Như vậy:

- Ký số ‘0’, mã ASCII là 30h, phải xử lý thành 1 bit 0. - Ký số ‘1’, mã ASCII là 31h, phải xử lý thành 1 bit 1.

Trước khi xuất số nhị phân ra màn hình thì phải xử lý ngược lại, nghĩa là lấy từng bit đểđổi thành ký số tương ứng:

- Bit 0 phải xử lý thành mã ASCII là 30h (Ký số ‘0’). - Bit 1 phải xử lý thành mã ASCII là 30h (Ký số ‘1’).

Ví dụ: Đoạn chương trình nhập 1 số nhị phân 8 bit từ bàn phím, lưu trữ trong thanh ghi BL. Sử dụng hàm 01/21h để nhập từng ký số.

MOV BL, 0 ; Xóa BL

MOV CX, 8 ; nhập đủ 8 bit thì dừng nhap: MOV AH, 01h ; Hàm nhập ký tự

INT 21h

CMP AL, 0Dh ; nếu là phím Enter thì thôi nhập JZ exit ; không phải Enter thì đổi sang bit SHL BL, 1 ; Dịch trái BL 1 bit

SUB AL, 30h ; Ký số - 30h = số

ADD BL, AL ; Chuyển bit từ AL sang BL lưu trữ

LOOP nhap exit: ………

Ví dụ: Đoạn chương trình xuất số nhị phân 8 bit trong BL ra màn hình. Sử dụng hàm 02/21h để xuất từng ký số. MOV CX, 8 ; Xuất 8 bit xuat: MOV DL, 0 SHL BL, 1 ; CF chứa MSB, xuất ra màn hình RCL DL, 1 ; đưa CF vào LSB của DL ADD DL, 30h ; Số + 30h = Ký số

MOV AH, 02h ; In ra màn hình INT 21h

LOOP xuat

Một phần của tài liệu Tài liệu GIÁO TRÌNH LẬP TRÌNH HỆ THỐNG docx (Trang 82 - 83)