Thứ Bảy, 25 tháng 2, 2012

code ASM mẫu cho 8086 - Đọc từ bàn phím một số nhị phân


Chương trình sử dụng trình dịch emu8086.


Mã nguồn ASM:


.model small
.stack 100
.data
    TBao DB 'Go vao 1 so he 2 (max 16 bit,'
         DB 'CR de thoi):$'
.code
MAIN Proc
    mov ax,@data
    mov ds,ax
 
    mov ah,9
    lea dx,TBao
    int 21h
 
    mov cx,16
    xor bx,bx   ;xoa bx=0
    mov ah,1    ;nhap 1 ky tu tu ban phim
TIEP:
    int 21h     ;Nhap vao thanh ghi AL.
    cmp al,13
    je THOIDOC  ;AL=enter thi THOIDOC
    sub al,30h  ;-30h chuyen qua he 2.
    rol bx,1    ;quay trai 1 bit de lay cho DOC tiep
    or bl,al    ;cong bit vua doc dc: al->bl
    LOOP TIEP
THOIDOC:
    mov ah,2
    mov dl,13   ;ve dau dong
    int 21h
    mov ah,2
    mov dl,10   ;enter
    int 21h
 
    mov cx,16   ;lap lai 16 lan in ra
    mov ah,2
HIEN:
    xor dl,dl   ;xoa dl=0
    rol bx,1    ;quay trai 1 bit, bit cao nhat dc dua vao CF

    adc dl,30h  ;cong co nho voi CF: dl=dl+30h+CF,chuyen qua ASCII
    int 21h
    LOOP HIEN
 
    mov ah,4ch
    int 21h
MAIN endp
end MAIN

0 nhận xét:

Đăng nhận xét