dong co buoc quay 1 vong
;de 4:viet chuong trinh hien thi thong bao
;"dieu khien dong co buoc co quay nguoc 1 vong,nhap t de quay thuan, nhap n de quay nguoc
;---------------------------
.model small
.stack 100
.data
tb:
DB "dieu khien dong co buoc quay nguoc 1 vong $"
tb2:
db 10,13,"nhap t de quay thuan hoac nhap n de quay nguoc $"
.code
main proc
mov ax,@data
mov ds,ax
lea dx,tb
mov ah,9
int 21h
;-----------
mov dx,378h
;--------------
;quay 1 vong nguoc
mov cx,1
lap_1_vong:
mov al,00000001b ;chay buoc 1
out dx,al
call delayms
mov al,00000010b ;chay buoc 2
out dx,al
call delayms
mov al,00000100b ;chay buoc 3
out dx,al
call delayms
mov al,00001000b ;chay buoc 4
out dx,al
call delayms
loop lap_1_vong
;--------------------
;khi chay xong 1 vong ta cho hien thi thong bao:
;"nhap t de quay thuan hoac nhap n de quay nguoc"
push dx ;cat dx vao ngan xep trc khi hien thi, de k xung dot dia chi voi
lea dx,tb2 ;dia chi dx cua cong may in
mov ah,9 ;neu khong cat dx ma cho hien thi thi chuong trinh chay
int 21h ;mo phong dc nhung ket noi voi mach dieu khen dong co thi dong co k chay
pop dx
nhap:
mov ah,1 ;cho phep nhap tu ban phim
int 21h
cmp al,"n" ;so sanh voi n
jne kt_nhap_t ;neu k bang n thi kt voi t
call quay_nghich ;neu bang n thi goi chuong trinh quay_nghich
jmp nhap
kt_nhap_t:
cmp al,"t" ;so sanh voi t
jne nhap ;neu k bang t thi nhay len nhap lai
call quay_thuan ;neu bang t thi goi chuong trinh quay_thuan
jmp nhap
main endp
;----------------------------
quay_thuan:
mov cx,50
1_vong_thuan:
mov al,00000001b
out dx,al
call delayms
mov al,00000010b
out dx,al
call delayms
mov al,00000100b
out dx,al
call delayms
mov al,00001000b
out dx,al
call delayms
loop 1_vong_thuan
mov ah,1 ;ngat kiem tra ban phim xem co phim duoc nhan k
int 16h
jz quay_thuan ;neu khong co phim nao dc nhan thi tiep tuc chay
ret ;neu co phim dc nhan thi tro ve chuong trinh chinh, kiem tra phim nhan tu dau
;------------------ -
quay_nghich:
mov cx,10
1_vong_nguoc:
mov al,00001000b
out dx,al
call delayms
mov al,00000100b
out dx,al
call delayms
mov al,00000010b
out dx,al
call delayms
mov al,00000001b
out dx,al
call delayms
loop 1_vong_nguoc
mov ah,1
int 16h
jz quay_nghich
;--------------------
thoat:
mov ah,4ch
int 21h
;--------------------
delayms:
push cx
mov cx,01h
lap_tre:
push cx
mov cx,01h
loop $
pop cx
loop lap_tre
pop cx
end main
Bạn đang đọc truyện trên: AzTruyen.Top