;Programa de Controle de Elevadores

;Do Terreo ao 8 Andar



Pilha Segment para Stack 'Stack'

      Db 512 Dup(0)

Pilha Ends



Dados Segment para Public 'Data'

      MsgNumero   Db 'Digite o Andar :$'

      MsgTerreo   Db 'Andar Terreo $'

      MsgAndar1   Db '1o Andar $'

      MsgAndar2   Db '2o Andar $'

      MsgAndar3   Db '3o Andar $'

      MsgAndar4   Db '4o Andar $'

      MsgAndar5   Db '5o Andar $'

      MsgAndar6   Db '6o Andar $'

      MsgAndar7   Db '7o Andar $'

      MsgAndar8   Db '8o Andar $'

Dados Ends

Programa Segment para Public 'Code'

      Assume Cs:Programa,Ds:Dados,Es:Dados

      Org    100h

      Inicio Proc Far

         Push Ds

         Xor Ax,Ax

         Push Ax

         Mov Ax,Dados

         Mov Ds,Ax

         Mov Es,Ax

         Mov Cx,0

;Inicia a Leitura dos Andares

  Andar: Mov Dx,OffSet MsgNumero

         Call Mostra

         Call LerInt

         Call PulaLinha

;         Cmp Cx,Ax

;         Jb Andar8

;         Ja Terreo

         

;Inicia a Demostracao dos Andares

  Terreo: Mov Dx,OffSet MsgTerreo

          Call Mostra

          Call PulaLinha

          Cmp Ax,0

          Je  Andar



  Andar1: Mov Dx,OffSet MsgAndar1

          Call Mostra

          Call PulaLinha

          Cmp Ax,1

          Je  Andar

          Jb  Terreo

    

  Andar2: Mov Dx,OffSet MsgAndar2

          Call Mostra

          Call PulaLinha

          Cmp Ax,2

          Je  Andar

          Jb  Andar1

    

  Andar3: Mov Dx,OffSet MsgAndar3

          Call Mostra

          Call PulaLinha

          Cmp Ax,3

          Je  Andar

          Jb  Andar2

    

  Andar4: Mov Dx,OffSet MsgAndar4

          Call Mostra

          Call PulaLinha

          Cmp Ax,4

          Je  Andar

          Jb  Andar3

    

  Andar5: Mov Dx,OffSet MsgAndar5

          Call Mostra

          Call PulaLinha

          Cmp Ax,5

          Je  Andar

          Jb  Andar4



  Andar6: Mov Dx,OffSet MsgAndar6

          Call Mostra

          Call PulaLinha

          Cmp Ax,6

          Je  Andar

          Jb  Andar5

    

  Andar7: Mov Dx,OffSet MsgAndar7

          Call Mostra

          Call PulaLinha

          Cmp Ax,7

          Jb  Andar6    

          Je  Andar



  Andar8: Mov Dx,OffSet MsgAndar8

          Call Mostra

          Call PulaLinha

          Cmp Ax,8

          Jb  Andar7

          Je  Andar





    Termina: Ret

    Inicio Endp

    Extrn Mostra:Near

    Extrn LerInt:Near

    Extrn PulaLinha:Near

Programa Ends

End Inicio

