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