Nhập một số hệ 10, 8-bit rồi in ra màn hình VXL linhcan87
Nhập một số hệ 10, 8-bit rồi in ra màn hình, dùng chương trình con như bên trên:
Trong bài có dùng các ngắt khác nhau, đề nghị mọi người chuyển qua ngắt 21h tương đương:
name "keybrd"
Enter Macro
pusha
mov ah,2
mov dl, 0ah ; new line.
int 21h
mov dl, 0dh ; carrige return.
int 21h
popa
endm
org 100h
; Nhap - start:
mov dx, offset msg
mov ah, 9
int 21h
xor cl,cl
wait_for_key: ; Cho' bam phim:
mov ah, 1
int 16h
jz wait_for_key
mov ah, 0 ;| Doc phim, AL= Phim da bam:
int 16h ;|
mov ah, 0eh ;| In phim da bam: AL=Ky tu can in
int 10h ;|
cmp al, 13;| Bam ENTER thi ket thuc:
jz exit ;|
; Tinh CL=CL*10+AL
sub al,'0'
push ax
xor ah,ah
mov al,cl ;|
mov dl,10 ;| CL=CL*10
mul dl ;|
mov cl,al ;|
pop ax
add cl,al ; CL=CL+AL (0..9)
jmp wait_for_key
;============================
exit:
mov AX,0
mov DL,2
mov AL, CL
Mul DL
Enter
call Print_dec8AL
mov ah, 0
int 16h
;-----------------------
Print_dec8AL proc
cmp al, 0
jne Print_dec8AL_r
push ax
mov al, '0'
mov ah, 0eh
int 10h
pop ax
Print_dec8AL_r:
pusha
mov ah, 0
cmp ax, 0
je pn_done
mov dl, 10
div dl
call Print_dec8AL_r
mov al, ah
add al, 30h
mov ah, 0eh
int 10h
jmp pn_done
pn_done:
popa
endp
;-----------------------------------------------
msg db "Moi ngai nhap vao 1 so 8 bit:", 0Dh,0Ah
db "N=$"
end
Bạn đang đọc truyện trên: truyentop.pro