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

Tags: